dkist-processing-cryonirsp 1.13.1__tar.gz → 1.14.1rc1__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 dkist-processing-cryonirsp might be problematic. Click here for more details.
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/CHANGELOG.rst +9 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/PKG-INFO +143 -50
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/README.rst +77 -1
- dkist_processing_cryonirsp-1.14.1rc1/changelog/223.misc.rst +1 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tasks/bad_pixel_map.py +5 -5
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tasks/beam_boundaries_base.py +8 -10
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tasks/dark.py +4 -4
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tasks/gain.py +6 -6
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tasks/instrument_polarization.py +15 -15
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tasks/make_movie_frames.py +2 -2
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tasks/quality_metrics.py +14 -14
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tasks/science_base.py +5 -5
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tasks/sp_geometric.py +9 -9
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tasks/sp_solar_gain.py +14 -12
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tasks/sp_wavelength_calibration.py +5 -5
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tests/header_models.py +36 -3
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tests/local_trial_workflows/l0_cals_only.py +0 -21
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tests/local_trial_workflows/l0_to_l1.py +0 -20
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tests/test_parse.py +7 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp.egg-info/PKG-INFO +143 -50
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp.egg-info/SOURCES.txt +1 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp.egg-info/requires.txt +65 -48
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/pyproject.toml +67 -50
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/.gitignore +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/.pre-commit-config.yaml +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/.readthedocs.yml +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/.snyk +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/SCIENCE_CHANGELOG.rst +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/bitbucket-pipelines.yml +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/changelog/.gitempty +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/__init__.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/codecs/__init__.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/codecs/fits.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/config.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/models/__init__.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/models/beam_boundaries.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/models/constants.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/models/exposure_conditions.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/models/parameters.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/models/tags.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/models/task_name.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/parsers/__init__.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/parsers/check_for_gains.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/parsers/cryonirsp_l0_fits_access.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/parsers/cryonirsp_l1_fits_access.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/parsers/exposure_conditions.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/parsers/map_repeats.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/parsers/measurements.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/parsers/modstates.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/parsers/optical_density_filters.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/parsers/polarimetric_check.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/parsers/scan_step.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/parsers/time.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/parsers/wavelength.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tasks/__init__.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tasks/assemble_movie.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tasks/ci_beam_boundaries.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tasks/ci_science.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tasks/cryonirsp_base.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tasks/l1_output_data.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tasks/linearity_correction.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tasks/mixin/__init__.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tasks/mixin/corrections.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tasks/mixin/shift_measurements.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tasks/parse.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tasks/sp_beam_boundaries.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tasks/sp_science.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tasks/write_l1.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tests/__init__.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tests/conftest.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tests/local_trial_workflows/__init__.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tests/local_trial_workflows/linearize_only.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tests/local_trial_workflows/local_trial_helpers.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tests/test_assemble_movie.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tests/test_assemble_qualilty.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tests/test_bad_pixel_maps.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tests/test_ci_beam_boundaries.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tests/test_ci_science.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tests/test_corrections.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tests/test_cryo_base.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tests/test_cryo_constants.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tests/test_dark.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tests/test_gain.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tests/test_instrument_polarization.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tests/test_linearity_correction.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tests/test_make_movie_frames.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tests/test_parameters.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tests/test_quality.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tests/test_sp_beam_boundaries.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tests/test_sp_geometric.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tests/test_sp_make_movie_frames.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tests/test_sp_science.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tests/test_sp_solar.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tests/test_sp_wavelength_calibration.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tests/test_trial_create_quality_report.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tests/test_workflows.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/tests/test_write_l1.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/workflows/__init__.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/workflows/ci_l0_processing.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/workflows/sp_l0_processing.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp/workflows/trial_workflows.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp.egg-info/dependency_links.txt +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/dkist_processing_cryonirsp.egg-info/top_level.txt +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/docs/Makefile +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/docs/bad_pixel_calibration.rst +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/docs/beam_angle_calculation.rst +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/docs/beam_boundary_computation.rst +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/docs/changelog.rst +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/docs/ci_science_calibration.rst +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/docs/conf.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/docs/index.rst +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/docs/l0_to_l1_cryonirsp_ci-full-trial.rst +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/docs/l0_to_l1_cryonirsp_ci.rst +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/docs/l0_to_l1_cryonirsp_sp-full-trial.rst +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/docs/l0_to_l1_cryonirsp_sp.rst +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/docs/landing_page.rst +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/docs/linearization.rst +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/docs/make.bat +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/docs/requirements.txt +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/docs/requirements_table.rst +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/docs/scientific_changelog.rst +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/docs/sp_science_calibration.rst +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/docs/wavelength_calibration.rst +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/licenses/LICENSE.rst +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/science_towncrier.sh +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/setup.cfg +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.1rc1}/towncrier_science.toml +0 -0
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
v1.14.0 (2025-09-26)
|
|
2
|
+
====================
|
|
3
|
+
|
|
4
|
+
Misc
|
|
5
|
+
----
|
|
6
|
+
|
|
7
|
+
- Integrate dkist-processing-core 6.0.0 which brings a swap of Elastic APM to OpenTelemetry for metrics and tracing. (`#221 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/221>`__)
|
|
8
|
+
|
|
9
|
+
|
|
1
10
|
v1.13.1 (2025-09-17)
|
|
2
11
|
====================
|
|
3
12
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dkist-processing-cryonirsp
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.14.1rc1
|
|
4
4
|
Summary: Science processing code for the Cryo-NIRSP instrument on DKIST
|
|
5
5
|
Author-email: NSO / AURA <dkistdc@nso.edu>
|
|
6
6
|
License: BSD-3-Clause
|
|
@@ -17,12 +17,12 @@ Requires-Dist: Pillow==10.4.0
|
|
|
17
17
|
Requires-Dist: astropy==7.0.2
|
|
18
18
|
Requires-Dist: dkist-fits-specifications==4.17.0
|
|
19
19
|
Requires-Dist: dkist-header-validator==5.2.1
|
|
20
|
-
Requires-Dist: dkist-processing-common==11.
|
|
20
|
+
Requires-Dist: dkist-processing-common==11.7.0rc4
|
|
21
21
|
Requires-Dist: dkist-processing-math==2.2.1
|
|
22
22
|
Requires-Dist: dkist-processing-pac==3.1.1
|
|
23
23
|
Requires-Dist: dkist-spectral-lines==3.0.0
|
|
24
24
|
Requires-Dist: largestinteriorrectangle==0.2.1
|
|
25
|
-
Requires-Dist: dkist-service-configuration==
|
|
25
|
+
Requires-Dist: dkist-service-configuration==4.1.7
|
|
26
26
|
Requires-Dist: moviepy==2.1.2
|
|
27
27
|
Requires-Dist: numba==0.61.2
|
|
28
28
|
Requires-Dist: numpy==2.2.5
|
|
@@ -70,65 +70,66 @@ Requires-Dist: Flask-AppBuilder==4.5.3; extra == "frozen"
|
|
|
70
70
|
Requires-Dist: Flask-Babel==2.0.0; extra == "frozen"
|
|
71
71
|
Requires-Dist: Flask-Caching==2.3.1; extra == "frozen"
|
|
72
72
|
Requires-Dist: Flask-JWT-Extended==4.7.1; extra == "frozen"
|
|
73
|
-
Requires-Dist: Flask-Limiter==3.
|
|
73
|
+
Requires-Dist: Flask-Limiter==3.12; extra == "frozen"
|
|
74
74
|
Requires-Dist: Flask-Login==0.6.3; extra == "frozen"
|
|
75
75
|
Requires-Dist: Flask-SQLAlchemy==2.5.1; extra == "frozen"
|
|
76
76
|
Requires-Dist: Flask-Session==0.5.0; extra == "frozen"
|
|
77
77
|
Requires-Dist: Flask-WTF==1.2.2; extra == "frozen"
|
|
78
78
|
Requires-Dist: Jinja2==3.1.6; extra == "frozen"
|
|
79
79
|
Requires-Dist: Mako==1.3.10; extra == "frozen"
|
|
80
|
-
Requires-Dist: MarkupSafe==3.0.
|
|
80
|
+
Requires-Dist: MarkupSafe==3.0.3; extra == "frozen"
|
|
81
81
|
Requires-Dist: PeakUtils==1.3.5; extra == "frozen"
|
|
82
82
|
Requires-Dist: PyJWT==2.10.1; extra == "frozen"
|
|
83
|
-
Requires-Dist: PyYAML==6.0.
|
|
83
|
+
Requires-Dist: PyYAML==6.0.3; extra == "frozen"
|
|
84
84
|
Requires-Dist: Pygments==2.19.2; extra == "frozen"
|
|
85
85
|
Requires-Dist: SQLAlchemy==1.4.54; extra == "frozen"
|
|
86
86
|
Requires-Dist: SQLAlchemy-JSONField==1.0.2; extra == "frozen"
|
|
87
87
|
Requires-Dist: SQLAlchemy-Utils==0.42.0; extra == "frozen"
|
|
88
88
|
Requires-Dist: WTForms==3.2.1; extra == "frozen"
|
|
89
89
|
Requires-Dist: Werkzeug==2.2.3; extra == "frozen"
|
|
90
|
-
Requires-Dist: aioftp==0.
|
|
90
|
+
Requires-Dist: aioftp==0.27.2; extra == "frozen"
|
|
91
91
|
Requires-Dist: aiohappyeyeballs==2.6.1; extra == "frozen"
|
|
92
|
-
Requires-Dist: aiohttp==3.
|
|
92
|
+
Requires-Dist: aiohttp==3.13.0; extra == "frozen"
|
|
93
93
|
Requires-Dist: aiosignal==1.4.0; extra == "frozen"
|
|
94
|
+
Requires-Dist: aiosmtplib==4.0.2; extra == "frozen"
|
|
94
95
|
Requires-Dist: alembic==1.16.5; extra == "frozen"
|
|
95
96
|
Requires-Dist: amqp==5.3.1; extra == "frozen"
|
|
96
97
|
Requires-Dist: annotated-types==0.7.0; extra == "frozen"
|
|
97
|
-
Requires-Dist: anyio==4.
|
|
98
|
+
Requires-Dist: anyio==4.11.0; extra == "frozen"
|
|
98
99
|
Requires-Dist: apache-airflow==2.11.0; extra == "frozen"
|
|
99
100
|
Requires-Dist: apache-airflow-providers-celery==3.10.0; extra == "frozen"
|
|
100
|
-
Requires-Dist: apache-airflow-providers-common-compat==1.7.
|
|
101
|
-
Requires-Dist: apache-airflow-providers-common-io==1.6.
|
|
102
|
-
Requires-Dist: apache-airflow-providers-common-sql==1.28.
|
|
101
|
+
Requires-Dist: apache-airflow-providers-common-compat==1.7.4; extra == "frozen"
|
|
102
|
+
Requires-Dist: apache-airflow-providers-common-io==1.6.3; extra == "frozen"
|
|
103
|
+
Requires-Dist: apache-airflow-providers-common-sql==1.28.1; extra == "frozen"
|
|
103
104
|
Requires-Dist: apache-airflow-providers-fab==1.5.3; extra == "frozen"
|
|
104
105
|
Requires-Dist: apache-airflow-providers-ftp==3.13.2; extra == "frozen"
|
|
105
106
|
Requires-Dist: apache-airflow-providers-http==5.3.4; extra == "frozen"
|
|
106
107
|
Requires-Dist: apache-airflow-providers-imap==3.9.2; extra == "frozen"
|
|
107
108
|
Requires-Dist: apache-airflow-providers-postgres==6.3.0; extra == "frozen"
|
|
108
|
-
Requires-Dist: apache-airflow-providers-smtp==2.
|
|
109
|
+
Requires-Dist: apache-airflow-providers-smtp==2.3.1; extra == "frozen"
|
|
109
110
|
Requires-Dist: apache-airflow-providers-sqlite==4.1.2; extra == "frozen"
|
|
110
|
-
Requires-Dist: apispec==6.8.
|
|
111
|
+
Requires-Dist: apispec==6.8.4; extra == "frozen"
|
|
111
112
|
Requires-Dist: argcomplete==3.6.2; extra == "frozen"
|
|
112
113
|
Requires-Dist: asdf==3.5.0; extra == "frozen"
|
|
113
114
|
Requires-Dist: asdf_standard==1.4.0; extra == "frozen"
|
|
114
115
|
Requires-Dist: asdf_transform_schemas==0.6.0; extra == "frozen"
|
|
115
|
-
Requires-Dist: asgiref==3.
|
|
116
|
+
Requires-Dist: asgiref==3.10.0; extra == "frozen"
|
|
116
117
|
Requires-Dist: asteval==1.0.6; extra == "frozen"
|
|
117
118
|
Requires-Dist: astropy==7.0.2; extra == "frozen"
|
|
118
|
-
Requires-Dist: astropy-iers-data==0.2025.
|
|
119
|
+
Requires-Dist: astropy-iers-data==0.2025.10.6.0.35.25; extra == "frozen"
|
|
119
120
|
Requires-Dist: asyncpg==0.30.0; extra == "frozen"
|
|
120
|
-
Requires-Dist: attrs==25.
|
|
121
|
+
Requires-Dist: attrs==25.4.0; extra == "frozen"
|
|
121
122
|
Requires-Dist: babel==2.17.0; extra == "frozen"
|
|
122
|
-
Requires-Dist: billiard==4.2.
|
|
123
|
+
Requires-Dist: billiard==4.2.2; extra == "frozen"
|
|
123
124
|
Requires-Dist: blinker==1.9.0; extra == "frozen"
|
|
124
|
-
Requires-Dist: boto3==1.40.
|
|
125
|
-
Requires-Dist: botocore==1.40.
|
|
125
|
+
Requires-Dist: boto3==1.40.46; extra == "frozen"
|
|
126
|
+
Requires-Dist: botocore==1.40.46; extra == "frozen"
|
|
126
127
|
Requires-Dist: cachelib==0.13.0; extra == "frozen"
|
|
127
128
|
Requires-Dist: celery==5.3.1; extra == "frozen"
|
|
128
|
-
Requires-Dist: certifi==2025.
|
|
129
|
+
Requires-Dist: certifi==2025.10.5; extra == "frozen"
|
|
129
130
|
Requires-Dist: cffi==2.0.0; extra == "frozen"
|
|
130
131
|
Requires-Dist: charset-normalizer==3.4.3; extra == "frozen"
|
|
131
|
-
Requires-Dist: click==8.
|
|
132
|
+
Requires-Dist: click==8.3.0; extra == "frozen"
|
|
132
133
|
Requires-Dist: click-didyoumean==0.3.1; extra == "frozen"
|
|
133
134
|
Requires-Dist: click-plugins==1.1.1.2; extra == "frozen"
|
|
134
135
|
Requires-Dist: click-repl==0.3.0; extra == "frozen"
|
|
@@ -139,34 +140,33 @@ Requires-Dist: connexion==2.14.2; extra == "frozen"
|
|
|
139
140
|
Requires-Dist: contourpy==1.3.3; extra == "frozen"
|
|
140
141
|
Requires-Dist: cron_descriptor==2.0.6; extra == "frozen"
|
|
141
142
|
Requires-Dist: croniter==6.0.0; extra == "frozen"
|
|
142
|
-
Requires-Dist: cryptography==46.0.
|
|
143
|
+
Requires-Dist: cryptography==46.0.2; extra == "frozen"
|
|
143
144
|
Requires-Dist: cycler==0.12.1; extra == "frozen"
|
|
144
145
|
Requires-Dist: dacite==1.9.2; extra == "frozen"
|
|
145
146
|
Requires-Dist: decorator==5.2.1; extra == "frozen"
|
|
146
147
|
Requires-Dist: dill==0.4.0; extra == "frozen"
|
|
147
148
|
Requires-Dist: dkist-header-validator==5.2.1; extra == "frozen"
|
|
148
|
-
Requires-Dist: dkist-processing-common==11.
|
|
149
|
-
Requires-Dist: dkist-processing-core==
|
|
150
|
-
Requires-Dist: dkist-processing-cryonirsp==1.
|
|
149
|
+
Requires-Dist: dkist-processing-common==11.7.0rc4; extra == "frozen"
|
|
150
|
+
Requires-Dist: dkist-processing-core==6.0.0; extra == "frozen"
|
|
151
|
+
Requires-Dist: dkist-processing-cryonirsp==1.14.1rc1; extra == "frozen"
|
|
151
152
|
Requires-Dist: dkist-processing-math==2.2.1; extra == "frozen"
|
|
152
153
|
Requires-Dist: dkist-processing-pac==3.1.1; extra == "frozen"
|
|
153
|
-
Requires-Dist: dkist-service-configuration==
|
|
154
|
+
Requires-Dist: dkist-service-configuration==4.1.7; extra == "frozen"
|
|
154
155
|
Requires-Dist: dkist-spectral-lines==3.0.0; extra == "frozen"
|
|
155
156
|
Requires-Dist: dkist_fits_specifications==4.17.0; extra == "frozen"
|
|
156
157
|
Requires-Dist: dnspython==2.8.0; extra == "frozen"
|
|
157
|
-
Requires-Dist: ecs-logging==2.2.0; extra == "frozen"
|
|
158
|
-
Requires-Dist: elastic-apm==6.24.0; extra == "frozen"
|
|
159
158
|
Requires-Dist: email-validator==2.3.0; extra == "frozen"
|
|
160
159
|
Requires-Dist: fastjsonschema==2.21.2; extra == "frozen"
|
|
161
160
|
Requires-Dist: flower==2.0.1; extra == "frozen"
|
|
162
|
-
Requires-Dist: fonttools==4.60.
|
|
163
|
-
Requires-Dist: frozenlist==1.
|
|
161
|
+
Requires-Dist: fonttools==4.60.1; extra == "frozen"
|
|
162
|
+
Requires-Dist: frozenlist==1.8.0; extra == "frozen"
|
|
164
163
|
Requires-Dist: fsspec==2025.9.0; extra == "frozen"
|
|
165
|
-
Requires-Dist: globus-sdk==3.
|
|
164
|
+
Requires-Dist: globus-sdk==3.65.0; extra == "frozen"
|
|
166
165
|
Requires-Dist: google-re2==1.1.20250805; extra == "frozen"
|
|
167
166
|
Requires-Dist: googleapis-common-protos==1.70.0; extra == "frozen"
|
|
168
167
|
Requires-Dist: gqlclient==1.2.3; extra == "frozen"
|
|
169
|
-
Requires-Dist:
|
|
168
|
+
Requires-Dist: greenlet==3.2.4; extra == "frozen"
|
|
169
|
+
Requires-Dist: grpcio==1.75.1; extra == "frozen"
|
|
170
170
|
Requires-Dist: gunicorn==23.0.0; extra == "frozen"
|
|
171
171
|
Requires-Dist: h11==0.16.0; extra == "frozen"
|
|
172
172
|
Requires-Dist: httpcore==1.0.9; extra == "frozen"
|
|
@@ -187,7 +187,7 @@ Requires-Dist: kombu==5.5.4; extra == "frozen"
|
|
|
187
187
|
Requires-Dist: largestinteriorrectangle==0.2.1; extra == "frozen"
|
|
188
188
|
Requires-Dist: lazy-object-proxy==1.12.0; extra == "frozen"
|
|
189
189
|
Requires-Dist: lazy_loader==0.4; extra == "frozen"
|
|
190
|
-
Requires-Dist: limits==5.
|
|
190
|
+
Requires-Dist: limits==5.6.0; extra == "frozen"
|
|
191
191
|
Requires-Dist: linkify-it-py==2.0.3; extra == "frozen"
|
|
192
192
|
Requires-Dist: llvmlite==0.44.0; extra == "frozen"
|
|
193
193
|
Requires-Dist: lmfit==1.3.4; extra == "frozen"
|
|
@@ -203,7 +203,7 @@ Requires-Dist: mdurl==0.1.2; extra == "frozen"
|
|
|
203
203
|
Requires-Dist: methodtools==0.4.7; extra == "frozen"
|
|
204
204
|
Requires-Dist: more-itertools==10.8.0; extra == "frozen"
|
|
205
205
|
Requires-Dist: moviepy==2.1.2; extra == "frozen"
|
|
206
|
-
Requires-Dist: multidict==6.
|
|
206
|
+
Requires-Dist: multidict==6.7.0; extra == "frozen"
|
|
207
207
|
Requires-Dist: nbformat==5.10.4; extra == "frozen"
|
|
208
208
|
Requires-Dist: networkx==3.5; extra == "frozen"
|
|
209
209
|
Requires-Dist: numba==0.61.2; extra == "frozen"
|
|
@@ -214,13 +214,30 @@ Requires-Dist: opentelemetry-exporter-otlp==1.37.0; extra == "frozen"
|
|
|
214
214
|
Requires-Dist: opentelemetry-exporter-otlp-proto-common==1.37.0; extra == "frozen"
|
|
215
215
|
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc==1.37.0; extra == "frozen"
|
|
216
216
|
Requires-Dist: opentelemetry-exporter-otlp-proto-http==1.37.0; extra == "frozen"
|
|
217
|
+
Requires-Dist: opentelemetry-instrumentation==0.58b0; extra == "frozen"
|
|
218
|
+
Requires-Dist: opentelemetry-instrumentation-aiohttp-client==0.58b0; extra == "frozen"
|
|
219
|
+
Requires-Dist: opentelemetry-instrumentation-asgi==0.58b0; extra == "frozen"
|
|
220
|
+
Requires-Dist: opentelemetry-instrumentation-botocore==0.58b0; extra == "frozen"
|
|
221
|
+
Requires-Dist: opentelemetry-instrumentation-celery==0.58b0; extra == "frozen"
|
|
222
|
+
Requires-Dist: opentelemetry-instrumentation-dbapi==0.58b0; extra == "frozen"
|
|
223
|
+
Requires-Dist: opentelemetry-instrumentation-fastapi==0.58b0; extra == "frozen"
|
|
224
|
+
Requires-Dist: opentelemetry-instrumentation-pika==0.58b0; extra == "frozen"
|
|
225
|
+
Requires-Dist: opentelemetry-instrumentation-psycopg2==0.58b0; extra == "frozen"
|
|
226
|
+
Requires-Dist: opentelemetry-instrumentation-pymongo==0.58b0; extra == "frozen"
|
|
227
|
+
Requires-Dist: opentelemetry-instrumentation-redis==0.58b0; extra == "frozen"
|
|
228
|
+
Requires-Dist: opentelemetry-instrumentation-requests==0.58b0; extra == "frozen"
|
|
229
|
+
Requires-Dist: opentelemetry-instrumentation-sqlalchemy==0.58b0; extra == "frozen"
|
|
230
|
+
Requires-Dist: opentelemetry-instrumentation-system-metrics==0.58b0; extra == "frozen"
|
|
231
|
+
Requires-Dist: opentelemetry-propagator-aws-xray==1.0.2; extra == "frozen"
|
|
217
232
|
Requires-Dist: opentelemetry-proto==1.37.0; extra == "frozen"
|
|
218
233
|
Requires-Dist: opentelemetry-sdk==1.37.0; extra == "frozen"
|
|
219
234
|
Requires-Dist: opentelemetry-semantic-conventions==0.58b0; extra == "frozen"
|
|
235
|
+
Requires-Dist: opentelemetry-util-http==0.58b0; extra == "frozen"
|
|
220
236
|
Requires-Dist: ordered-set==4.1.0; extra == "frozen"
|
|
221
237
|
Requires-Dist: packaging==25.0; extra == "frozen"
|
|
222
|
-
Requires-Dist: pandas==2.3.
|
|
238
|
+
Requires-Dist: pandas==2.3.3; extra == "frozen"
|
|
223
239
|
Requires-Dist: parfive==2.2.0; extra == "frozen"
|
|
240
|
+
Requires-Dist: pathlib_abc==0.5.1; extra == "frozen"
|
|
224
241
|
Requires-Dist: pathspec==0.12.1; extra == "frozen"
|
|
225
242
|
Requires-Dist: pendulum==3.1.0; extra == "frozen"
|
|
226
243
|
Requires-Dist: pika==1.3.2; extra == "frozen"
|
|
@@ -231,18 +248,18 @@ Requires-Dist: pluggy==1.6.0; extra == "frozen"
|
|
|
231
248
|
Requires-Dist: pooch==1.8.2; extra == "frozen"
|
|
232
249
|
Requires-Dist: prison==0.2.1; extra == "frozen"
|
|
233
250
|
Requires-Dist: proglog==0.1.12; extra == "frozen"
|
|
234
|
-
Requires-Dist: prometheus_client==0.
|
|
251
|
+
Requires-Dist: prometheus_client==0.23.1; extra == "frozen"
|
|
235
252
|
Requires-Dist: prompt_toolkit==3.0.52; extra == "frozen"
|
|
236
|
-
Requires-Dist: propcache==0.
|
|
253
|
+
Requires-Dist: propcache==0.4.0; extra == "frozen"
|
|
237
254
|
Requires-Dist: protobuf==6.32.1; extra == "frozen"
|
|
238
|
-
Requires-Dist: psutil==7.
|
|
255
|
+
Requires-Dist: psutil==7.1.0; extra == "frozen"
|
|
239
256
|
Requires-Dist: psycopg2-binary==2.9.10; extra == "frozen"
|
|
240
257
|
Requires-Dist: pycparser==2.23; extra == "frozen"
|
|
241
|
-
Requires-Dist: pydantic==2.
|
|
242
|
-
Requires-Dist: pydantic-settings==2.
|
|
243
|
-
Requires-Dist: pydantic_core==2.
|
|
258
|
+
Requires-Dist: pydantic==2.12.0; extra == "frozen"
|
|
259
|
+
Requires-Dist: pydantic-settings==2.11.0; extra == "frozen"
|
|
260
|
+
Requires-Dist: pydantic_core==2.41.1; extra == "frozen"
|
|
244
261
|
Requires-Dist: pyerfa==2.0.1.5; extra == "frozen"
|
|
245
|
-
Requires-Dist: pyparsing==3.2.
|
|
262
|
+
Requires-Dist: pyparsing==3.2.5; extra == "frozen"
|
|
246
263
|
Requires-Dist: python-daemon==3.1.2; extra == "frozen"
|
|
247
264
|
Requires-Dist: python-dateutil==2.9.0.post0; extra == "frozen"
|
|
248
265
|
Requires-Dist: python-dotenv==1.1.1; extra == "frozen"
|
|
@@ -254,7 +271,7 @@ Requires-Dist: referencing==0.36.2; extra == "frozen"
|
|
|
254
271
|
Requires-Dist: requests==2.32.5; extra == "frozen"
|
|
255
272
|
Requires-Dist: requests-toolbelt==1.0.0; extra == "frozen"
|
|
256
273
|
Requires-Dist: rfc3339-validator==0.1.4; extra == "frozen"
|
|
257
|
-
Requires-Dist: rich==
|
|
274
|
+
Requires-Dist: rich==13.9.4; extra == "frozen"
|
|
258
275
|
Requires-Dist: rich-argparse==1.7.1; extra == "frozen"
|
|
259
276
|
Requires-Dist: rpds-py==0.27.1; extra == "frozen"
|
|
260
277
|
Requires-Dist: s3transfer==0.14.0; extra == "frozen"
|
|
@@ -273,24 +290,24 @@ Requires-Dist: talus==1.3.4; extra == "frozen"
|
|
|
273
290
|
Requires-Dist: tenacity==8.5.0; extra == "frozen"
|
|
274
291
|
Requires-Dist: termcolor==3.1.0; extra == "frozen"
|
|
275
292
|
Requires-Dist: text-unidecode==1.3; extra == "frozen"
|
|
276
|
-
Requires-Dist: tifffile==2025.
|
|
293
|
+
Requires-Dist: tifffile==2025.10.4; extra == "frozen"
|
|
277
294
|
Requires-Dist: tornado==6.5.2; extra == "frozen"
|
|
278
295
|
Requires-Dist: tqdm==4.67.1; extra == "frozen"
|
|
279
296
|
Requires-Dist: traitlets==5.14.3; extra == "frozen"
|
|
280
|
-
Requires-Dist: typing-inspection==0.4.
|
|
297
|
+
Requires-Dist: typing-inspection==0.4.2; extra == "frozen"
|
|
281
298
|
Requires-Dist: typing_extensions==4.15.0; extra == "frozen"
|
|
282
299
|
Requires-Dist: tzdata==2025.2; extra == "frozen"
|
|
283
300
|
Requires-Dist: uc-micro-py==1.0.3; extra == "frozen"
|
|
284
301
|
Requires-Dist: uncertainties==3.2.3; extra == "frozen"
|
|
285
|
-
Requires-Dist: universal_pathlib==0.2
|
|
302
|
+
Requires-Dist: universal_pathlib==0.3.2; extra == "frozen"
|
|
286
303
|
Requires-Dist: urllib3==2.5.0; extra == "frozen"
|
|
287
304
|
Requires-Dist: vine==5.1.0; extra == "frozen"
|
|
288
305
|
Requires-Dist: voluptuous==0.15.2; extra == "frozen"
|
|
289
|
-
Requires-Dist: wcwidth==0.2.
|
|
306
|
+
Requires-Dist: wcwidth==0.2.14; extra == "frozen"
|
|
290
307
|
Requires-Dist: wirerope==1.0.0; extra == "frozen"
|
|
291
308
|
Requires-Dist: wrapt==1.17.3; extra == "frozen"
|
|
292
309
|
Requires-Dist: yamale==6.0.0; extra == "frozen"
|
|
293
|
-
Requires-Dist: yarl==1.
|
|
310
|
+
Requires-Dist: yarl==1.22.0; extra == "frozen"
|
|
294
311
|
Requires-Dist: zipp==3.23.0; extra == "frozen"
|
|
295
312
|
|
|
296
313
|
dkist-processing-cryonirsp
|
|
@@ -309,7 +326,83 @@ in their own package facilitates using the build_utils to test the integrity of
|
|
|
309
326
|
|
|
310
327
|
Environment Variables
|
|
311
328
|
---------------------
|
|
312
|
-
|
|
329
|
+
|
|
330
|
+
.. list-table::
|
|
331
|
+
:widths: 10 90
|
|
332
|
+
:header-rows: 1
|
|
333
|
+
|
|
334
|
+
* - Variable
|
|
335
|
+
- Field Info
|
|
336
|
+
* - LOGURU_LEVEL
|
|
337
|
+
- annotation=str required=False default='INFO' alias_priority=2 validation_alias='LOGURU_LEVEL' description='Log level for the application'
|
|
338
|
+
* - MESH_CONFIG
|
|
339
|
+
- annotation=dict[str, MeshService] required=False default_factory=dict alias_priority=2 validation_alias='MESH_CONFIG' description='Service mesh configuration' examples=[{'upstream_service_name': {'mesh_address': 'localhost', 'mesh_port': 6742}}]
|
|
340
|
+
* - RETRY_CONFIG
|
|
341
|
+
- annotation=RetryConfig required=False default_factory=RetryConfig description='Retry configuration for the service'
|
|
342
|
+
* - OTEL_SERVICE_NAME
|
|
343
|
+
- annotation=str required=False default='unknown-service-name' alias_priority=2 validation_alias='OTEL_SERVICE_NAME' description='Service name for OpenTelemetry'
|
|
344
|
+
* - DKIST_SERVICE_VERSION
|
|
345
|
+
- annotation=str required=False default='unknown-service-version' alias_priority=2 validation_alias='DKIST_SERVICE_VERSION' description='Service version for OpenTelemetry'
|
|
346
|
+
* - NOMAD_ALLOC_ID
|
|
347
|
+
- annotation=str required=False default='unknown-allocation-id' alias_priority=2 validation_alias='NOMAD_ALLOC_ID' description='Nomad allocation ID for OpenTelemetry'
|
|
348
|
+
* - OTEL_EXPORTER_OTLP_TRACES_INSECURE
|
|
349
|
+
- annotation=bool required=False default=True description='Use insecure connection for OTLP traces'
|
|
350
|
+
* - OTEL_EXPORTER_OTLP_METRICS_INSECURE
|
|
351
|
+
- annotation=bool required=False default=True description='Use insecure connection for OTLP metrics'
|
|
352
|
+
* - OTEL_EXPORTER_OTLP_TRACES_ENDPOINT
|
|
353
|
+
- annotation=Union[str, NoneType] required=False default=None description='OTLP traces endpoint. Overrides mesh configuration' examples=['localhost:4317']
|
|
354
|
+
* - OTEL_EXPORTER_OTLP_METRICS_ENDPOINT
|
|
355
|
+
- annotation=Union[str, NoneType] required=False default=None description='OTLP metrics endpoint. Overrides mesh configuration' examples=['localhost:4317']
|
|
356
|
+
* - OTEL_PYTHON_DISABLED_INSTRUMENTATIONS
|
|
357
|
+
- annotation=list[str] required=False default_factory=list description='List of instrumentations to disable. https://opentelemetry.io/docs/zero-code/python/configuration/' examples=[['pika', 'requests']]
|
|
358
|
+
* - OTEL_PYTHON_FASTAPI_EXCLUDED_URLS
|
|
359
|
+
- annotation=str required=False default='health' description='Comma separated list of URLs to exclude from OpenTelemetry instrumentation in FastAPI.' examples=['client/.*/info,healthcheck']
|
|
360
|
+
* - SYSTEM_METRIC_INSTRUMENTATION_CONFIG
|
|
361
|
+
- annotation=Union[dict[str, bool], NoneType] required=False default=None description='Configuration for system metric instrumentation. https://opentelemetry-python-contrib.readthedocs.io/en/latest/instrumentation/system_metrics/system_metrics.html' examples=[{'system.memory.usage': ['used', 'free', 'cached'], 'system.cpu.time': ['idle', 'user', 'system', 'irq'], 'system.network.io': ['transmit', 'receive'], 'process.runtime.memory': ['rss', 'vms'], 'process.runtime.cpu.time': ['user', 'system'], 'process.runtime.context_switches': ['involuntary', 'voluntary']}]
|
|
362
|
+
* - ISB_USERNAME
|
|
363
|
+
- annotation=str required=False default='guest' description='Username for the interservice-bus.'
|
|
364
|
+
* - ISB_PASSWORD
|
|
365
|
+
- annotation=str required=False default='guest' description='Password for the interservice-bus.'
|
|
366
|
+
* - ISB_EXCHANGE
|
|
367
|
+
- annotation=str required=False default='master.direct.x' description='Exchange for the interservice-bus.'
|
|
368
|
+
* - ISB_QUEUE_TYPE
|
|
369
|
+
- annotation=str required=False default='classic' description='Queue type for the interservice-bus.' examples=['quorum', 'classic']
|
|
370
|
+
* - BUILD_VERSION
|
|
371
|
+
- annotation=str required=False default='dev' description='Fallback build version for workflow tasks.'
|
|
372
|
+
* - GQL_AUTH_TOKEN
|
|
373
|
+
- annotation=Union[str, NoneType] required=False default='dev' description='The auth token for the metadata-store-api.'
|
|
374
|
+
* - OBJECT_STORE_ACCESS_KEY
|
|
375
|
+
- annotation=Union[str, NoneType] required=False default=None description='The access key for the object store.'
|
|
376
|
+
* - OBJECT_STORE_SECRET_KEY
|
|
377
|
+
- annotation=Union[str, NoneType] required=False default=None description='The secret key for the object store.'
|
|
378
|
+
* - OBJECT_STORE_USE_SSL
|
|
379
|
+
- annotation=bool required=False default=False description='Whether to use SSL for the object store connection.'
|
|
380
|
+
* - MULTIPART_THRESHOLD
|
|
381
|
+
- annotation=Union[int, NoneType] required=False default=None description='Multipart threshold for the object store.'
|
|
382
|
+
* - S3_CLIENT_CONFIG
|
|
383
|
+
- annotation=Union[dict, NoneType] required=False default=None description='S3 client configuration for the object store.'
|
|
384
|
+
* - S3_UPLOAD_CONFIG
|
|
385
|
+
- annotation=Union[dict, NoneType] required=False default=None description='S3 upload configuration for the object store.'
|
|
386
|
+
* - S3_DOWNLOAD_CONFIG
|
|
387
|
+
- annotation=Union[dict, NoneType] required=False default=None description='S3 download configuration for the object store.'
|
|
388
|
+
* - GLOBUS_TRANSPORT_PARAMS
|
|
389
|
+
- annotation=dict required=False default_factory=dict description='Globus transfer parameters.'
|
|
390
|
+
* - GLOBUS_CLIENT_ID
|
|
391
|
+
- annotation=Union[str, NoneType] required=False default=None description='Globus client ID for inbound/outbound transfers.'
|
|
392
|
+
* - GLOBUS_CLIENT_SECRET
|
|
393
|
+
- annotation=Union[str, NoneType] required=False default=None description='Globus client secret for inbound/outbound transfers.'
|
|
394
|
+
* - OBJECT_STORE_ENDPOINT
|
|
395
|
+
- annotation=Union[str, NoneType] required=False default=None description='Object store Globus Endpoint ID.'
|
|
396
|
+
* - SCRATCH_ENDPOINT
|
|
397
|
+
- annotation=Union[str, NoneType] required=False default=None description='Scratch Globus Endpoint ID.'
|
|
398
|
+
* - SCRATCH_BASE_PATH
|
|
399
|
+
- annotation=str required=False default='scratch/' description='Base path for scratch storage.'
|
|
400
|
+
* - SCRATCH_INVENTORY_DB_COUNT
|
|
401
|
+
- annotation=int required=False default=16 description='Number of databases in the scratch inventory (redis).'
|
|
402
|
+
* - DOCS_BASE_URL
|
|
403
|
+
- annotation=str required=False default='my_test_url' description='Base URL for the documentation site.'
|
|
404
|
+
* - FTS_ATLAS_DATA_DIR
|
|
405
|
+
- annotation=Union[str, NoneType] required=False default=None description='Common cached directory for a downloaded FTS Atlas.'
|
|
313
406
|
|
|
314
407
|
Development
|
|
315
408
|
-----------
|
|
@@ -14,7 +14,83 @@ in their own package facilitates using the build_utils to test the integrity of
|
|
|
14
14
|
|
|
15
15
|
Environment Variables
|
|
16
16
|
---------------------
|
|
17
|
-
|
|
17
|
+
|
|
18
|
+
.. list-table::
|
|
19
|
+
:widths: 10 90
|
|
20
|
+
:header-rows: 1
|
|
21
|
+
|
|
22
|
+
* - Variable
|
|
23
|
+
- Field Info
|
|
24
|
+
* - LOGURU_LEVEL
|
|
25
|
+
- annotation=str required=False default='INFO' alias_priority=2 validation_alias='LOGURU_LEVEL' description='Log level for the application'
|
|
26
|
+
* - MESH_CONFIG
|
|
27
|
+
- annotation=dict[str, MeshService] required=False default_factory=dict alias_priority=2 validation_alias='MESH_CONFIG' description='Service mesh configuration' examples=[{'upstream_service_name': {'mesh_address': 'localhost', 'mesh_port': 6742}}]
|
|
28
|
+
* - RETRY_CONFIG
|
|
29
|
+
- annotation=RetryConfig required=False default_factory=RetryConfig description='Retry configuration for the service'
|
|
30
|
+
* - OTEL_SERVICE_NAME
|
|
31
|
+
- annotation=str required=False default='unknown-service-name' alias_priority=2 validation_alias='OTEL_SERVICE_NAME' description='Service name for OpenTelemetry'
|
|
32
|
+
* - DKIST_SERVICE_VERSION
|
|
33
|
+
- annotation=str required=False default='unknown-service-version' alias_priority=2 validation_alias='DKIST_SERVICE_VERSION' description='Service version for OpenTelemetry'
|
|
34
|
+
* - NOMAD_ALLOC_ID
|
|
35
|
+
- annotation=str required=False default='unknown-allocation-id' alias_priority=2 validation_alias='NOMAD_ALLOC_ID' description='Nomad allocation ID for OpenTelemetry'
|
|
36
|
+
* - OTEL_EXPORTER_OTLP_TRACES_INSECURE
|
|
37
|
+
- annotation=bool required=False default=True description='Use insecure connection for OTLP traces'
|
|
38
|
+
* - OTEL_EXPORTER_OTLP_METRICS_INSECURE
|
|
39
|
+
- annotation=bool required=False default=True description='Use insecure connection for OTLP metrics'
|
|
40
|
+
* - OTEL_EXPORTER_OTLP_TRACES_ENDPOINT
|
|
41
|
+
- annotation=Union[str, NoneType] required=False default=None description='OTLP traces endpoint. Overrides mesh configuration' examples=['localhost:4317']
|
|
42
|
+
* - OTEL_EXPORTER_OTLP_METRICS_ENDPOINT
|
|
43
|
+
- annotation=Union[str, NoneType] required=False default=None description='OTLP metrics endpoint. Overrides mesh configuration' examples=['localhost:4317']
|
|
44
|
+
* - OTEL_PYTHON_DISABLED_INSTRUMENTATIONS
|
|
45
|
+
- annotation=list[str] required=False default_factory=list description='List of instrumentations to disable. https://opentelemetry.io/docs/zero-code/python/configuration/' examples=[['pika', 'requests']]
|
|
46
|
+
* - OTEL_PYTHON_FASTAPI_EXCLUDED_URLS
|
|
47
|
+
- annotation=str required=False default='health' description='Comma separated list of URLs to exclude from OpenTelemetry instrumentation in FastAPI.' examples=['client/.*/info,healthcheck']
|
|
48
|
+
* - SYSTEM_METRIC_INSTRUMENTATION_CONFIG
|
|
49
|
+
- annotation=Union[dict[str, bool], NoneType] required=False default=None description='Configuration for system metric instrumentation. https://opentelemetry-python-contrib.readthedocs.io/en/latest/instrumentation/system_metrics/system_metrics.html' examples=[{'system.memory.usage': ['used', 'free', 'cached'], 'system.cpu.time': ['idle', 'user', 'system', 'irq'], 'system.network.io': ['transmit', 'receive'], 'process.runtime.memory': ['rss', 'vms'], 'process.runtime.cpu.time': ['user', 'system'], 'process.runtime.context_switches': ['involuntary', 'voluntary']}]
|
|
50
|
+
* - ISB_USERNAME
|
|
51
|
+
- annotation=str required=False default='guest' description='Username for the interservice-bus.'
|
|
52
|
+
* - ISB_PASSWORD
|
|
53
|
+
- annotation=str required=False default='guest' description='Password for the interservice-bus.'
|
|
54
|
+
* - ISB_EXCHANGE
|
|
55
|
+
- annotation=str required=False default='master.direct.x' description='Exchange for the interservice-bus.'
|
|
56
|
+
* - ISB_QUEUE_TYPE
|
|
57
|
+
- annotation=str required=False default='classic' description='Queue type for the interservice-bus.' examples=['quorum', 'classic']
|
|
58
|
+
* - BUILD_VERSION
|
|
59
|
+
- annotation=str required=False default='dev' description='Fallback build version for workflow tasks.'
|
|
60
|
+
* - GQL_AUTH_TOKEN
|
|
61
|
+
- annotation=Union[str, NoneType] required=False default='dev' description='The auth token for the metadata-store-api.'
|
|
62
|
+
* - OBJECT_STORE_ACCESS_KEY
|
|
63
|
+
- annotation=Union[str, NoneType] required=False default=None description='The access key for the object store.'
|
|
64
|
+
* - OBJECT_STORE_SECRET_KEY
|
|
65
|
+
- annotation=Union[str, NoneType] required=False default=None description='The secret key for the object store.'
|
|
66
|
+
* - OBJECT_STORE_USE_SSL
|
|
67
|
+
- annotation=bool required=False default=False description='Whether to use SSL for the object store connection.'
|
|
68
|
+
* - MULTIPART_THRESHOLD
|
|
69
|
+
- annotation=Union[int, NoneType] required=False default=None description='Multipart threshold for the object store.'
|
|
70
|
+
* - S3_CLIENT_CONFIG
|
|
71
|
+
- annotation=Union[dict, NoneType] required=False default=None description='S3 client configuration for the object store.'
|
|
72
|
+
* - S3_UPLOAD_CONFIG
|
|
73
|
+
- annotation=Union[dict, NoneType] required=False default=None description='S3 upload configuration for the object store.'
|
|
74
|
+
* - S3_DOWNLOAD_CONFIG
|
|
75
|
+
- annotation=Union[dict, NoneType] required=False default=None description='S3 download configuration for the object store.'
|
|
76
|
+
* - GLOBUS_TRANSPORT_PARAMS
|
|
77
|
+
- annotation=dict required=False default_factory=dict description='Globus transfer parameters.'
|
|
78
|
+
* - GLOBUS_CLIENT_ID
|
|
79
|
+
- annotation=Union[str, NoneType] required=False default=None description='Globus client ID for inbound/outbound transfers.'
|
|
80
|
+
* - GLOBUS_CLIENT_SECRET
|
|
81
|
+
- annotation=Union[str, NoneType] required=False default=None description='Globus client secret for inbound/outbound transfers.'
|
|
82
|
+
* - OBJECT_STORE_ENDPOINT
|
|
83
|
+
- annotation=Union[str, NoneType] required=False default=None description='Object store Globus Endpoint ID.'
|
|
84
|
+
* - SCRATCH_ENDPOINT
|
|
85
|
+
- annotation=Union[str, NoneType] required=False default=None description='Scratch Globus Endpoint ID.'
|
|
86
|
+
* - SCRATCH_BASE_PATH
|
|
87
|
+
- annotation=str required=False default='scratch/' description='Base path for scratch storage.'
|
|
88
|
+
* - SCRATCH_INVENTORY_DB_COUNT
|
|
89
|
+
- annotation=int required=False default=16 description='Number of databases in the scratch inventory (redis).'
|
|
90
|
+
* - DOCS_BASE_URL
|
|
91
|
+
- annotation=str required=False default='my_test_url' description='Base URL for the documentation site.'
|
|
92
|
+
* - FTS_ATLAS_DATA_DIR
|
|
93
|
+
- annotation=Union[str, NoneType] required=False default=None description='Common cached directory for a downloaded FTS Atlas.'
|
|
18
94
|
|
|
19
95
|
Development
|
|
20
96
|
-----------
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Update `dkist-processing-common` to v11.7.0, which makes constants for the dataset extras.
|
|
@@ -49,11 +49,11 @@ class BadPixelMapCalibration(CryonirspTaskBase):
|
|
|
49
49
|
None
|
|
50
50
|
|
|
51
51
|
"""
|
|
52
|
-
with self.
|
|
52
|
+
with self.telemetry_span(f"Compute average uncorrected solar gain image"):
|
|
53
53
|
average_solar_gain_array = self.compute_average_gain_array()
|
|
54
54
|
|
|
55
|
-
with self.
|
|
56
|
-
with self.
|
|
55
|
+
with self.telemetry_span(f"Compute the bad pixel map"):
|
|
56
|
+
with self.telemetry_span("Smooth array with median filter"):
|
|
57
57
|
filter_size = self.parameters.bad_pixel_map_median_filter_size
|
|
58
58
|
filtered_array = spnd.median_filter(
|
|
59
59
|
average_solar_gain_array,
|
|
@@ -62,7 +62,7 @@ class BadPixelMapCalibration(CryonirspTaskBase):
|
|
|
62
62
|
cval=np.nanmedian(average_solar_gain_array),
|
|
63
63
|
)
|
|
64
64
|
|
|
65
|
-
with self.
|
|
65
|
+
with self.telemetry_span("Identify bad pixels"):
|
|
66
66
|
thresh = self.parameters.bad_pixel_map_threshold_factor
|
|
67
67
|
|
|
68
68
|
diff = filtered_array - average_solar_gain_array
|
|
@@ -72,7 +72,7 @@ class BadPixelMapCalibration(CryonirspTaskBase):
|
|
|
72
72
|
zeros = np.where(average_solar_gain_array == 0.0)
|
|
73
73
|
bad_pixel_map[zeros] = 1
|
|
74
74
|
|
|
75
|
-
with self.
|
|
75
|
+
with self.telemetry_span("Writing bad pixel map"):
|
|
76
76
|
self.write(
|
|
77
77
|
data=bad_pixel_map,
|
|
78
78
|
tags=[CryonirspTag.intermediate_frame(), CryonirspTag.task_bad_pixel_map()],
|
|
@@ -62,11 +62,11 @@ class BeamBoundariesCalibrationBase(CryonirspTaskBase):
|
|
|
62
62
|
|
|
63
63
|
"""
|
|
64
64
|
# Step 1:
|
|
65
|
-
with self.
|
|
65
|
+
with self.telemetry_span(f"Compute average solar gain image"):
|
|
66
66
|
average_solar_gain_array = self.compute_average_gain_array()
|
|
67
67
|
|
|
68
68
|
# Step 2:
|
|
69
|
-
with self.
|
|
69
|
+
with self.telemetry_span(f"Retrieve bad pixel map"):
|
|
70
70
|
bad_pixel_map = next(
|
|
71
71
|
self.read(
|
|
72
72
|
tags=[CryonirspTag.intermediate_frame(), CryonirspTag.task_bad_pixel_map()],
|
|
@@ -78,21 +78,19 @@ class BeamBoundariesCalibrationBase(CryonirspTaskBase):
|
|
|
78
78
|
)
|
|
79
79
|
|
|
80
80
|
# Step 3
|
|
81
|
-
with self.
|
|
81
|
+
with self.telemetry_span(f"Smooth the array to get good segmentation"):
|
|
82
82
|
smoothed_solar_gain_array = self.smooth_gain_array(corrected_solar_gain_array)
|
|
83
83
|
|
|
84
84
|
# Step 4
|
|
85
|
-
with self.
|
|
85
|
+
with self.telemetry_span(f"Split the beam horizontally"):
|
|
86
86
|
split_beams = self.split_beams(smoothed_solar_gain_array)
|
|
87
87
|
|
|
88
88
|
# Step 5
|
|
89
|
-
with self.
|
|
90
|
-
f"Segment the beams into illuminated and non-illuminated pixels"
|
|
91
|
-
):
|
|
89
|
+
with self.telemetry_span(f"Segment the beams into illuminated and non-illuminated pixels"):
|
|
92
90
|
segmented_beams = self.segment_arrays(split_beams)
|
|
93
91
|
|
|
94
92
|
# Step 6:
|
|
95
|
-
with self.
|
|
93
|
+
with self.telemetry_span(
|
|
96
94
|
f"Compute the inscribed rectangular extents of the illuminated portions of the sensor"
|
|
97
95
|
):
|
|
98
96
|
illuminated_boundaries = self.compute_boundaries_of_beam_illumination_regions(
|
|
@@ -100,14 +98,14 @@ class BeamBoundariesCalibrationBase(CryonirspTaskBase):
|
|
|
100
98
|
)
|
|
101
99
|
|
|
102
100
|
# Steps 7 - 9:
|
|
103
|
-
with self.
|
|
101
|
+
with self.telemetry_span(f"Compute the boundaries of the illuminated beams"):
|
|
104
102
|
split_beams_float = [split_beam.astype(float) for split_beam in split_beams]
|
|
105
103
|
boundaries = self.compute_final_beam_boundaries(
|
|
106
104
|
split_beams_float, illuminated_boundaries
|
|
107
105
|
)
|
|
108
106
|
|
|
109
107
|
# Step 10:
|
|
110
|
-
with self.
|
|
108
|
+
with self.telemetry_span("Writing beam boundaries"):
|
|
111
109
|
for beam, bounds in enumerate(boundaries, start=1):
|
|
112
110
|
self.write(
|
|
113
111
|
data=bounds.beam_boundaries_array,
|
|
@@ -58,7 +58,7 @@ class DarkCalibration(CryonirspTaskBase):
|
|
|
58
58
|
)
|
|
59
59
|
|
|
60
60
|
logger.info(f"{target_exposure_conditions = }")
|
|
61
|
-
with self.
|
|
61
|
+
with self.telemetry_span(
|
|
62
62
|
f"Calculating dark frames for {self.constants.num_beams} beams and {len(target_exposure_conditions)} exp times"
|
|
63
63
|
):
|
|
64
64
|
total_dark_frames_used = 0
|
|
@@ -90,12 +90,12 @@ class DarkCalibration(CryonirspTaskBase):
|
|
|
90
90
|
beam_boundary=beam_boundary,
|
|
91
91
|
)
|
|
92
92
|
|
|
93
|
-
with self.
|
|
93
|
+
with self.telemetry_span(
|
|
94
94
|
f"Calculating dark for {exposure_conditions = } and {beam = }"
|
|
95
95
|
):
|
|
96
96
|
averaged_dark_array = average_numpy_arrays(linearized_dark_arrays)
|
|
97
97
|
|
|
98
|
-
with self.
|
|
98
|
+
with self.telemetry_span(
|
|
99
99
|
f"Writing dark for {exposure_conditions = } {beam = }"
|
|
100
100
|
):
|
|
101
101
|
self.write(
|
|
@@ -109,7 +109,7 @@ class DarkCalibration(CryonirspTaskBase):
|
|
|
109
109
|
encoder=fits_array_encoder,
|
|
110
110
|
)
|
|
111
111
|
|
|
112
|
-
with self.
|
|
112
|
+
with self.telemetry_span("Computing and logging quality metrics"):
|
|
113
113
|
no_of_raw_dark_frames: int = self.scratch.count_all(
|
|
114
114
|
tags=[
|
|
115
115
|
CryonirspTag.linearized_frame(),
|
|
@@ -81,7 +81,7 @@ class GainCalibrationBase(CryonirspTaskBase):
|
|
|
81
81
|
target_exposure_conditions = self.exposure_conditions
|
|
82
82
|
|
|
83
83
|
logger.info(f"{target_exposure_conditions = }")
|
|
84
|
-
with self.
|
|
84
|
+
with self.telemetry_span(
|
|
85
85
|
f"Generate {self.gain_type} for {len(target_exposure_conditions)} exposure times"
|
|
86
86
|
):
|
|
87
87
|
for beam in range(1, self.constants.num_beams + 1):
|
|
@@ -96,7 +96,7 @@ class GainCalibrationBase(CryonirspTaskBase):
|
|
|
96
96
|
|
|
97
97
|
for exposure_conditions in target_exposure_conditions:
|
|
98
98
|
apm_str = f"{beam = } and {exposure_conditions = }"
|
|
99
|
-
with self.
|
|
99
|
+
with self.telemetry_span(f"Remove dark signal for {apm_str}"):
|
|
100
100
|
dark_array = next(
|
|
101
101
|
self.read(
|
|
102
102
|
tags=[
|
|
@@ -117,7 +117,7 @@ class GainCalibrationBase(CryonirspTaskBase):
|
|
|
117
117
|
subtract_array_from_arrays(avg_gain_array, dark_array)
|
|
118
118
|
)
|
|
119
119
|
|
|
120
|
-
with self.
|
|
120
|
+
with self.telemetry_span(f"Correct bad pixels for {apm_str}"):
|
|
121
121
|
bad_pixel_map = next(
|
|
122
122
|
self.read(
|
|
123
123
|
tags=[
|
|
@@ -133,12 +133,12 @@ class GainCalibrationBase(CryonirspTaskBase):
|
|
|
133
133
|
)
|
|
134
134
|
|
|
135
135
|
if self.normalize_gain_switch:
|
|
136
|
-
with self.
|
|
136
|
+
with self.telemetry_span(f"Normalize final gain for {apm_str}"):
|
|
137
137
|
normalized_gain_array = self.normalize_gain(bad_pixel_corrected_array)
|
|
138
138
|
else:
|
|
139
139
|
normalized_gain_array = bad_pixel_corrected_array
|
|
140
140
|
|
|
141
|
-
with self.
|
|
141
|
+
with self.telemetry_span(
|
|
142
142
|
f"Writing gain array for {beam = } and {exposure_conditions = }"
|
|
143
143
|
):
|
|
144
144
|
self.write(
|
|
@@ -152,7 +152,7 @@ class GainCalibrationBase(CryonirspTaskBase):
|
|
|
152
152
|
encoder=fits_array_encoder,
|
|
153
153
|
)
|
|
154
154
|
|
|
155
|
-
with self.
|
|
155
|
+
with self.telemetry_span("Computing and logging quality metrics"):
|
|
156
156
|
no_of_raw_gain_frames: int = self.scratch.count_all(
|
|
157
157
|
tags=[
|
|
158
158
|
CryonirspTag.linearized_frame(),
|