ctao-calibpipe 0.1.0rc9__tar.gz → 0.2.0rc2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of ctao-calibpipe might be problematic. Click here for more details.

Files changed (198) hide show
  1. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/.gitlab-ci.yml +31 -4
  2. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/PKG-INFO +3 -2
  3. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/aiv-config.yml +2 -2
  4. ctao_calibpipe-0.2.0rc2/docs/source/examples/array/cross_calibration_configuration.yaml +18 -0
  5. ctao_calibpipe-0.2.0rc2/docs/source/examples/arraycalibration.rst +21 -0
  6. ctao_calibpipe-0.2.0rc2/docs/source/examples/calibprocessing.rst +83 -0
  7. ctao_calibpipe-0.2.0rc2/docs/source/examples/cameracalibration.rst +48 -0
  8. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/docs/source/examples/index.rst +4 -0
  9. ctao_calibpipe-0.2.0rc2/docs/source/examples/pixstatsdescription.rst +41 -0
  10. ctao_calibpipe-0.2.0rc2/docs/source/examples/telescope/camera/configuration/calibpipe_calculate_camcalib_coefficients.yaml +6 -0
  11. ctao_calibpipe-0.2.0rc2/docs/source/examples/telescope/camera/configuration/ctapipe_calculate_pixel_stats_flatfield_image.yaml +25 -0
  12. ctao_calibpipe-0.2.0rc2/docs/source/examples/telescope/camera/configuration/ctapipe_calculate_pixel_stats_flatfield_peak_time.yaml +19 -0
  13. ctao_calibpipe-0.2.0rc2/docs/source/examples/telescope/camera/configuration/ctapipe_calculate_pixel_stats_pedestal_image.yaml +25 -0
  14. ctao_calibpipe-0.2.0rc2/docs/source/examples/telescope/camera/configuration/ctapipe_process_flatfield.yaml +21 -0
  15. ctao_calibpipe-0.2.0rc2/docs/source/examples/telescope/camera/configuration/ctapipe_process_pedestal.yaml +22 -0
  16. ctao_calibpipe-0.2.0rc2/docs/source/examples/telescope/camera/configuration/npe_std_outlier_detector.yaml +9 -0
  17. ctao_calibpipe-0.2.0rc2/docs/source/examples/telescope/pointing/configuration/ctapipe_process_pointing.yaml +14 -0
  18. ctao_calibpipe-0.2.0rc2/docs/source/examples/telescope/throughput/configuration/ctapipe_process_muon_fitter.yaml +50 -0
  19. ctao_calibpipe-0.2.0rc2/docs/source/examples/telescope/throughput/configuration/ctapipe_process_muon_image.yaml +27 -0
  20. ctao_calibpipe-0.2.0rc2/docs/source/examples/telescope/throughput/configuration/throughput_muon_configuration.yaml +20 -0
  21. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/docs/source/introduction/diagrams/muon_calibration.mmd +1 -1
  22. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/docs/source/introduction/introduction.rst +3 -0
  23. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/pyproject.toml +6 -1
  24. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/report/manual_testing.tex +1 -1
  25. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/_version.py +2 -2
  26. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/core/common_metadata_containers.py +3 -0
  27. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/database/adapter/adapter.py +1 -1
  28. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/database/adapter/database_containers/__init__.py +2 -0
  29. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/database/adapter/database_containers/common_metadata.py +2 -0
  30. ctao_calibpipe-0.2.0rc2/src/calibpipe/database/adapter/database_containers/throughput.py +30 -0
  31. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/database/interfaces/table_handler.py +79 -97
  32. ctao_calibpipe-0.2.0rc2/src/calibpipe/telescope/throughput/containers.py +59 -0
  33. ctao_calibpipe-0.2.0rc2/src/calibpipe/tests/unittests/array/test_cross_calibration.py +417 -0
  34. ctao_calibpipe-0.2.0rc2/src/calibpipe/tests/unittests/database/test_table_handler.py +161 -0
  35. ctao_calibpipe-0.2.0rc2/src/calibpipe/tests/unittests/telescope/camera/test_calculate_camcalib_coefficients.py +347 -0
  36. ctao_calibpipe-0.2.0rc2/src/calibpipe/tests/unittests/telescope/camera/test_produce_camcalib_test_data.py +42 -0
  37. ctao_calibpipe-0.2.0rc2/src/calibpipe/tests/unittests/telescope/throughput/test_muon_throughput_calibrator.py +189 -0
  38. ctao_calibpipe-0.2.0rc2/src/calibpipe/tools/camcalib_test_data.py +361 -0
  39. ctao_calibpipe-0.2.0rc2/src/calibpipe/tools/camera_calibrator.py +558 -0
  40. ctao_calibpipe-0.2.0rc2/src/calibpipe/tools/muon_throughput_calculator.py +239 -0
  41. ctao_calibpipe-0.2.0rc2/src/calibpipe/tools/telescope_cross_calibration_calculator.py +721 -0
  42. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/ctao_calibpipe.egg-info/PKG-INFO +3 -2
  43. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/ctao_calibpipe.egg-info/SOURCES.txt +34 -1
  44. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/ctao_calibpipe.egg-info/entry_points.txt +4 -0
  45. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/ctao_calibpipe.egg-info/requires.txt +2 -1
  46. ctao_calibpipe-0.2.0rc2/workflows/array/uc-120-2.3-telescope-cross-calibration.cwl +55 -0
  47. ctao_calibpipe-0.2.0rc2/workflows/telescope/camera/calibpipe-camcalib-tool.cwl +41 -0
  48. ctao_calibpipe-0.2.0rc2/workflows/telescope/camera/uc-120-2.20-perform-camera-calibration.cwl +84 -0
  49. ctao_calibpipe-0.2.0rc2/workflows/telescope/camera/uc-120-2.21-assess-statistical-description.cwl +102 -0
  50. ctao_calibpipe-0.2.0rc2/workflows/telescope/ctapipe-pix-stats-tool.cwl +45 -0
  51. ctao_calibpipe-0.2.0rc2/workflows/telescope/ctapipe-process-tool.cwl +45 -0
  52. ctao_calibpipe-0.2.0rc2/workflows_cfgs/telescope/camera/uc-120-2.20-perform-camera-calibration.cfg +22 -0
  53. ctao_calibpipe-0.2.0rc2/workflows_cfgs/telescope/camera/uc-120-2.21-assess-statistical-description.cfg +19 -0
  54. ctao_calibpipe-0.1.0rc9/docs/source/examples/throughput/configurations/throughput_configuration.yaml +0 -182
  55. ctao_calibpipe-0.1.0rc9/src/calibpipe/tests/unittests/database/test_table_handler.py +0 -66
  56. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/.dockerignore +0 -0
  57. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/.gitattributes +0 -0
  58. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/.gitignore +0 -0
  59. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/.gitlab/issue_templates/Bug.md +0 -0
  60. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/.gitlab/issue_templates/Discussion.md +0 -0
  61. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/.gitlab/issue_templates/default.md +0 -0
  62. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/.gitlab/merge_request_templates/default.md +0 -0
  63. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/.gitmodules +0 -0
  64. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/.pre-commit-config.yaml +0 -0
  65. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/AUTHORS.md +0 -0
  66. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/CHANGES.rst +0 -0
  67. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/CONTRIBUTING.md +0 -0
  68. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/Dockerfile +0 -0
  69. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/LICENSE +0 -0
  70. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/README.md +0 -0
  71. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/aiv-config-dependencies.yml +0 -0
  72. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/docs/Makefile +0 -0
  73. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/docs/source/AUTHORS.md +0 -0
  74. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/docs/source/FAQ.rst +0 -0
  75. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/docs/source/_static/FD.png +0 -0
  76. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/docs/source/_templates/autosummary/base.rst +0 -0
  77. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/docs/source/_templates/autosummary/class.rst +0 -0
  78. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/docs/source/_templates/autosummary/module.rst +0 -0
  79. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/docs/source/bibliography.rst +0 -0
  80. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/docs/source/changelog.rst +0 -0
  81. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/docs/source/changes/README.md +0 -0
  82. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/docs/source/changes/template.rst +0 -0
  83. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/docs/source/conf.py +0 -0
  84. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/docs/source/development/CONTRIBUTING.md +0 -0
  85. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/docs/source/development/index.rst +0 -0
  86. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/docs/source/examples/atmosphere/configuration/calculate_macobac.yaml +0 -0
  87. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/docs/source/examples/atmosphere/configuration/create_molecular_atmospheric_model.yaml +0 -0
  88. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/docs/source/examples/atmosphere/configuration/create_molecular_density_profile.yaml +0 -0
  89. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/docs/source/examples/atmosphere/configuration/select_reference_atmospheric_model.yaml +0 -0
  90. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/docs/source/examples/molecularprofiles.rst +0 -0
  91. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/docs/source/examples/utils/configuration/db_config.yaml +0 -0
  92. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/docs/source/examples/utils/configuration/metadata_db.yaml +0 -0
  93. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/docs/source/examples/utils/configuration/optical_throughput_db.yaml +0 -0
  94. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/docs/source/examples/utils/configuration/upload_atmospheric_model_data_db_intermediate.yaml +0 -0
  95. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/docs/source/examples/utils/configuration/upload_atmospheric_model_data_db_summer.yaml +0 -0
  96. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/docs/source/examples/utils/configuration/upload_atmospheric_model_data_db_winter.yaml +0 -0
  97. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/docs/source/examples/utils/configuration/upload_common_metadata_db.yaml +0 -0
  98. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/docs/source/examples/utils/configuration/upload_observatory_data_db.yaml +0 -0
  99. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/docs/source/getting_started/index.rst +0 -0
  100. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/docs/source/index.rst +0 -0
  101. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/docs/source/introduction/diagrams/camera_calibration.mmd +0 -0
  102. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/docs/source/introduction/diagrams/legend.mmd +0 -0
  103. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/docs/source/introduction/diagrams/molecular_atmosphere.mmd +0 -0
  104. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/docs/source/introduction/diagrams/puppeteer-config.json +0 -0
  105. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/docs/source/introduction/index.rst +0 -0
  106. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/report/inspection.tex +0 -0
  107. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/report/performance_verification.tex +0 -0
  108. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/report/preamble.tex +0 -0
  109. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/setup.cfg +0 -0
  110. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/sonar-project.properties +0 -0
  111. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/__init__.py +0 -0
  112. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/_dev_version/__init__.py +0 -0
  113. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/atmosphere/__init__.py +0 -0
  114. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/atmosphere/atmosphere_containers.py +0 -0
  115. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/atmosphere/meteo_data_handlers.py +0 -0
  116. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/atmosphere/models/README.md +0 -0
  117. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/atmosphere/models/__init__.py +0 -0
  118. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/atmosphere/models/macobac.ecsv +0 -0
  119. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/atmosphere/models/reference_MDPs/__init__.py +0 -0
  120. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/atmosphere/models/reference_MDPs/ref_density_at_15km_ctao-north_intermediate.ecsv +0 -0
  121. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/atmosphere/models/reference_MDPs/ref_density_at_15km_ctao-north_summer.ecsv +0 -0
  122. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/atmosphere/models/reference_MDPs/ref_density_at_15km_ctao-north_winter.ecsv +0 -0
  123. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/atmosphere/models/reference_MDPs/ref_density_at_15km_ctao-south_summer.ecsv +0 -0
  124. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/atmosphere/models/reference_MDPs/ref_density_at_15km_ctao-south_winter.ecsv +0 -0
  125. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/atmosphere/models/reference_atmospheres/__init__.py +0 -0
  126. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/atmosphere/models/reference_atmospheres/reference_atmo_model_v0_ctao-north_intermediate.ecsv +0 -0
  127. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/atmosphere/models/reference_atmospheres/reference_atmo_model_v0_ctao-north_summer.ecsv +0 -0
  128. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/atmosphere/models/reference_atmospheres/reference_atmo_model_v0_ctao-north_winter.ecsv +0 -0
  129. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/atmosphere/models/reference_atmospheres/reference_atmo_model_v0_ctao-south_summer.ecsv +0 -0
  130. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/atmosphere/models/reference_atmospheres/reference_atmo_model_v0_ctao-south_winter.ecsv +0 -0
  131. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/atmosphere/models/reference_rayleigh_scattering_profiles/__init__.py +0 -0
  132. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/atmosphere/models/reference_rayleigh_scattering_profiles/reference_rayleigh_extinction_profile_v0_ctao-north_intermediate.ecsv +0 -0
  133. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/atmosphere/models/reference_rayleigh_scattering_profiles/reference_rayleigh_extinction_profile_v0_ctao-north_summer.ecsv +0 -0
  134. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/atmosphere/models/reference_rayleigh_scattering_profiles/reference_rayleigh_extinction_profile_v0_ctao-north_winter.ecsv +0 -0
  135. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/atmosphere/models/reference_rayleigh_scattering_profiles/reference_rayleigh_extinction_profile_v0_ctao-south_summer.ecsv +0 -0
  136. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/atmosphere/models/reference_rayleigh_scattering_profiles/reference_rayleigh_extinction_profile_v0_ctao-south_winter.ecsv +0 -0
  137. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/atmosphere/templates/request_templates/__init__.py +0 -0
  138. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/atmosphere/templates/request_templates/copernicus.json +0 -0
  139. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/atmosphere/templates/request_templates/gdas.json +0 -0
  140. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/core/__init__.py +0 -0
  141. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/core/exceptions.py +0 -0
  142. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/database/__init__.py +0 -0
  143. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/database/adapter/__init__.py +0 -0
  144. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/database/adapter/database_containers/atmosphere.py +0 -0
  145. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/database/adapter/database_containers/container_map.py +0 -0
  146. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/database/adapter/database_containers/observatory.py +0 -0
  147. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/database/adapter/database_containers/table_version_manager.py +0 -0
  148. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/database/adapter/database_containers/version_control.py +0 -0
  149. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/database/connections/__init__.py +0 -0
  150. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/database/connections/calibpipe_database.py +0 -0
  151. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/database/connections/postgres_utils.py +0 -0
  152. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/database/connections/sql_connection.py +0 -0
  153. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/database/connections/user_confirmation.py +0 -0
  154. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/database/interfaces/__init__.py +0 -0
  155. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/database/interfaces/hashable_row_data.py +0 -0
  156. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/database/interfaces/queries.py +0 -0
  157. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/database/interfaces/sql_column_info.py +0 -0
  158. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/database/interfaces/sql_metadata.py +0 -0
  159. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/database/interfaces/sql_table_info.py +0 -0
  160. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/database/interfaces/types.py +0 -0
  161. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/tests/data/atmosphere/molecular_atmosphere/__init__.py +0 -0
  162. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/tests/data/atmosphere/molecular_atmosphere/contemporary_MDP.ecsv +0 -0
  163. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/tests/data/atmosphere/molecular_atmosphere/macobac.csv +0 -0
  164. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/tests/data/atmosphere/molecular_atmosphere/macobac.ecsv +0 -0
  165. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/tests/data/atmosphere/molecular_atmosphere/merged_file.ecsv +0 -0
  166. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/tests/data/atmosphere/molecular_atmosphere/meteo_data_copernicus.ecsv +0 -0
  167. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/tests/data/atmosphere/molecular_atmosphere/meteo_data_gdas.ecsv +0 -0
  168. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/tests/data/atmosphere/molecular_atmosphere/observatory_configurations.json +0 -0
  169. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/tests/data/utils/__init__.py +0 -0
  170. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/tests/data/utils/meteo_data_winter_and_summer.ecsv +0 -0
  171. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/tests/unittests/atmosphere/astral_testing.py +0 -0
  172. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/tests/unittests/atmosphere/test_meteo_data_handler.py +0 -0
  173. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/tests/unittests/atmosphere/test_molecular_atmosphere.py +0 -0
  174. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/tests/unittests/database/test_types.py +0 -0
  175. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/tests/unittests/test_bootstrap_db.py +0 -0
  176. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/tests/unittests/utils/test_observatory.py +0 -0
  177. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/tools/atmospheric_base_tool.py +0 -0
  178. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/tools/atmospheric_model_db_loader.py +0 -0
  179. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/tools/basic_tool_with_db.py +0 -0
  180. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/tools/contemporary_mdp_producer.py +0 -0
  181. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/tools/init_db.py +0 -0
  182. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/tools/macobac_calculator.py +0 -0
  183. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/tools/molecular_atmospheric_model_producer.py +0 -0
  184. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/tools/observatory_data_db_loader.py +0 -0
  185. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/tools/reference_atmospheric_model_selector.py +0 -0
  186. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/utils/__init__.py +0 -0
  187. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/utils/observatory.py +0 -0
  188. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/utils/observatory_containers.py +0 -0
  189. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/calibpipe/version.py +0 -0
  190. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/ctao_calibpipe.egg-info/dependency_links.txt +0 -0
  191. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/src/ctao_calibpipe.egg-info/top_level.txt +0 -0
  192. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/workflows/atmosphere/uc-120-1.2-calculate-macobac.cwl +0 -0
  193. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/workflows/atmosphere/uc-120-1.3-select-reference-atmospheric-model.cwl +0 -0
  194. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/workflows/atmosphere/uc-120-1.7-create-contemporary-atmospheric-model.cwl +0 -0
  195. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/workflows_cfgs/atmosphere/uc-120-1.2-calculate-macobac.cfg +0 -0
  196. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/workflows_cfgs/atmosphere/uc-120-1.3-select-reference-atmospheric-model.cfg +0 -0
  197. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/workflows_cfgs/atmosphere/uc-120-1.7-create-contemporary-atmospheric-model.cfg +0 -0
  198. {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0rc2}/workflows_test/test_run_workflows.py +0 -0
@@ -1,7 +1,7 @@
1
1
  #
2
2
  include:
3
3
  - project: 'cta-computing/dpps/aiv/dpps-aiv-toolkit'
4
- ref: ff3b2136038df7eb88712f7d523acafdc074f660
4
+ ref: d29b1cc05e31f9dff21dc01104e4e19ccb54d1f4
5
5
  file: 'ci-functions.yml'
6
6
 
7
7
  - 'aiv-config.yml'
@@ -10,8 +10,8 @@ variables:
10
10
  CHART_LOCATION: chart
11
11
  CHART_NAME: calibpipe
12
12
  CHART_EXTRA_VALUES: "--set dev.client_image_tag=${DOCKER_TAG}"
13
- DPPS_AIV_TOOLKIT_DIR: dpps-aiv-toolkit
14
13
  CONDA_IMAGE: "quay.io/condaforge/miniforge3:24.11.3-0"
14
+ CTAPIPE_VERSION: 'latest'
15
15
 
16
16
  stages:
17
17
  - prepare
@@ -22,12 +22,11 @@ stages:
22
22
  - report
23
23
  - doc
24
24
  - publish
25
+ - changelog
25
26
 
26
27
  default:
27
28
  image: harbor.cta-observatory.org/proxy_cache/python:3.12
28
29
 
29
- variables:
30
- CTAPIPE_VERSION: 'latest'
31
30
  #
32
31
  # Anchors definition
33
32
  #
@@ -52,6 +51,22 @@ variables:
52
51
  <<: *env_setup
53
52
  script:
54
53
  - pip install .[test]
54
+ - >
55
+ echo "url: https://cds.climate.copernicus.eu/api" > ~/.cdsapirc
56
+ - >
57
+ echo "key: $CDS_KEY" >> ~/.cdsapirc
58
+ - mkdir -p ./src/calibpipe/tests/data/telescope/camera
59
+ - mkdir -p ./src/calibpipe/tests/data/telescope/throughput
60
+ - mkdir -p ./src/calibpipe/tests/data/array
61
+ - curl -o ./src/calibpipe/tests/data/array/cross_calibration_test_dl2.h5 $DL2_PROD5_CTAPIPE_CC
62
+ - curl -o ./src/calibpipe/tests/data/telescope/throughput/lst_muon_table.h5 $DL1_MUON_SIM_LST
63
+ - curl -o ./src/calibpipe/tests/data/telescope/throughput/empty_muon_table.h5 $EMPTY_MUON_TABLE
64
+ - curl -o ./src/calibpipe/tests/data/telescope/camera/flatfield_LST_dark.simtel.gz $CAM_CALIB_TEST_DATA/flasher_LST_dark.simtel.gz
65
+ - curl -o ./src/calibpipe/tests/data/telescope/camera/pedestal_LST_dark.simtel.gz $CAM_CALIB_TEST_DATA/pedestals_LST_dark.simtel.gz
66
+ - |
67
+ for mode in single_chunk same_chunks different_chunks; do
68
+ curl -o ./src/calibpipe/tests/data/telescope/camera/calibpipe_v0.2.0_statsagg_${mode}.dl1.h5 $CAM_CALIB_TEST_DATA/calibpipe_v0.2.0_statsagg_${mode}.dl1.h5
69
+ done
55
70
  - pytest -v --cov=calibpipe --junitxml=report.xml -m "not gdas and not db and not integration"
56
71
  artifacts:
57
72
  when: always
@@ -111,6 +126,18 @@ test:
111
126
  - pip install -e .[test]
112
127
  - pip install coverage-badge
113
128
  - mkdir -pv test
129
+ - mkdir -p ./src/calibpipe/tests/data/telescope/camera
130
+ - mkdir -p ./src/calibpipe/tests/data/telescope/throughput
131
+ - mkdir -p ./src/calibpipe/tests/data/array
132
+ - curl -o ./src/calibpipe/tests/data/array/cross_calibration_test_dl2.h5 $DL2_PROD5_CTAPIPE_CC
133
+ - curl -o ./src/calibpipe/tests/data/telescope/throughput/lst_muon_table.h5 $DL1_MUON_SIM_LST
134
+ - curl -o ./src/calibpipe/tests/data/telescope/throughput/empty_muon_table.h5 $EMPTY_MUON_TABLE
135
+ - curl -o ./src/calibpipe/tests/data/telescope/camera/flatfield_LST_dark.simtel.gz $CAM_CALIB_TEST_DATA/flasher_LST_dark.simtel.gz
136
+ - curl -o ./src/calibpipe/tests/data/telescope/camera/pedestal_LST_dark.simtel.gz $CAM_CALIB_TEST_DATA/pedestals_LST_dark.simtel.gz
137
+ - |
138
+ for mode in single_chunk same_chunks different_chunks; do
139
+ curl -o ./src/calibpipe/tests/data/telescope/camera/calibpipe_v0.2.0_statsagg_${mode}.dl1.h5 $CAM_CALIB_TEST_DATA/calibpipe_v0.2.0_statsagg_${mode}.dl1.h5
140
+ done
114
141
  - pytest -v --cov=calibpipe --junitxml=test/report.xml --cov-report=xml:test/coverage.xml
115
142
  - coverage-badge
116
143
  coverage: '/TOTAL.+ ([0-9]{1,3}%)/'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ctao-calibpipe
3
- Version: 0.1.0rc9
3
+ Version: 0.2.0rc2
4
4
  Author: Leonid Burmistrov, Mykhailo Dalchenko, Antonio Di Pilato, Gabriel Emery, Tjark Miener, Gregoire Uhlrich, Georgios Voutsinas, Vadym Voitsekhovskyi
5
5
  Classifier: License :: OSI Approved :: MIT License
6
6
  Requires-Python: >=3.10
@@ -10,8 +10,9 @@ License-File: AUTHORS.md
10
10
  Requires-Dist: astral
11
11
  Requires-Dist: astropy
12
12
  Requires-Dist: cdsapi
13
- Requires-Dist: ctapipe>=0.18
13
+ Requires-Dist: ctapipe[all]
14
14
  Requires-Dist: h5py
15
+ Requires-Dist: iminuit
15
16
  Requires-Dist: molecularprofiles>=2.1.0
16
17
  Requires-Dist: numpy
17
18
  Requires-Dist: pandas
@@ -1,14 +1,14 @@
1
1
  variables:
2
2
  # used to select requirements
3
3
  DPPS_UC_GROUPS: CalibPipe
4
- DPPS_RELEASE: v0.1
4
+ DPPS_RELEASE: v0.2
5
5
 
6
6
  RELEASE_PLAN_FN: dpps-aiv-toolkit/dpps-release-plan/release_development_document/dpps-release-plan.tex
7
7
  TRACEABILITY_CSV_FN: dpps-aiv-toolkit/requirements-traceability/DPPS_Requirements_Traceability_Matrix.csv
8
8
  APPLICATION_NAME: CalibPipe
9
9
  APPLICATION_AUTHOR: CalibPipe Team
10
10
  APPLICATION_AUTHOR_ORGANIZATION: Université de Genève - DPNC, CTAO
11
- APPLICATION_VERSION: 0.1.0
11
+ APPLICATION_VERSION: 0.2.0
12
12
 
13
13
  DOCKER_IMAGE_CONTEXT: $CI_PROJECT_DIR
14
14
  CWL_DIR: ${CI_PROJECT_DIR}/workflows
@@ -0,0 +1,18 @@
1
+ CalculateCrossCalibration:
2
+ event_filters: {"min_gammaness": 0.5,
3
+ "min_energy": 0.0 GeV,
4
+ "max_distance_asymmetry": 0.05
5
+ }
6
+ reconstruction_algorithm: "RandomForest"
7
+ RelativeThroughputFitter:
8
+ throughput_normalization:
9
+ - [type, 'MST*', 1.0]
10
+ - [type, 'SST*', 1.0]
11
+ reference_telescopes:
12
+ - [type, 'MST*', 5]
13
+ - [type, 'SST*', 37]
14
+ PairFinder:
15
+ max_impact_distance:
16
+ - [type, 'LST*', 125.0]
17
+ - [type, 'MST*', 125.0]
18
+ - [type, 'SST*', 225.0]
@@ -0,0 +1,21 @@
1
+ =================
2
+ Array calibration
3
+ =================
4
+
5
+ Here we describe the configuration parameters of the relative throughput calibration using reconstructed shower energies tool.
6
+
7
+ * **event_filters**: a dictionary with the event selection filters. The keys are the name of the filters while the values are the thresholds. Currently implemented are:
8
+ * **min_gammaness**: used to select gamma-like showers.
9
+ * **min_energy**: the minimum energy.
10
+ * **max_distance_asymmetry**: used to select equidistant events.
11
+
12
+ * **reconstruction_algorithm**: name of the reconstruction algorithm.
13
+
14
+ * **throughput_normalization**: a FloatTelescopeParameter that sets the overall telescope throughput normalization. Dependingon the use case scenario, it could reflect the absolute optical throughput measured by the muon rings / illuminator, if we want to compare or complement these methods. Alternatively it could get an arbitrary number, e.g. one that sets the average throughput to 1, if the user wants to 'flat-field' the array. Finally it could be set to 1, if we want to identify outlier telescopes or study the aging.
15
+
16
+ * **reference_telescopes**: an IntTelescopeParameter that sets the ID of the telescopes whose throughput kept fixed during the intercalibration minimization.
17
+
18
+ * **max_impact_distance**: a FloatTelescopeParameter that sets the maximum distance between the telescopes and a shower core in meters. The maximum distance between the telescopes in pair should not exceed the sum of these values for the telescopes in pair.
19
+
20
+ .. literalinclude:: array/cross_calibration_configuration.yaml
21
+ :language: YAML
@@ -0,0 +1,83 @@
1
+ ============================
2
+ Calibration event processing
3
+ ============================
4
+
5
+ ------
6
+ Common
7
+ ------
8
+
9
+ The common first step in the calibration process is **image extraction**. In this step, pixel-wise quantities such as charges, peak times, and/or variances are computed from the waveforms, which conform to the CTAO DL0 Data Model. This is typically done by integrating or otherwise reducing the waveform data for each pixel. The image extraction is performed using the `ctapipe-process` tool.
10
+
11
+ * **DataWriter**: Responsible for saving the extracted quantities to a file, following the reference implementation of the ctapipe DL1 data format.
12
+ * **EventTypeFilter**: Used to select the calibration events that will be processed.
13
+
14
+ The configuration required for image extraction varies depending on the type of calibration event. The following standard fields must be provided (except when using the `VarianceExtractor`):
15
+
16
+ * **window_shift**: Defines the shift of the integration window relative to the `peak_index` (`peak_index - shift`).
17
+ * **window_width**: Defines the width of the integration window.
18
+ * **apply_integration_correction**: Indicates whether to apply the integration window correction.
19
+
20
+ -----------------
21
+ Flat-field events
22
+ -----------------
23
+
24
+ The standard processing of flat-field events for the camera calibration uses
25
+ the **LocalPeakWindowSum** extractor, which sums the signal in
26
+ a window around the peak in each pixel's waveform.
27
+
28
+ Below is an example configuration for the camera calibration using flat-field events.
29
+ It includes the necessary components for image extraction,
30
+ event type filtering, and data writing.
31
+ The configuration is designed to handle flat-field events
32
+ and performs the required processing steps using the ``ctapipe-process`` tool.
33
+
34
+ .. literalinclude:: telescope/camera/configuration/ctapipe_process_flatfield.yaml
35
+ :language: YAML
36
+
37
+ -------------------
38
+ Sky pedestal events
39
+ -------------------
40
+
41
+ The standard processing of sky pedestal events for the camera calibration uses
42
+ the **FixedWindowSum** extractor, which sums the signal within a fixed, user-defined window.
43
+
44
+ In addition to the standard fields, the **peak_index**, indicating the signal summing reference point, must be provided.
45
+
46
+ Below is an example configuration for the camera calibration using sky pedestal events. It includes the necessary components for image extraction, event type filtering, and data writing. The configuration is designed to handle sky pedestal events and performs the required processing steps using the ``ctapipe-process`` tool.
47
+
48
+ .. literalinclude:: telescope/camera/configuration/ctapipe_process_pedestal.yaml
49
+ :language: YAML
50
+
51
+ The standard processing of sky pedestal events for the pointing correction uses the
52
+ **VarianceExtractor**, which calculates the signal variance in each waveform.
53
+
54
+ Below is an example configuration for the pointing correction using sky pedestal events. It includes the necessary components for variance image extraction, event type, and data writing. The configuration is designed to handle variance images of sky pedestal events and performs the required processing steps using the ``ctapipe-process`` tool.
55
+
56
+ .. literalinclude:: telescope/pointing/configuration/ctapipe_process_pointing.yaml
57
+ :language: YAML
58
+
59
+ -----------
60
+ Muon events
61
+ -----------
62
+
63
+ The standard processing of muon events for the optical throughput uses the
64
+ **GlobalPeakWindowSum** extractor, which sums signal in a window
65
+ around the peak position of the global average waveform.
66
+
67
+ In addition to the standard parameters, the **pixel_fraction** is required to identify the position of the integration window.
68
+
69
+ Below is an example configuration for the calibration pipeline of the muon processing. It includes the necessary components for image extraction, event type filtering, image cleaning, muon processing/fitting, and data writing. The configuration is designed to handle muon events and performs the required processing steps using the ``ctapipe-process`` tool.
70
+
71
+ .. literalinclude:: telescope/throughput/configuration/ctapipe_process_muon_image.yaml
72
+ :language: YAML
73
+
74
+ The processing of muon events goes beyond the standard image extraction and requires additional steps, the extraction of muon parameters. We are also providing two more configuration section, that are mandatory for the muon processing. These sections are:
75
+
76
+ * **Image cleaning**: The image cleaning step is responsible for removing noise pixels from the extracted images. It uses the ctapipe's ImageCleaner class to apply a specific cleaning algorithm to the images.
77
+ * **Muon processing/fitting**: This step is responsible for processing and fitting the muon events. It uses the ctapipe's MuonProcessor class to perform the muon reconstruction and fitting.
78
+
79
+ .. literalinclude:: telescope/throughput/configuration/ctapipe_process_muon_fitter.yaml
80
+ :language: YAML
81
+
82
+
83
+ The fields of these two configurations have been already presented above. It is worth noticing that for the muon processing the DL1 images do not have to be stored in the output file for the further analysis. In order to perform the whole muon processing the user has to provide the two standard configuration files or a single concatenated configuration file in the CLI.
@@ -0,0 +1,48 @@
1
+ ==================
2
+ Camera calibration
3
+ ==================
4
+
5
+ -----------------
6
+ Camera Calibrator
7
+ -----------------
8
+
9
+ The **Camera Calibrator** calculates the final camera calibration coefficients, which includes the pedestal offset per waveform sample and the timing correction for each pixel, using interleaved calibration events. It uses the **FFactor** method to perform the **gain** calibration of the camera pixels. This calibration process is done using the ``calibpipe-calculate-camcalib-coefficients`` tool.
10
+
11
+ The following parameters shall be provided:
12
+
13
+ * **input_url**: CTAO HDF5 files for DL1 calibration monitoring.
14
+ * **allowed_tels**: Optional list of allowed telescope IDs, others will be ignored.
15
+ * **faulty_pixels_fraction**: Minimum fraction of faulty camera pixels to identify regions of trouble.
16
+ * **squared_excess_noise_factor**: Excess noise factor squared: :math:`1 + \frac{\text{Var}(\text{Gain})}{\text{Mean}(\text{Gain})^2}`.
17
+ * **window_width**: Width of the window used for the image extraction.
18
+
19
+ Below is an example configuration for the camera calibration using the **FFactor** method. The configuration is designed to perform the camera calibration using the ``calibpipe-calculate-camcalib-coefficients`` tool.
20
+
21
+ .. literalinclude:: telescope/camera/configuration/calibpipe_calculate_camcalib_coefficients.yaml
22
+ :language: YAML
23
+
24
+ ----------------------------
25
+ Additional outlier detection
26
+ ----------------------------
27
+
28
+ The additional outlier detection is used to identify and remove outliers from the calibration data.
29
+ The outlier detection, based on the deviation from the
30
+ expected standard deviation of the number of photoelectrons (**NpeStdOutlierDetector**)
31
+ is included in the ``calibpipe-calculate-camcalib-coefficients`` tool.
32
+
33
+ To configure it, the following fields are required:
34
+
35
+ * **n_events**: Number of events used for the chunk-wise aggregation of the statistic values of the calibration data.
36
+ * **relative_qe_dispersion**: Relative (effective) quantum efficiency dispersion of PMs over the camera.
37
+ * **linear_noise_coeff**: Linear noise coefficients [high gain, low gain] or [single gain].
38
+ * **linear_noise_offset**: Linear noise offsets [high gain, low gain] or [single gain].
39
+ * **quadratic_noise_coeff**: Quadratic noise coefficients [high gain, low gain] or [single gain].
40
+ * **quadratic_noise_offset**: Quadratic noise offsets [high gain, low gain] or [single gain].
41
+ * **std_range_factors**: Defines the range of acceptable values (lower, upper) in units of standard deviations.
42
+
43
+ Below is an example configuration to include the additional outlier detection for the camera calibration. The values have been obtained with a fit of the ``std`` of the LST-1 filter scan taken on 2023/05/10:
44
+
45
+ .. literalinclude:: telescope/camera/configuration/npe_std_outlier_detector.yaml
46
+ :language: YAML
47
+
48
+ In order to perform the camera calibration with the additional outlier detection the user has to provide the two standard configuration files or a single concatenated configuration file in the CLI.
@@ -8,3 +8,7 @@ Examples
8
8
  :maxdepth: 1
9
9
 
10
10
  molecularprofiles
11
+ calibprocessing
12
+ pixstatsdescription
13
+ cameracalibration
14
+ arraycalibration
@@ -0,0 +1,41 @@
1
+ ============================
2
+ Pixel statistics description
3
+ ============================
4
+
5
+ The statistical description is assessed based on the image extracted from the interleaved calibration data. The pixel statistics description is done using the ``ctapipe-calculate-pixel-statistics`` tool. In order to produce test data for the camera calibration tools in the calibpipe package, the utility tool ``calibpipe-produce-camcalib-test-data`` can be used with the configuration files below.
6
+
7
+ The following configuration parameters are required:
8
+
9
+ * **allowed_tels**: Optional list of allowed telescope IDs, others will be ignored.
10
+ * **input_column_name**: Column name of the pixel-wise image data to calculate statistics.
11
+ * **output_table_name**: Table name of the output statistics.
12
+ * **output_path**: Output filename.
13
+
14
+ **PixelStatisticsCalculator** component is used to calculate the statistical description of the calibration events. It needs the following fields:
15
+
16
+ * **stats_aggregator_type**: Name of the StatisticsAggregator subclass to be used.
17
+ * **outlier_detector_list**: List of dicts containing the OutlierDetector and configuration to be used.
18
+ * **chunk_shift**: Number of samples to shift the aggregation chunk for the calculation of the statistical values.
19
+ * **faulty_pixels_fraction**: Minimum fraction of faulty camera pixels to identify regions of trouble.
20
+
21
+ Additionally, the user can provide the following fields for the **StatisticsAggregator** component:
22
+
23
+ * **PlainAggregator**: Compute aggregated statistic values from a chunk of images using numpy functions.
24
+ * **SigmaClippingAggregator**: Compute aggregated statistic values from a chunk of images using astropy's sigma clipping functions.
25
+
26
+ Below are examples of configurations for assessing the statistical description of interleaved calibration events using the ``ctapipe-calculate-pixel-statistics`` tool.
27
+
28
+ **Interleaved pedestal events - charge image**
29
+
30
+ .. literalinclude:: telescope/camera/configuration/ctapipe_calculate_pixel_stats_pedestal_image.yaml
31
+ :language: YAML
32
+
33
+ **Interleaved flat-field events - charge image**
34
+
35
+ .. literalinclude:: telescope/camera/configuration/ctapipe_calculate_pixel_stats_flatfield_image.yaml
36
+ :language: YAML
37
+
38
+ **Interleaved flat-field events - peak arrival time**
39
+
40
+ .. literalinclude:: telescope/camera/configuration/ctapipe_calculate_pixel_stats_flatfield_peak_time.yaml
41
+ :language: YAML
@@ -0,0 +1,6 @@
1
+ # Camera calibration coefficients calculation configuration
2
+ CameraCalibratorTool:
3
+ timestamp_tolerance: 1.0 second
4
+ faulty_pixels_fraction: 0.1
5
+ squared_excess_noise_factor: 1.222
6
+ window_width: 12
@@ -0,0 +1,25 @@
1
+ # Tool configuration for assess statistical description of flatfield events
2
+ PixelStatisticsCalculatorTool:
3
+ input_column_name: image
4
+ output_table_name: flatfield_image
5
+ overwrite: True
6
+ # Pixel statistics configuration
7
+ PixelStatisticsCalculator:
8
+ stats_aggregator_type:
9
+ - ["type", "*", "SigmaClippingAggregator"]
10
+ chunk_shift: 500
11
+ faulty_pixels_fraction: 0.1
12
+ outlier_detector_list:
13
+ - name: MedianOutlierDetector
14
+ apply_to: median
15
+ config:
16
+ median_range_factors: [-0.9, 8]
17
+ - name: StdOutlierDetector
18
+ apply_to: std
19
+ config:
20
+ std_range_factors: [-10, 10]
21
+ # Aggregation configuration
22
+ SigmaClippingAggregator:
23
+ chunk_size: 2500
24
+ max_sigma: 4
25
+ iterations: 5
@@ -0,0 +1,19 @@
1
+ # Tool configuration for assess statistical description for the time correction
2
+ PixelStatisticsCalculatorTool:
3
+ input_column_name: peak_time
4
+ output_table_name: flatfield_peak_time
5
+ overwrite: True
6
+ # Pixel statistics configuration
7
+ PixelStatisticsCalculator:
8
+ stats_aggregator_type:
9
+ - ["type", "*", "PlainAggregator"]
10
+ chunk_shift: 500
11
+ faulty_pixels_fraction: 0.1
12
+ outlier_detector_list:
13
+ - name: RangeOutlierDetector
14
+ apply_to: median
15
+ config:
16
+ validity_range: [2, 38]
17
+ # Aggregation configuration
18
+ PlainAggregator:
19
+ chunk_size: 2500
@@ -0,0 +1,25 @@
1
+ # Tool configuration for assess statistical description of pedestal events
2
+ PixelStatisticsCalculatorTool:
3
+ input_column_name: image
4
+ output_table_name: pedestal_image
5
+ overwrite: True
6
+ # Pixel statistics configuration
7
+ PixelStatisticsCalculator:
8
+ stats_aggregator_type:
9
+ - ["type", "*", "SigmaClippingAggregator"]
10
+ chunk_shift: 500
11
+ faulty_pixels_fraction: 0.1
12
+ outlier_detector_list:
13
+ - name: StdOutlierDetector
14
+ apply_to: median
15
+ config:
16
+ std_range_factors: [-10, 10]
17
+ - name: StdOutlierDetector
18
+ apply_to: std
19
+ config:
20
+ std_range_factors: [-10, 10]
21
+ # Aggregation configuration
22
+ SigmaClippingAggregator:
23
+ chunk_size: 2500
24
+ max_sigma: 4
25
+ iterations: 5
@@ -0,0 +1,21 @@
1
+ # Data writing configuration
2
+ DataWriter:
3
+ write_dl1_images: true # Required parameter to write flatfield images to DL1
4
+ write_dl1_parameters: false
5
+ write_dl2: false
6
+ transform_image: true
7
+ transform_peak_time: true
8
+ # Event type filter configuration
9
+ EventTypeFilter:
10
+ allowed_types: [FLATFIELD]
11
+ # Image extraction configuration
12
+ CameraCalibrator:
13
+ image_extractor_type:
14
+ - ['type', '*', 'LocalPeakWindowSum']
15
+ LocalPeakWindowSum:
16
+ window_shift:
17
+ - ['type', '*', 5]
18
+ window_width:
19
+ - ['type', '*', 12]
20
+ apply_integration_correction:
21
+ - ['type', '*', false]
@@ -0,0 +1,22 @@
1
+ # Data writing configuration
2
+ DataWriter:
3
+ write_dl1_images: true # Required parameter to write pedestal images to DL1
4
+ write_dl1_parameters: false
5
+ write_dl2: false
6
+ transform_image: true
7
+ transform_peak_time: true
8
+ # Event type filter configuration
9
+ EventTypeFilter:
10
+ allowed_types: [DARK_PEDESTAL, SKY_PEDESTAL]
11
+ CameraCalibrator:
12
+ image_extractor_type:
13
+ - ['type', '*', 'FixedWindowSum']
14
+ FixedWindowSum:
15
+ window_shift:
16
+ - ['type', '*', 6]
17
+ window_width:
18
+ - ['type', '*', 12]
19
+ peak_index:
20
+ - ['type', '*', 18]
21
+ apply_integration_correction:
22
+ - ['type', '*', false]
@@ -0,0 +1,9 @@
1
+ # Outlier detector configuration for expected std of the number of photoelectrons
2
+ NpeStdOutlierDetector:
3
+ n_events: 2500
4
+ relative_qe_dispersion: 0.7
5
+ linear_noise_coeff: [1.79717813, 1.72458305]
6
+ linear_noise_offset: [0.0231544, -0.00162036639]
7
+ quadratic_noise_coeff: [0.000499670969, 0.00142218]
8
+ quadratic_noise_offset: [0.0000249034290, 0.0001207]
9
+ std_range_factors: [-5, 5]
@@ -0,0 +1,14 @@
1
+ # Data writing configuration
2
+ DataWriter:
3
+ write_dl1_images: true
4
+ write_dl1_parameters: false
5
+ write_dl2: false
6
+ transform_image: true
7
+ transform_peak_time: true
8
+ # Event type filter configuration
9
+ EventTypeFilter:
10
+ allowed_types: [SKY_PEDESTAL]
11
+ # Image extraction configuration
12
+ CameraCalibrator:
13
+ image_extractor_type:
14
+ - ['type', '*', 'VarianceExtractor']
@@ -0,0 +1,50 @@
1
+ # Image cleaning configuration
2
+ ImageProcessor:
3
+ image_cleaner_type:
4
+ - ['type', '*', 'TailcutsImageCleaner']
5
+ use_telescope_frame: True
6
+ TailcutsImageCleaner:
7
+ picture_threshold_pe:
8
+ - ['type', '*', 10]
9
+ boundary_threshold_pe:
10
+ - ['type', '*', 5]
11
+ min_picture_neighbors:
12
+ - ['type', '*', 2]
13
+ keep_isolated_pixels:
14
+ - ['type', '*', False]
15
+ ImageParameterQuery:
16
+ quality_criteria: [
17
+ ["min_pixels", "dl1_params.morphology.n_pixels > 100"],
18
+ ["min_intensity", "dl1_params.hillas.intensity > 500"]
19
+ ]
20
+ # Muon processing/fitting configuration
21
+ MuonProcessor:
22
+ completeness_threshold:
23
+ - ['type', '*', 30]
24
+ ratio_width:
25
+ - ['type', '*', 1.5]
26
+ pedestal:
27
+ - ['type', '*', 1.1]
28
+ ring_integration_width:
29
+ - ['type', '*', 0.25]
30
+ outer_ring_width:
31
+ - ['type', '*', 0.2]
32
+ MuonIntensityFitter:
33
+ hole_radius_m:
34
+ - ["type", "LST*", 0.308]
35
+ - ["type", "MST*", 0.244]
36
+ - ["type", "SST*", 0.130]
37
+ spe_width:
38
+ - ["type", "*", 0.5]
39
+ min_lambda_m:
40
+ - ["type", "*", 0.0000003]
41
+ max_lambda_m:
42
+ - ["type", "*", 0.0000006]
43
+ oversampling:
44
+ - ["type", "*", 3]
45
+ RingQuery:
46
+ quality_criteria: [
47
+ ["radius_not_nan", "np.isfinite(ring.radius.value)"],
48
+ ["min_pixels", "np.count_nonzero(mask) > 50"],
49
+ ["ring_containment", "parameters.containment > 0.5"]
50
+ ]
@@ -0,0 +1,27 @@
1
+ # Data writing configuration
2
+ DataWriter:
3
+ write_dl1_images: true # Optional parameter to write muon images to DL1
4
+ write_dl1_parameters: true # Optional parameter to write parameters to DL1
5
+ write_muon_parameters: true # Required parameter to write muon parameters to DL1
6
+ write_dl2: false
7
+ transform_image: true
8
+ transform_peak_time: true
9
+ # Event type filter configuration
10
+ EventTypeFilter:
11
+ allowed_types: [MUON]
12
+ # Image extraction configuration
13
+ CameraCalibrator:
14
+ image_extractor_type:
15
+ - ['type', '*', 'GlobalPeakWindowSum']
16
+ invalid_pixel_handler_type: "NeighborAverage"
17
+ apply_waveform_time_shift: False
18
+ apply_peak_time_shift: True
19
+ GlobalPeakWindowSum:
20
+ window_shift:
21
+ - ['type', '*', 3]
22
+ window_width:
23
+ - ['type', '*', 7]
24
+ apply_integration_correction:
25
+ - ['type', '*', True]
26
+ pixel_fraction:
27
+ - ['type', '*', 1]
@@ -0,0 +1,20 @@
1
+ database_configuration:
2
+ user: TEST_CALIBPIPE_DB_USER
3
+ password: DUMMY_PSWRD
4
+ database: TEST_CALIBPIPE_DB
5
+ host: postgres
6
+ port: null
7
+ autocommit: True
8
+
9
+ CalculateThroughputWithMuons:
10
+ input_url: None
11
+ output_url: None
12
+ output_format: "ascii.ecsv"
13
+ min_events: 0
14
+ min_ring_radius: 0.8
15
+ max_ring_radius: 1.5
16
+ min_impact_parameter: 0.2
17
+ max_impact_parameter: 0.9
18
+ ring_completeness_threshold: 0.3
19
+ intensity_ratio: 0.5
20
+ ring_containment_threshold: 0.5
@@ -6,7 +6,7 @@ flowchart BT
6
6
  Muon Rings Analysis
7
7
  main method):::todo
8
8
  2.3(DPPS-UC-120-2.3
9
- Shower Energies Analysis):::todo
9
+ Shower Energies Analysis):::doing
10
10
  2.4(DPPS-UC-120-2.4
11
11
  Cherenkov Transparency Coefficient):::onhold
12
12
 
@@ -50,6 +50,9 @@ Aerosols/clouds calibration
50
50
  Array calibration
51
51
  -----------------
52
52
 
53
+ Relative calibration of the telescope's throughput based on reconstructed gamma-like showers energies. It is based on the expectation that all telescopes observing the same shower should reconstruct the same energy. It is complementary to muon rings calibration, helping to mitigate statistical uncertainties in cases where the muon trigger rate is low, particularly for SSTs. Moreover, unlike muon rings calibration, it uses directly the light from the showers, helping to resolve
54
+ throughput variations with wavelength or crossed airmass. It can be used as an array "flat-fielding" or alternatively as a crosscheck of muon rings calibration. The implementation of the algorithm in based on the study documented in “Cross Calibration of Telescope Optical Throughput Efficiencies using Reconstructed Shower Energies for the Cherenkov Telescope Array”, Astroparticle Physics 75 (2016), pp. 1–7 from Alison Mitchell et al.
55
+
53
56
  ---------------------
54
57
  Telescope calibration
55
58
  ---------------------
@@ -24,8 +24,9 @@ dependencies = [
24
24
  "astral",
25
25
  "astropy",
26
26
  "cdsapi",
27
- "ctapipe >= 0.18",
27
+ "ctapipe[all]",
28
28
  "h5py",
29
+ "iminuit",
29
30
  "molecularprofiles >= 2.1.0",
30
31
  "numpy",
31
32
  "pandas",
@@ -82,6 +83,10 @@ calibpipe-create-molecular-atmospheric-model = "calibpipe.tools.molecular_atmosp
82
83
  calibpipe-upload-observatory-data = "calibpipe.tools.observatory_data_db_loader:main"
83
84
  calibpipe-upload-atmospheric-model-data = "calibpipe.tools.atmospheric_model_db_loader:main"
84
85
  calibpipe-init-db = "calibpipe.tools.init_db:main"
86
+ calibpipe-produce-camcalib-test-data = "calibpipe.tools.camcalib_test_data:main"
87
+ calibpipe-calculate-camcalib-coefficients = "calibpipe.tools.camera_calibrator:main"
88
+ calibpipe-calculate-throughput-muon = "calibpipe.tools.muon_throughput_calculator:main"
89
+ calibpipe-cross-calibration = "calibpipe.tools.telescope_cross_calibration_calculator:main"
85
90
 
86
91
  [tool.setuptools.packages.find]
87
92
  where = ["src"]
@@ -36,4 +36,4 @@ src/calibpipe/tests/unittests/atmosphere/test_meteo_data_handler.py X [100%]
36
36
  ========= 8 deselected, 1 xpassed, 3 warnings in 135.75s (0:02:15) =========
37
37
  \end{minted}
38
38
 
39
- \ManualTestCase{DPPS-UC-120.1.5}{passed}{Tested manually because GDAS endpoint is unstable. Details are provided in the manual testing section.}
39
+ \ManualTestCase{UC-120-1.5}{passed}{Tested manually because GDAS endpoint is unstable. Details are provided in the manual testing section.}
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '0.1.0rc9'
21
- __version_tuple__ = version_tuple = (0, 1, 0, 'rc9')
20
+ __version__ = version = '0.2.0rc2'
21
+ __version_tuple__ = version_tuple = (0, 2, 0, 'rc2')