ctao-calibpipe 0.1.0rc9__tar.gz → 0.2.0__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.
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/.gitlab-ci.yml +31 -4
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/PKG-INFO +3 -2
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/aiv-config.yml +2 -2
- ctao_calibpipe-0.2.0/docs/source/examples/array/cross_calibration_configuration.yaml +18 -0
- ctao_calibpipe-0.2.0/docs/source/examples/arraycalibration.rst +21 -0
- ctao_calibpipe-0.2.0/docs/source/examples/calibprocessing.rst +83 -0
- ctao_calibpipe-0.2.0/docs/source/examples/cameracalibration.rst +48 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/docs/source/examples/index.rst +4 -0
- ctao_calibpipe-0.2.0/docs/source/examples/pixstatsdescription.rst +41 -0
- ctao_calibpipe-0.2.0/docs/source/examples/telescope/camera/configuration/calibpipe_calculate_camcalib_coefficients.yaml +6 -0
- ctao_calibpipe-0.2.0/docs/source/examples/telescope/camera/configuration/ctapipe_calculate_pixel_stats_flatfield_image.yaml +25 -0
- ctao_calibpipe-0.2.0/docs/source/examples/telescope/camera/configuration/ctapipe_calculate_pixel_stats_flatfield_peak_time.yaml +19 -0
- ctao_calibpipe-0.2.0/docs/source/examples/telescope/camera/configuration/ctapipe_calculate_pixel_stats_pedestal_image.yaml +25 -0
- ctao_calibpipe-0.2.0/docs/source/examples/telescope/camera/configuration/ctapipe_process_flatfield.yaml +21 -0
- ctao_calibpipe-0.2.0/docs/source/examples/telescope/camera/configuration/ctapipe_process_pedestal.yaml +22 -0
- ctao_calibpipe-0.2.0/docs/source/examples/telescope/camera/configuration/npe_std_outlier_detector.yaml +9 -0
- ctao_calibpipe-0.2.0/docs/source/examples/telescope/pointing/configuration/ctapipe_process_pointing.yaml +14 -0
- ctao_calibpipe-0.2.0/docs/source/examples/telescope/throughput/configuration/ctapipe_process_muon_fitter.yaml +50 -0
- ctao_calibpipe-0.2.0/docs/source/examples/telescope/throughput/configuration/ctapipe_process_muon_image.yaml +27 -0
- ctao_calibpipe-0.2.0/docs/source/examples/telescope/throughput/configuration/throughput_muon_configuration.yaml +20 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/docs/source/introduction/diagrams/muon_calibration.mmd +1 -1
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/docs/source/introduction/introduction.rst +3 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/pyproject.toml +10 -5
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/report/manual_testing.tex +2 -2
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/_version.py +2 -2
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/core/common_metadata_containers.py +3 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/database/adapter/adapter.py +1 -1
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/database/adapter/database_containers/__init__.py +2 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/database/adapter/database_containers/common_metadata.py +2 -0
- ctao_calibpipe-0.2.0/src/calibpipe/database/adapter/database_containers/throughput.py +30 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/database/interfaces/table_handler.py +79 -97
- ctao_calibpipe-0.2.0/src/calibpipe/telescope/throughput/containers.py +59 -0
- ctao_calibpipe-0.2.0/src/calibpipe/tests/unittests/array/test_cross_calibration.py +417 -0
- ctao_calibpipe-0.2.0/src/calibpipe/tests/unittests/database/test_table_handler.py +161 -0
- ctao_calibpipe-0.2.0/src/calibpipe/tests/unittests/telescope/camera/test_calculate_camcalib_coefficients.py +347 -0
- ctao_calibpipe-0.2.0/src/calibpipe/tests/unittests/telescope/camera/test_produce_camcalib_test_data.py +42 -0
- ctao_calibpipe-0.2.0/src/calibpipe/tests/unittests/telescope/throughput/test_muon_throughput_calibrator.py +189 -0
- ctao_calibpipe-0.2.0/src/calibpipe/tools/camcalib_test_data.py +361 -0
- ctao_calibpipe-0.2.0/src/calibpipe/tools/camera_calibrator.py +558 -0
- ctao_calibpipe-0.2.0/src/calibpipe/tools/muon_throughput_calculator.py +239 -0
- ctao_calibpipe-0.2.0/src/calibpipe/tools/telescope_cross_calibration_calculator.py +721 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/ctao_calibpipe.egg-info/PKG-INFO +3 -2
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/ctao_calibpipe.egg-info/SOURCES.txt +34 -1
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/ctao_calibpipe.egg-info/entry_points.txt +4 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/ctao_calibpipe.egg-info/requires.txt +2 -1
- ctao_calibpipe-0.2.0/workflows/array/uc-120-2.3-telescope-cross-calibration.cwl +55 -0
- ctao_calibpipe-0.2.0/workflows/telescope/camera/calibpipe-camcalib-tool.cwl +41 -0
- ctao_calibpipe-0.2.0/workflows/telescope/camera/uc-120-2.20-perform-camera-calibration.cwl +84 -0
- ctao_calibpipe-0.2.0/workflows/telescope/camera/uc-120-2.21-assess-statistical-description.cwl +102 -0
- ctao_calibpipe-0.2.0/workflows/telescope/ctapipe-pix-stats-tool.cwl +45 -0
- ctao_calibpipe-0.2.0/workflows/telescope/ctapipe-process-tool.cwl +45 -0
- ctao_calibpipe-0.2.0/workflows_cfgs/telescope/camera/uc-120-2.20-perform-camera-calibration.cfg +22 -0
- ctao_calibpipe-0.2.0/workflows_cfgs/telescope/camera/uc-120-2.21-assess-statistical-description.cfg +19 -0
- ctao_calibpipe-0.1.0rc9/docs/source/examples/throughput/configurations/throughput_configuration.yaml +0 -182
- ctao_calibpipe-0.1.0rc9/src/calibpipe/tests/unittests/database/test_table_handler.py +0 -66
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/.dockerignore +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/.gitattributes +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/.gitignore +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/.gitlab/issue_templates/Bug.md +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/.gitlab/issue_templates/Discussion.md +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/.gitlab/issue_templates/default.md +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/.gitlab/merge_request_templates/default.md +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/.gitmodules +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/.pre-commit-config.yaml +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/AUTHORS.md +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/CHANGES.rst +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/CONTRIBUTING.md +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/Dockerfile +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/LICENSE +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/README.md +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/aiv-config-dependencies.yml +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/docs/Makefile +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/docs/source/AUTHORS.md +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/docs/source/FAQ.rst +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/docs/source/_static/FD.png +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/docs/source/_templates/autosummary/base.rst +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/docs/source/_templates/autosummary/class.rst +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/docs/source/_templates/autosummary/module.rst +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/docs/source/bibliography.rst +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/docs/source/changelog.rst +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/docs/source/changes/README.md +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/docs/source/changes/template.rst +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/docs/source/conf.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/docs/source/development/CONTRIBUTING.md +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/docs/source/development/index.rst +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/docs/source/examples/atmosphere/configuration/calculate_macobac.yaml +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/docs/source/examples/atmosphere/configuration/create_molecular_atmospheric_model.yaml +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/docs/source/examples/atmosphere/configuration/create_molecular_density_profile.yaml +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/docs/source/examples/atmosphere/configuration/select_reference_atmospheric_model.yaml +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/docs/source/examples/molecularprofiles.rst +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/docs/source/examples/utils/configuration/db_config.yaml +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/docs/source/examples/utils/configuration/metadata_db.yaml +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/docs/source/examples/utils/configuration/optical_throughput_db.yaml +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/docs/source/examples/utils/configuration/upload_atmospheric_model_data_db_intermediate.yaml +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/docs/source/examples/utils/configuration/upload_atmospheric_model_data_db_summer.yaml +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/docs/source/examples/utils/configuration/upload_atmospheric_model_data_db_winter.yaml +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/docs/source/examples/utils/configuration/upload_common_metadata_db.yaml +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/docs/source/examples/utils/configuration/upload_observatory_data_db.yaml +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/docs/source/getting_started/index.rst +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/docs/source/index.rst +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/docs/source/introduction/diagrams/camera_calibration.mmd +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/docs/source/introduction/diagrams/legend.mmd +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/docs/source/introduction/diagrams/molecular_atmosphere.mmd +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/docs/source/introduction/diagrams/puppeteer-config.json +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/docs/source/introduction/index.rst +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/report/inspection.tex +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/report/performance_verification.tex +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/report/preamble.tex +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/setup.cfg +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/sonar-project.properties +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/__init__.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/_dev_version/__init__.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/atmosphere/__init__.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/atmosphere/atmosphere_containers.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/atmosphere/meteo_data_handlers.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/atmosphere/models/README.md +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/atmosphere/models/__init__.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/atmosphere/models/macobac.ecsv +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/atmosphere/models/reference_MDPs/__init__.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/atmosphere/models/reference_MDPs/ref_density_at_15km_ctao-north_intermediate.ecsv +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/atmosphere/models/reference_MDPs/ref_density_at_15km_ctao-north_summer.ecsv +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/atmosphere/models/reference_MDPs/ref_density_at_15km_ctao-north_winter.ecsv +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/atmosphere/models/reference_MDPs/ref_density_at_15km_ctao-south_summer.ecsv +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/atmosphere/models/reference_MDPs/ref_density_at_15km_ctao-south_winter.ecsv +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/atmosphere/models/reference_atmospheres/__init__.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/atmosphere/models/reference_atmospheres/reference_atmo_model_v0_ctao-north_intermediate.ecsv +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/atmosphere/models/reference_atmospheres/reference_atmo_model_v0_ctao-north_summer.ecsv +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/atmosphere/models/reference_atmospheres/reference_atmo_model_v0_ctao-north_winter.ecsv +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/atmosphere/models/reference_atmospheres/reference_atmo_model_v0_ctao-south_summer.ecsv +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/atmosphere/models/reference_atmospheres/reference_atmo_model_v0_ctao-south_winter.ecsv +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/atmosphere/models/reference_rayleigh_scattering_profiles/__init__.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/atmosphere/models/reference_rayleigh_scattering_profiles/reference_rayleigh_extinction_profile_v0_ctao-north_intermediate.ecsv +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/atmosphere/models/reference_rayleigh_scattering_profiles/reference_rayleigh_extinction_profile_v0_ctao-north_summer.ecsv +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/atmosphere/models/reference_rayleigh_scattering_profiles/reference_rayleigh_extinction_profile_v0_ctao-north_winter.ecsv +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/atmosphere/models/reference_rayleigh_scattering_profiles/reference_rayleigh_extinction_profile_v0_ctao-south_summer.ecsv +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/atmosphere/models/reference_rayleigh_scattering_profiles/reference_rayleigh_extinction_profile_v0_ctao-south_winter.ecsv +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/atmosphere/templates/request_templates/__init__.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/atmosphere/templates/request_templates/copernicus.json +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/atmosphere/templates/request_templates/gdas.json +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/core/__init__.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/core/exceptions.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/database/__init__.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/database/adapter/__init__.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/database/adapter/database_containers/atmosphere.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/database/adapter/database_containers/container_map.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/database/adapter/database_containers/observatory.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/database/adapter/database_containers/table_version_manager.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/database/adapter/database_containers/version_control.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/database/connections/__init__.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/database/connections/calibpipe_database.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/database/connections/postgres_utils.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/database/connections/sql_connection.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/database/connections/user_confirmation.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/database/interfaces/__init__.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/database/interfaces/hashable_row_data.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/database/interfaces/queries.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/database/interfaces/sql_column_info.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/database/interfaces/sql_metadata.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/database/interfaces/sql_table_info.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/database/interfaces/types.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/tests/data/atmosphere/molecular_atmosphere/__init__.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/tests/data/atmosphere/molecular_atmosphere/contemporary_MDP.ecsv +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/tests/data/atmosphere/molecular_atmosphere/macobac.csv +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/tests/data/atmosphere/molecular_atmosphere/macobac.ecsv +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/tests/data/atmosphere/molecular_atmosphere/merged_file.ecsv +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/tests/data/atmosphere/molecular_atmosphere/meteo_data_copernicus.ecsv +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/tests/data/atmosphere/molecular_atmosphere/meteo_data_gdas.ecsv +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/tests/data/atmosphere/molecular_atmosphere/observatory_configurations.json +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/tests/data/utils/__init__.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/tests/data/utils/meteo_data_winter_and_summer.ecsv +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/tests/unittests/atmosphere/astral_testing.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/tests/unittests/atmosphere/test_meteo_data_handler.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/tests/unittests/atmosphere/test_molecular_atmosphere.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/tests/unittests/database/test_types.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/tests/unittests/test_bootstrap_db.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/tests/unittests/utils/test_observatory.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/tools/atmospheric_base_tool.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/tools/atmospheric_model_db_loader.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/tools/basic_tool_with_db.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/tools/contemporary_mdp_producer.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/tools/init_db.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/tools/macobac_calculator.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/tools/molecular_atmospheric_model_producer.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/tools/observatory_data_db_loader.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/tools/reference_atmospheric_model_selector.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/utils/__init__.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/utils/observatory.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/utils/observatory_containers.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/calibpipe/version.py +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/ctao_calibpipe.egg-info/dependency_links.txt +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/src/ctao_calibpipe.egg-info/top_level.txt +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/workflows/atmosphere/uc-120-1.2-calculate-macobac.cwl +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/workflows/atmosphere/uc-120-1.3-select-reference-atmospheric-model.cwl +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/workflows/atmosphere/uc-120-1.7-create-contemporary-atmospheric-model.cwl +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/workflows_cfgs/atmosphere/uc-120-1.2-calculate-macobac.cfg +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/workflows_cfgs/atmosphere/uc-120-1.3-select-reference-atmospheric-model.cfg +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/workflows_cfgs/atmosphere/uc-120-1.7-create-contemporary-atmospheric-model.cfg +0 -0
- {ctao_calibpipe-0.1.0rc9 → ctao_calibpipe-0.2.0}/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:
|
|
4
|
+
ref: 1e9b640800ac73c215ce59df01330085d05b335e
|
|
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.
|
|
3
|
+
Version: 0.2.0
|
|
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
|
|
13
|
+
Requires-Dist: ctapipe[all]==0.26.0
|
|
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.
|
|
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.
|
|
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.
|
|
@@ -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,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
|
|
@@ -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,17 +24,18 @@ dependencies = [
|
|
|
24
24
|
"astral",
|
|
25
25
|
"astropy",
|
|
26
26
|
"cdsapi",
|
|
27
|
-
"ctapipe
|
|
27
|
+
"ctapipe[all]==0.26.0",
|
|
28
28
|
"h5py",
|
|
29
|
-
"
|
|
29
|
+
"iminuit",
|
|
30
|
+
"molecularprofiles>=2.1.0",
|
|
30
31
|
"numpy",
|
|
31
32
|
"pandas",
|
|
32
33
|
"psycopg[binary]",
|
|
33
34
|
"pygrib",
|
|
34
|
-
"pyrdams
|
|
35
|
-
"requests
|
|
35
|
+
"pyrdams>=3.0.1",
|
|
36
|
+
"requests>=2.27",
|
|
36
37
|
"requests",
|
|
37
|
-
"sqlalchemy
|
|
38
|
+
"sqlalchemy>=2.0.1",
|
|
38
39
|
"traitlets",
|
|
39
40
|
]
|
|
40
41
|
|
|
@@ -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"]
|