dkist-processing-cryonirsp 3.0.0rc4__tar.gz → 3.1.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.
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/.pre-commit-config.yaml +8 -2
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/CHANGELOG.rst +63 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/PKG-INFO +83 -66
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/README.rst +17 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/SCIENCE_CHANGELOG.rst +10 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/models/parameters.py +1 -1
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tasks/beam_boundaries_base.py +29 -30
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tasks/gain.py +60 -28
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tests/conftest.py +5 -1
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tests/test_ci_beam_boundaries.py +3 -4
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tests/test_gain.py +155 -41
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tests/test_sp_beam_boundaries.py +30 -7
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp.egg-info/PKG-INFO +83 -66
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp.egg-info/SOURCES.txt +0 -5
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp.egg-info/requires.txt +65 -65
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp.egg-info/scm_file_list.json +0 -5
- dkist_processing_cryonirsp-3.1.0/dkist_processing_cryonirsp.egg-info/scm_version.json +8 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/pyproject.toml +76 -67
- dkist_processing_cryonirsp-3.0.0rc4/changelog/306.doc.rst +0 -1
- dkist_processing_cryonirsp-3.0.0rc4/changelog/306.feature.2.rst +0 -1
- dkist_processing_cryonirsp-3.0.0rc4/changelog/306.feature.rst +0 -2
- dkist_processing_cryonirsp-3.0.0rc4/changelog/306.misc.rst +0 -1
- dkist_processing_cryonirsp-3.0.0rc4/changelog/306.science.rst +0 -2
- dkist_processing_cryonirsp-3.0.0rc4/dkist_processing_cryonirsp.egg-info/scm_version.json +0 -8
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/.gitignore +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/.readthedocs.yml +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/.rovodev/.review-agent.md +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/.snyk +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/bitbucket-pipelines.yml +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/changelog/.gitempty +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/__init__.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/codecs/__init__.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/codecs/fits.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/config.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/models/__init__.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/models/beam_boundaries.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/models/constants.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/models/dataset_extras.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/models/exposure_conditions.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/models/fits_access.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/models/tags.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/models/task_name.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/parsers/__init__.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/parsers/check_for_gains.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/parsers/cryonirsp_l0_fits_access.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/parsers/cryonirsp_l1_fits_access.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/parsers/exposure_conditions.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/parsers/map_repeats.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/parsers/measurements.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/parsers/modstates.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/parsers/optical_density_filters.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/parsers/polarimetric_check.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/parsers/scan_step.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/parsers/time.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tasks/__init__.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tasks/assemble_movie.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tasks/bad_pixel_map.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tasks/ci_beam_boundaries.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tasks/ci_science.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tasks/cryonirsp_base.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tasks/dark.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tasks/instrument_polarization.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tasks/l1_output_data.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tasks/linearity_correction.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tasks/make_movie_frames.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tasks/mixin/__init__.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tasks/mixin/corrections.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tasks/mixin/shift_measurements.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tasks/parse.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tasks/polcal_as_science.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tasks/quality_metrics.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tasks/science_base.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tasks/sp_beam_boundaries.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tasks/sp_geometric.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tasks/sp_science.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tasks/sp_solar_gain.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tasks/sp_wavelength_calibration.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tasks/write_dataset_extras.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tasks/write_l1.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tests/__init__.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tests/header_models.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tests/local_trial_workflows/__init__.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tests/local_trial_workflows/l0_cals_only.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tests/local_trial_workflows/l0_to_l1.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tests/local_trial_workflows/linearize_only.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tests/local_trial_workflows/local_trial_helpers.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tests/test_assemble_movie.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tests/test_assemble_qualilty.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tests/test_bad_pixel_maps.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tests/test_ci_science.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tests/test_corrections.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tests/test_cryo_base.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tests/test_cryo_constants.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tests/test_dark.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tests/test_fits_access.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tests/test_instrument_polarization.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tests/test_linearity_correction.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tests/test_make_movie_frames.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tests/test_parameters.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tests/test_parse.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tests/test_polcal_as_science.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tests/test_quality.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tests/test_sp_geometric.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tests/test_sp_make_movie_frames.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tests/test_sp_science.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tests/test_sp_solar.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tests/test_sp_wavelength_calibration.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tests/test_trial_create_quality_report.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tests/test_workflows.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tests/test_write_dataset_extras.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/tests/test_write_l1.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/workflows/__init__.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/workflows/ci_l0_processing.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/workflows/sp_l0_processing.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp/workflows/trial_workflows.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp.egg-info/dependency_links.txt +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/dkist_processing_cryonirsp.egg-info/top_level.txt +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/docs/Makefile +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/docs/bad_pixel_calibration.rst +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/docs/beam_angle_calculation.rst +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/docs/beam_boundary_computation.rst +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/docs/changelog.rst +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/docs/ci_science_calibration.rst +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/docs/conf.py +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/docs/dataset_extras.rst +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/docs/index.rst +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/docs/l0_to_l1_cryonirsp_ci-full-trial.rst +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/docs/l0_to_l1_cryonirsp_ci.rst +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/docs/l0_to_l1_cryonirsp_sp-full-trial.rst +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/docs/l0_to_l1_cryonirsp_sp.rst +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/docs/landing_page.rst +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/docs/linearization.rst +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/docs/make.bat +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/docs/requirements.txt +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/docs/requirements_table.rst +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/docs/scientific_changelog.rst +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/docs/sp_science_calibration.rst +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/docs/wavelength_calibration.rst +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/licenses/LICENSE.rst +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/science_towncrier.sh +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/setup.cfg +0 -0
- {dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/towncrier_science.toml +0 -0
{dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/.pre-commit-config.yaml
RENAMED
|
@@ -27,7 +27,13 @@ repos:
|
|
|
27
27
|
args:
|
|
28
28
|
- --convention=numpy
|
|
29
29
|
- --add-ignore=D105
|
|
30
|
-
- repo: https://bitbucket.org/dkistdc/pre-commit-hooks
|
|
31
|
-
rev: v1.0
|
|
30
|
+
- repo: https://bitbucket.org/dkistdc/pre-commit-hooks.git
|
|
31
|
+
rev: v1.1.0
|
|
32
32
|
hooks:
|
|
33
33
|
- id: calibration-workflow-name
|
|
34
|
+
- id: dkist-env-table
|
|
35
|
+
language_version: python3.13
|
|
36
|
+
require_serial: true
|
|
37
|
+
additional_dependencies:
|
|
38
|
+
- dkist-processing-common
|
|
39
|
+
- dkist-service-configuration
|
|
@@ -1,3 +1,66 @@
|
|
|
1
|
+
v3.1.0 (2026-10-09)
|
|
2
|
+
===================
|
|
3
|
+
|
|
4
|
+
Bugfixes
|
|
5
|
+
--------
|
|
6
|
+
|
|
7
|
+
- Lamp gain and CI solar gain calibrations now produce a single, correctly combined gain frame per beam even when the input spans more than one exposure condition, instead of one frame per exposure condition. (`#304 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/304>`__)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
v3.0.0 (2026-10-08)
|
|
11
|
+
===================
|
|
12
|
+
|
|
13
|
+
Features
|
|
14
|
+
--------
|
|
15
|
+
|
|
16
|
+
- Replace `BeamBoundariesCalibration` task with `SpatialBeamBoundaries`, which only computes the boundaries of the illuminated region along the spatial axis.
|
|
17
|
+
The spectral axis (or second spatial axis, for CI) boundaries are hard-coded as a pipeline parameter. (`#306 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/306>`__)
|
|
18
|
+
- Save the full set of beam boundaries used to extract illuminated regions from the raw data as a dataset extra (called "BEAM_BOUNDARIES"). (`#306 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/306>`__)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
Misc
|
|
22
|
+
----
|
|
23
|
+
|
|
24
|
+
- Replace "y" and "x" language with "axis_0" and "axis_1", respectively, in the `BeamBoundaries` model. (`#306 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/306>`__)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
Documentation
|
|
28
|
+
-------------
|
|
29
|
+
|
|
30
|
+
- Update online documentation "Dataset Extras" page to include information about the beam boundaries extra. (`#306 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/306>`__)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
v2.1.5 (2026-10-08)
|
|
34
|
+
===================
|
|
35
|
+
|
|
36
|
+
Misc
|
|
37
|
+
----
|
|
38
|
+
|
|
39
|
+
- Integrated the ``dkist-env-table`` pre-commit hook and updated the README environment-variable table to match the current configuration. (`#303 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/303>`__)
|
|
40
|
+
- Bump `dkist-fits-specifications` to v4.30.0, which adds support for the BEAM BOUNDARIES dataset extra. (`#308 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/308>`__)
|
|
41
|
+
- Bump `dkist-processing-common` to v14.6.0. No major changes. (`#308 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/308>`__)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
v2.1.4 (2026-10-06)
|
|
45
|
+
===================
|
|
46
|
+
|
|
47
|
+
Misc
|
|
48
|
+
----
|
|
49
|
+
|
|
50
|
+
- Use the immutable Bitbucket reference atlas URLs in test configuration. (`#305 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/305>`__)
|
|
51
|
+
- Bump `solar-wavelength-calibration` to v2.0.4, which uses git LFS for test atlas storage. (`#305 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/305>`__)
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
v2.1.3 (2026-09-30)
|
|
55
|
+
===================
|
|
56
|
+
|
|
57
|
+
Misc
|
|
58
|
+
----
|
|
59
|
+
|
|
60
|
+
- Update dkist-processing-common to 14.5.2 to restore provenance recording for
|
|
61
|
+
manual parse tasks and trial dataset inventory, ASDF, and quality report tasks. (`#307 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/307>`__)
|
|
62
|
+
|
|
63
|
+
|
|
1
64
|
v2.1.2 (2026-09-24)
|
|
2
65
|
===================
|
|
3
66
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dkist-processing-cryonirsp
|
|
3
|
-
Version: 3.0
|
|
3
|
+
Version: 3.1.0
|
|
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
|
|
@@ -15,13 +15,13 @@ Requires-Python: >=3.13
|
|
|
15
15
|
Description-Content-Type: text/x-rst
|
|
16
16
|
Requires-Dist: Pillow==10.4.0
|
|
17
17
|
Requires-Dist: astropy==7.0.2
|
|
18
|
-
Requires-Dist: dkist-fits-specifications==4.30.
|
|
18
|
+
Requires-Dist: dkist-fits-specifications==4.30.0
|
|
19
19
|
Requires-Dist: dkist-header-validator==6.0.0
|
|
20
|
-
Requires-Dist: dkist-processing-common==14.
|
|
20
|
+
Requires-Dist: dkist-processing-common==14.6.0
|
|
21
21
|
Requires-Dist: dkist-processing-math==2.2.3
|
|
22
22
|
Requires-Dist: dkist-processing-pac==3.1.2
|
|
23
23
|
Requires-Dist: dkist-spectral-lines==3.0.1
|
|
24
|
-
Requires-Dist: solar-wavelength-calibration==2.0.
|
|
24
|
+
Requires-Dist: solar-wavelength-calibration==2.0.4
|
|
25
25
|
Requires-Dist: dkist-service-configuration==4.3.0
|
|
26
26
|
Requires-Dist: moviepy==2.1.2
|
|
27
27
|
Requires-Dist: numba==0.61.2
|
|
@@ -62,26 +62,26 @@ Requires-Dist: pytest; extra == "docs"
|
|
|
62
62
|
Requires-Dist: dkist-sphinx-theme; extra == "docs"
|
|
63
63
|
Provides-Extra: frozen
|
|
64
64
|
Requires-Dist: Deprecated==3.0.0; extra == "frozen"
|
|
65
|
-
Requires-Dist: ImageIO==2.38.
|
|
65
|
+
Requires-Dist: ImageIO==2.38.1; extra == "frozen"
|
|
66
66
|
Requires-Dist: Jinja2==3.1.6; extra == "frozen"
|
|
67
67
|
Requires-Dist: Mako==1.4.3; extra == "frozen"
|
|
68
|
-
Requires-Dist: MarkupSafe==3.0.
|
|
68
|
+
Requires-Dist: MarkupSafe==3.0.4; extra == "frozen"
|
|
69
69
|
Requires-Dist: PeakUtils==1.3.5; extra == "frozen"
|
|
70
70
|
Requires-Dist: PyJWT==2.15.1; extra == "frozen"
|
|
71
71
|
Requires-Dist: PyYAML==6.0.3; extra == "frozen"
|
|
72
72
|
Requires-Dist: PyYAML-ft==8.0.0; extra == "frozen"
|
|
73
73
|
Requires-Dist: Pygments==2.21.0; extra == "frozen"
|
|
74
|
-
Requires-Dist: SQLAlchemy==2.1.
|
|
74
|
+
Requires-Dist: SQLAlchemy==2.1.4; extra == "frozen"
|
|
75
75
|
Requires-Dist: Send2Trash==2.1.0; extra == "frozen"
|
|
76
76
|
Requires-Dist: a2wsgi==1.10.10; extra == "frozen"
|
|
77
77
|
Requires-Dist: aioftp==0.28.3; extra == "frozen"
|
|
78
78
|
Requires-Dist: aiohappyeyeballs==2.7.1; extra == "frozen"
|
|
79
|
-
Requires-Dist: aiohttp==3.14.
|
|
79
|
+
Requires-Dist: aiohttp==3.14.4; extra == "frozen"
|
|
80
80
|
Requires-Dist: aiosignal==1.4.0; extra == "frozen"
|
|
81
81
|
Requires-Dist: aiosmtplib==5.1.3; extra == "frozen"
|
|
82
82
|
Requires-Dist: aiosqlite==0.22.1; extra == "frozen"
|
|
83
83
|
Requires-Dist: alembic==1.20.0; extra == "frozen"
|
|
84
|
-
Requires-Dist: amqp==5.4.
|
|
84
|
+
Requires-Dist: amqp==5.4.1; extra == "frozen"
|
|
85
85
|
Requires-Dist: annotated-doc==0.0.5; extra == "frozen"
|
|
86
86
|
Requires-Dist: annotated-types==0.8.0; extra == "frozen"
|
|
87
87
|
Requires-Dist: anyio==4.15.1; extra == "frozen"
|
|
@@ -104,18 +104,18 @@ Requires-Dist: asdf_standard==1.5.0; extra == "frozen"
|
|
|
104
104
|
Requires-Dist: asgiref==3.12.1; extra == "frozen"
|
|
105
105
|
Requires-Dist: asteval==1.0.10; extra == "frozen"
|
|
106
106
|
Requires-Dist: astropy==7.0.2; extra == "frozen"
|
|
107
|
-
Requires-Dist: astropy-iers-data==0.2026.
|
|
107
|
+
Requires-Dist: astropy-iers-data==0.2026.10.5.1.0.7; extra == "frozen"
|
|
108
108
|
Requires-Dist: asttokens==3.0.2; extra == "frozen"
|
|
109
109
|
Requires-Dist: async-lru==2.3.0; extra == "frozen"
|
|
110
|
-
Requires-Dist: asyncpg==0.
|
|
110
|
+
Requires-Dist: asyncpg==0.32.0; extra == "frozen"
|
|
111
111
|
Requires-Dist: attrs==26.1.0; extra == "frozen"
|
|
112
112
|
Requires-Dist: babel==2.18.0; extra == "frozen"
|
|
113
113
|
Requires-Dist: beautifulsoup4==4.15.0; extra == "frozen"
|
|
114
|
-
Requires-Dist: billiard==4.3.
|
|
114
|
+
Requires-Dist: billiard==4.3.1; extra == "frozen"
|
|
115
115
|
Requires-Dist: bleach==6.4.0; extra == "frozen"
|
|
116
|
-
Requires-Dist: boto3==1.43.
|
|
117
|
-
Requires-Dist: botocore==1.43.
|
|
118
|
-
Requires-Dist: cachetools==7.2.
|
|
116
|
+
Requires-Dist: boto3==1.43.111; extra == "frozen"
|
|
117
|
+
Requires-Dist: botocore==1.43.111; extra == "frozen"
|
|
118
|
+
Requires-Dist: cachetools==7.2.1; extra == "frozen"
|
|
119
119
|
Requires-Dist: cadwyn==7.0.0; extra == "frozen"
|
|
120
120
|
Requires-Dist: celery==5.6.3; extra == "frozen"
|
|
121
121
|
Requires-Dist: certifi==2026.7.22; extra == "frozen"
|
|
@@ -124,7 +124,7 @@ Requires-Dist: charset-normalizer==3.5.2; extra == "frozen"
|
|
|
124
124
|
Requires-Dist: click==8.5.0; extra == "frozen"
|
|
125
125
|
Requires-Dist: click-didyoumean==0.3.1; extra == "frozen"
|
|
126
126
|
Requires-Dist: click-plugins==1.1.1.2; extra == "frozen"
|
|
127
|
-
Requires-Dist: click-repl==0.4.
|
|
127
|
+
Requires-Dist: click-repl==0.4.1; extra == "frozen"
|
|
128
128
|
Requires-Dist: cloudpickle==3.1.2; extra == "frozen"
|
|
129
129
|
Requires-Dist: colorlog==6.12.0; extra == "frozen"
|
|
130
130
|
Requires-Dist: comm==0.2.3; extra == "frozen"
|
|
@@ -138,15 +138,15 @@ Requires-Dist: decorator==5.3.1; extra == "frozen"
|
|
|
138
138
|
Requires-Dist: defusedxml==0.7.1; extra == "frozen"
|
|
139
139
|
Requires-Dist: dill==0.4.1; extra == "frozen"
|
|
140
140
|
Requires-Dist: dkist-header-validator==6.0.0; extra == "frozen"
|
|
141
|
-
Requires-Dist: dkist-processing-common==14.
|
|
141
|
+
Requires-Dist: dkist-processing-common==14.6.0; extra == "frozen"
|
|
142
142
|
Requires-Dist: dkist-processing-core==7.5.0; extra == "frozen"
|
|
143
|
-
Requires-Dist: dkist-processing-cryonirsp==3.0
|
|
143
|
+
Requires-Dist: dkist-processing-cryonirsp==3.1.0; extra == "frozen"
|
|
144
144
|
Requires-Dist: dkist-processing-math==2.2.3; extra == "frozen"
|
|
145
145
|
Requires-Dist: dkist-processing-pac==3.1.2; extra == "frozen"
|
|
146
146
|
Requires-Dist: dkist-service-configuration==4.3.0; extra == "frozen"
|
|
147
147
|
Requires-Dist: dkist-spectral-lines==3.0.1; extra == "frozen"
|
|
148
|
-
Requires-Dist: dkist_fits_specifications==4.30.
|
|
149
|
-
Requires-Dist: dnspython==2.
|
|
148
|
+
Requires-Dist: dkist_fits_specifications==4.30.0; extra == "frozen"
|
|
149
|
+
Requires-Dist: dnspython==2.9.0; extra == "frozen"
|
|
150
150
|
Requires-Dist: email-validator==2.3.0; extra == "frozen"
|
|
151
151
|
Requires-Dist: executing==2.2.1; extra == "frozen"
|
|
152
152
|
Requires-Dist: fastapi==0.136.3; extra == "frozen"
|
|
@@ -165,7 +165,7 @@ Requires-Dist: greenlet==3.5.6; extra == "frozen"
|
|
|
165
165
|
Requires-Dist: grpcio==1.84.0; extra == "frozen"
|
|
166
166
|
Requires-Dist: h11==0.16.0; extra == "frozen"
|
|
167
167
|
Requires-Dist: httpcore==1.0.9; extra == "frozen"
|
|
168
|
-
Requires-Dist: httptools==0.
|
|
168
|
+
Requires-Dist: httptools==0.9.0; extra == "frozen"
|
|
169
169
|
Requires-Dist: httpx==0.28.1; extra == "frozen"
|
|
170
170
|
Requires-Dist: humanize==4.16.0; extra == "frozen"
|
|
171
171
|
Requires-Dist: idna==3.20; extra == "frozen"
|
|
@@ -179,8 +179,8 @@ Requires-Dist: itsdangerous==2.2.0; extra == "frozen"
|
|
|
179
179
|
Requires-Dist: jedi==0.20.0; extra == "frozen"
|
|
180
180
|
Requires-Dist: jmespath==1.1.0; extra == "frozen"
|
|
181
181
|
Requires-Dist: joblib==1.6.0; extra == "frozen"
|
|
182
|
-
Requires-Dist: json5==0.
|
|
183
|
-
Requires-Dist: jsonpointer==3.
|
|
182
|
+
Requires-Dist: json5==0.16.0; extra == "frozen"
|
|
183
|
+
Requires-Dist: jsonpointer==3.2.0; extra == "frozen"
|
|
184
184
|
Requires-Dist: jsonschema==4.26.0; extra == "frozen"
|
|
185
185
|
Requires-Dist: jsonschema-specifications==2025.9.1; extra == "frozen"
|
|
186
186
|
Requires-Dist: jupyter-events==0.12.1; extra == "frozen"
|
|
@@ -219,39 +219,39 @@ Requires-Dist: natsort==8.4.0; extra == "frozen"
|
|
|
219
219
|
Requires-Dist: nbclient==0.11.0; extra == "frozen"
|
|
220
220
|
Requires-Dist: nbconvert==7.17.1; extra == "frozen"
|
|
221
221
|
Requires-Dist: nbformat==5.11.1; extra == "frozen"
|
|
222
|
-
Requires-Dist: nest-asyncio2==1.7.
|
|
222
|
+
Requires-Dist: nest-asyncio2==1.7.4; extra == "frozen"
|
|
223
223
|
Requires-Dist: networkx==3.7; extra == "frozen"
|
|
224
224
|
Requires-Dist: notebook==7.6.3; extra == "frozen"
|
|
225
225
|
Requires-Dist: notebook_shim==0.2.4; extra == "frozen"
|
|
226
226
|
Requires-Dist: numba==0.61.2; extra == "frozen"
|
|
227
227
|
Requires-Dist: numpy==2.2.5; extra == "frozen"
|
|
228
228
|
Requires-Dist: object-clerk==1.0.0; extra == "frozen"
|
|
229
|
-
Requires-Dist: opentelemetry-api==1.45.
|
|
230
|
-
Requires-Dist: opentelemetry-exporter-http-transport==0.
|
|
231
|
-
Requires-Dist: opentelemetry-exporter-otlp==1.45.
|
|
232
|
-
Requires-Dist: opentelemetry-exporter-otlp-common==0.
|
|
233
|
-
Requires-Dist: opentelemetry-exporter-otlp-proto-common==1.45.
|
|
234
|
-
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc==1.45.
|
|
235
|
-
Requires-Dist: opentelemetry-exporter-otlp-proto-http==1.45.
|
|
236
|
-
Requires-Dist: opentelemetry-instrumentation==0.
|
|
237
|
-
Requires-Dist: opentelemetry-instrumentation-aiohttp-client==0.
|
|
238
|
-
Requires-Dist: opentelemetry-instrumentation-asgi==0.
|
|
239
|
-
Requires-Dist: opentelemetry-instrumentation-botocore==0.
|
|
240
|
-
Requires-Dist: opentelemetry-instrumentation-celery==0.
|
|
241
|
-
Requires-Dist: opentelemetry-instrumentation-dbapi==0.
|
|
242
|
-
Requires-Dist: opentelemetry-instrumentation-fastapi==0.
|
|
243
|
-
Requires-Dist: opentelemetry-instrumentation-pika==0.
|
|
244
|
-
Requires-Dist: opentelemetry-instrumentation-psycopg2==0.
|
|
245
|
-
Requires-Dist: opentelemetry-instrumentation-pymongo==0.
|
|
246
|
-
Requires-Dist: opentelemetry-instrumentation-redis==0.
|
|
247
|
-
Requires-Dist: opentelemetry-instrumentation-requests==0.
|
|
248
|
-
Requires-Dist: opentelemetry-instrumentation-sqlalchemy==0.
|
|
249
|
-
Requires-Dist: opentelemetry-instrumentation-system-metrics==0.
|
|
229
|
+
Requires-Dist: opentelemetry-api==1.45.1; extra == "frozen"
|
|
230
|
+
Requires-Dist: opentelemetry-exporter-http-transport==0.66b1; extra == "frozen"
|
|
231
|
+
Requires-Dist: opentelemetry-exporter-otlp==1.45.1; extra == "frozen"
|
|
232
|
+
Requires-Dist: opentelemetry-exporter-otlp-common==0.66b1; extra == "frozen"
|
|
233
|
+
Requires-Dist: opentelemetry-exporter-otlp-proto-common==1.45.1; extra == "frozen"
|
|
234
|
+
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc==1.45.1; extra == "frozen"
|
|
235
|
+
Requires-Dist: opentelemetry-exporter-otlp-proto-http==1.45.1; extra == "frozen"
|
|
236
|
+
Requires-Dist: opentelemetry-instrumentation==0.66b1; extra == "frozen"
|
|
237
|
+
Requires-Dist: opentelemetry-instrumentation-aiohttp-client==0.66b1; extra == "frozen"
|
|
238
|
+
Requires-Dist: opentelemetry-instrumentation-asgi==0.66b1; extra == "frozen"
|
|
239
|
+
Requires-Dist: opentelemetry-instrumentation-botocore==0.66b1; extra == "frozen"
|
|
240
|
+
Requires-Dist: opentelemetry-instrumentation-celery==0.66b1; extra == "frozen"
|
|
241
|
+
Requires-Dist: opentelemetry-instrumentation-dbapi==0.66b1; extra == "frozen"
|
|
242
|
+
Requires-Dist: opentelemetry-instrumentation-fastapi==0.66b1; extra == "frozen"
|
|
243
|
+
Requires-Dist: opentelemetry-instrumentation-pika==0.66b1; extra == "frozen"
|
|
244
|
+
Requires-Dist: opentelemetry-instrumentation-psycopg2==0.66b1; extra == "frozen"
|
|
245
|
+
Requires-Dist: opentelemetry-instrumentation-pymongo==0.66b1; extra == "frozen"
|
|
246
|
+
Requires-Dist: opentelemetry-instrumentation-redis==0.66b1; extra == "frozen"
|
|
247
|
+
Requires-Dist: opentelemetry-instrumentation-requests==0.66b1; extra == "frozen"
|
|
248
|
+
Requires-Dist: opentelemetry-instrumentation-sqlalchemy==0.66b1; extra == "frozen"
|
|
249
|
+
Requires-Dist: opentelemetry-instrumentation-system-metrics==0.66b1; extra == "frozen"
|
|
250
250
|
Requires-Dist: opentelemetry-propagator-aws-xray==1.0.2; extra == "frozen"
|
|
251
|
-
Requires-Dist: opentelemetry-proto==1.45.
|
|
252
|
-
Requires-Dist: opentelemetry-sdk==1.45.
|
|
253
|
-
Requires-Dist: opentelemetry-semantic-conventions==0.
|
|
254
|
-
Requires-Dist: opentelemetry-util-http==0.
|
|
251
|
+
Requires-Dist: opentelemetry-proto==1.45.1; extra == "frozen"
|
|
252
|
+
Requires-Dist: opentelemetry-sdk==1.45.1; extra == "frozen"
|
|
253
|
+
Requires-Dist: opentelemetry-semantic-conventions==0.66b1; extra == "frozen"
|
|
254
|
+
Requires-Dist: opentelemetry-util-http==0.66b1; extra == "frozen"
|
|
255
255
|
Requires-Dist: outcome==1.3.0.post0; extra == "frozen"
|
|
256
256
|
Requires-Dist: packaging==26.3; extra == "frozen"
|
|
257
257
|
Requires-Dist: pandas==3.0.6; extra == "frozen"
|
|
@@ -265,7 +265,7 @@ Requires-Dist: pexpect==4.9.0; extra == "frozen"
|
|
|
265
265
|
Requires-Dist: pika==1.4.4; extra == "frozen"
|
|
266
266
|
Requires-Dist: pillow==10.4.0; extra == "frozen"
|
|
267
267
|
Requires-Dist: pip==26.2.1; extra == "frozen"
|
|
268
|
-
Requires-Dist: platformdirs==4.12.
|
|
268
|
+
Requires-Dist: platformdirs==4.12.4; extra == "frozen"
|
|
269
269
|
Requires-Dist: pluggy==1.6.0; extra == "frozen"
|
|
270
270
|
Requires-Dist: pooch==1.9.0; extra == "frozen"
|
|
271
271
|
Requires-Dist: proglog==0.1.12; extra == "frozen"
|
|
@@ -279,21 +279,21 @@ Requires-Dist: psycopg-binary==3.3.6; extra == "frozen"
|
|
|
279
279
|
Requires-Dist: psycopg2-binary==2.9.13; extra == "frozen"
|
|
280
280
|
Requires-Dist: ptyprocess==0.7.0; extra == "frozen"
|
|
281
281
|
Requires-Dist: pure_eval==0.2.4; extra == "frozen"
|
|
282
|
-
Requires-Dist: pycparser==3.
|
|
283
|
-
Requires-Dist: pydantic==2.
|
|
282
|
+
Requires-Dist: pycparser==3.11; extra == "frozen"
|
|
283
|
+
Requires-Dist: pydantic==2.14.0; extra == "frozen"
|
|
284
284
|
Requires-Dist: pydantic-extra-types==2.11.1; extra == "frozen"
|
|
285
285
|
Requires-Dist: pydantic-settings==2.15.0; extra == "frozen"
|
|
286
|
-
Requires-Dist: pydantic_core==2.
|
|
286
|
+
Requires-Dist: pydantic_core==2.50.0; extra == "frozen"
|
|
287
287
|
Requires-Dist: pyerfa==2.0.1.5; extra == "frozen"
|
|
288
288
|
Requires-Dist: pygtrie==2.6.2; extra == "frozen"
|
|
289
289
|
Requires-Dist: pyparsing==3.3.3; extra == "frozen"
|
|
290
290
|
Requires-Dist: python-daemon==3.1.2; extra == "frozen"
|
|
291
291
|
Requires-Dist: python-dateutil==2.9.0.post0; extra == "frozen"
|
|
292
|
-
Requires-Dist: python-dotenv==1.2.
|
|
292
|
+
Requires-Dist: python-dotenv==1.2.4; extra == "frozen"
|
|
293
293
|
Requires-Dist: python-json-logger==4.2.0; extra == "frozen"
|
|
294
294
|
Requires-Dist: python-multipart==0.0.32; extra == "frozen"
|
|
295
|
-
Requires-Dist: python-slugify==9.1.
|
|
296
|
-
Requires-Dist: pytz==2026.
|
|
295
|
+
Requires-Dist: python-slugify==9.1.3; extra == "frozen"
|
|
296
|
+
Requires-Dist: pytz==2026.5; extra == "frozen"
|
|
297
297
|
Requires-Dist: pyzmq==27.2.0; extra == "frozen"
|
|
298
298
|
Requires-Dist: redis==6.4.0; extra == "frozen"
|
|
299
299
|
Requires-Dist: referencing==0.37.0; extra == "frozen"
|
|
@@ -303,18 +303,18 @@ Requires-Dist: rfc3986-validator==0.1.1; extra == "frozen"
|
|
|
303
303
|
Requires-Dist: rfc3987-syntax==1.1.0; extra == "frozen"
|
|
304
304
|
Requires-Dist: rich==15.0.0; extra == "frozen"
|
|
305
305
|
Requires-Dist: rich-argparse==1.8.0; extra == "frozen"
|
|
306
|
-
Requires-Dist: rich-toolkit==0.20.
|
|
307
|
-
Requires-Dist: rpds-py==2026.
|
|
306
|
+
Requires-Dist: rich-toolkit==0.20.6; extra == "frozen"
|
|
307
|
+
Requires-Dist: rpds-py==2026.9.1; extra == "frozen"
|
|
308
308
|
Requires-Dist: s3transfer==0.19.2; extra == "frozen"
|
|
309
309
|
Requires-Dist: scikit-image==0.25.2; extra == "frozen"
|
|
310
310
|
Requires-Dist: scikit-learn==1.9.0; extra == "frozen"
|
|
311
311
|
Requires-Dist: scipy==1.15.3; extra == "frozen"
|
|
312
312
|
Requires-Dist: semantic-version==2.10.0; extra == "frozen"
|
|
313
|
-
Requires-Dist: setproctitle==1.3.
|
|
313
|
+
Requires-Dist: setproctitle==1.3.8; extra == "frozen"
|
|
314
314
|
Requires-Dist: shellingham==1.5.4; extra == "frozen"
|
|
315
315
|
Requires-Dist: six==1.17.0; extra == "frozen"
|
|
316
316
|
Requires-Dist: sniffio==1.3.1; extra == "frozen"
|
|
317
|
-
Requires-Dist: solar-wavelength-calibration==2.0.
|
|
317
|
+
Requires-Dist: solar-wavelength-calibration==2.0.4; extra == "frozen"
|
|
318
318
|
Requires-Dist: soupsieve==2.10; extra == "frozen"
|
|
319
319
|
Requires-Dist: sqids==0.5.1; extra == "frozen"
|
|
320
320
|
Requires-Dist: sqlparse==0.6.0; extra == "frozen"
|
|
@@ -335,10 +335,10 @@ Requires-Dist: tinycss2==1.5.1; extra == "frozen"
|
|
|
335
335
|
Requires-Dist: tornado==6.5.10; extra == "frozen"
|
|
336
336
|
Requires-Dist: tqdm==4.70.1; extra == "frozen"
|
|
337
337
|
Requires-Dist: traitlets==5.16.1; extra == "frozen"
|
|
338
|
-
Requires-Dist: typer==0.27.
|
|
338
|
+
Requires-Dist: typer==0.27.3; extra == "frozen"
|
|
339
339
|
Requires-Dist: typing-inspection==0.4.4; extra == "frozen"
|
|
340
340
|
Requires-Dist: typing_extensions==4.16.0; extra == "frozen"
|
|
341
|
-
Requires-Dist: tzdata==2026.
|
|
341
|
+
Requires-Dist: tzdata==2026.5; extra == "frozen"
|
|
342
342
|
Requires-Dist: tzlocal==5.4.4; extra == "frozen"
|
|
343
343
|
Requires-Dist: uncertainties==3.2.3; extra == "frozen"
|
|
344
344
|
Requires-Dist: universal_pathlib==0.3.10; extra == "frozen"
|
|
@@ -346,20 +346,20 @@ Requires-Dist: uri-template==1.3.0; extra == "frozen"
|
|
|
346
346
|
Requires-Dist: urllib3==2.8.0; extra == "frozen"
|
|
347
347
|
Requires-Dist: uuid6==2025.0.1; extra == "frozen"
|
|
348
348
|
Requires-Dist: uvicorn==0.54.0; extra == "frozen"
|
|
349
|
-
Requires-Dist: uvloop==0.
|
|
349
|
+
Requires-Dist: uvloop==0.23.0; extra == "frozen"
|
|
350
350
|
Requires-Dist: vine==5.1.0; extra == "frozen"
|
|
351
351
|
Requires-Dist: voluptuous==0.16.0; extra == "frozen"
|
|
352
352
|
Requires-Dist: watchfiles==1.3.0; extra == "frozen"
|
|
353
|
-
Requires-Dist: wcwidth==0.9.
|
|
353
|
+
Requires-Dist: wcwidth==0.9.2; extra == "frozen"
|
|
354
354
|
Requires-Dist: webcolors==25.10.0; extra == "frozen"
|
|
355
355
|
Requires-Dist: webencodings==0.6.1; extra == "frozen"
|
|
356
356
|
Requires-Dist: websocket-client==1.9.2; extra == "frozen"
|
|
357
|
-
Requires-Dist: websockets==17.
|
|
357
|
+
Requires-Dist: websockets==17.2; extra == "frozen"
|
|
358
358
|
Requires-Dist: wirerope==1.0.0; extra == "frozen"
|
|
359
359
|
Requires-Dist: wrapt==2.5.0; extra == "frozen"
|
|
360
360
|
Requires-Dist: yamale==6.1.0; extra == "frozen"
|
|
361
361
|
Requires-Dist: yarl==1.25.1; extra == "frozen"
|
|
362
|
-
Requires-Dist: zipp==4.1.
|
|
362
|
+
Requires-Dist: zipp==4.1.1; extra == "frozen"
|
|
363
363
|
|
|
364
364
|
dkist-processing-cryonirsp
|
|
365
365
|
==========================
|
|
@@ -378,6 +378,8 @@ in their own package facilitates using the build_utils to test the integrity of
|
|
|
378
378
|
Environment Variables
|
|
379
379
|
---------------------
|
|
380
380
|
|
|
381
|
+
.. dkist-env-table: start
|
|
382
|
+
|
|
381
383
|
.. list-table::
|
|
382
384
|
:widths: 10 90
|
|
383
385
|
:header-rows: 1
|
|
@@ -469,6 +471,21 @@ Environment Variables
|
|
|
469
471
|
* - FTS_ATLAS_DATA_DIR
|
|
470
472
|
- annotation=Union[str, NoneType] required=False default=None description='Common cached directory for a downloaded FTS Atlas.'
|
|
471
473
|
|
|
474
|
+
.. dkist-env-table: end
|
|
475
|
+
|
|
476
|
+
Maintaining the generated table
|
|
477
|
+
###############################
|
|
478
|
+
|
|
479
|
+
The hook's additional dependencies are intentionally unpinned to avoid duplicating
|
|
480
|
+
versions maintained in ``pyproject.toml``. Consequently, the generated table may
|
|
481
|
+
temporarily reflect a newer published parent configuration than the version pinned
|
|
482
|
+
by this project.
|
|
483
|
+
|
|
484
|
+
When developing against an upstream release candidate that changes configuration
|
|
485
|
+
fields, temporarily pin the relevant hook dependency in
|
|
486
|
+
``.pre-commit-config.yaml`` to that RC. Remove the temporary pin after the final
|
|
487
|
+
upstream release is available.
|
|
488
|
+
|
|
472
489
|
Development
|
|
473
490
|
-----------
|
|
474
491
|
.. code-block:: bash
|
|
@@ -15,6 +15,8 @@ in their own package facilitates using the build_utils to test the integrity of
|
|
|
15
15
|
Environment Variables
|
|
16
16
|
---------------------
|
|
17
17
|
|
|
18
|
+
.. dkist-env-table: start
|
|
19
|
+
|
|
18
20
|
.. list-table::
|
|
19
21
|
:widths: 10 90
|
|
20
22
|
:header-rows: 1
|
|
@@ -106,6 +108,21 @@ Environment Variables
|
|
|
106
108
|
* - FTS_ATLAS_DATA_DIR
|
|
107
109
|
- annotation=Union[str, NoneType] required=False default=None description='Common cached directory for a downloaded FTS Atlas.'
|
|
108
110
|
|
|
111
|
+
.. dkist-env-table: end
|
|
112
|
+
|
|
113
|
+
Maintaining the generated table
|
|
114
|
+
###############################
|
|
115
|
+
|
|
116
|
+
The hook's additional dependencies are intentionally unpinned to avoid duplicating
|
|
117
|
+
versions maintained in ``pyproject.toml``. Consequently, the generated table may
|
|
118
|
+
temporarily reflect a newer published parent configuration than the version pinned
|
|
119
|
+
by this project.
|
|
120
|
+
|
|
121
|
+
When developing against an upstream release candidate that changes configuration
|
|
122
|
+
fields, temporarily pin the relevant hook dependency in
|
|
123
|
+
``.pre-commit-config.yaml`` to that RC. Remove the temporary pin after the final
|
|
124
|
+
upstream release is available.
|
|
125
|
+
|
|
109
126
|
Development
|
|
110
127
|
-----------
|
|
111
128
|
.. code-block:: bash
|
{dkist_processing_cryonirsp-3.0.0rc4 → dkist_processing_cryonirsp-3.1.0}/SCIENCE_CHANGELOG.rst
RENAMED
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
v3.0.0 (2026-10-08)
|
|
2
|
+
===================
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
- The task that computes the boundaries of the useful, illuminated regions of the INPUT data has been simplified and made more robust to data with very high
|
|
8
|
+
dynamic range. This improvement will most affect data taken at 1430nm, but will slightly change the final array shape for all data. (`#306 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/306>`__)
|
|
9
|
+
|
|
10
|
+
|
|
1
11
|
v2.0.0 (2026-07-17)
|
|
2
12
|
===================
|
|
3
13
|
|
|
@@ -140,7 +140,7 @@ class CryonirspParameters(ParameterBase, ParameterWavelengthMixin, ParameterArmI
|
|
|
140
140
|
|
|
141
141
|
@property
|
|
142
142
|
def beam_boundaries_detector_margin_px(self) -> int:
|
|
143
|
-
"""Return the
|
|
143
|
+
"""Return the padding amount from the detector edge that sets a hard limit on the illumination regions."""
|
|
144
144
|
return self._find_most_recent_past_value("cryonirsp_beam_boundaries_detector_margin_px")
|
|
145
145
|
|
|
146
146
|
@property
|
|
@@ -6,6 +6,7 @@ import numpy as np
|
|
|
6
6
|
from dkist_processing_common.codecs.fits import fits_array_encoder
|
|
7
7
|
from dkist_processing_math.statistics import average_numpy_arrays
|
|
8
8
|
from dkist_service_configuration.logging import logger
|
|
9
|
+
from scipy import stats
|
|
9
10
|
|
|
10
11
|
from dkist_processing_cryonirsp.codecs.fits import cryo_fits_array_decoder
|
|
11
12
|
from dkist_processing_cryonirsp.models.beam_boundaries import BeamBoundaries
|
|
@@ -20,7 +21,10 @@ __all__ = ["SpatialBeamBoundariesBase"]
|
|
|
20
21
|
|
|
21
22
|
class SpatialBeamBoundariesBase(CryonirspTaskBase):
|
|
22
23
|
"""
|
|
23
|
-
Task class for calculating the beam boundaries for later use during calibration.
|
|
24
|
+
Task class for calculating the illuminated beam boundaries in the spatial dimension for later use during calibration.
|
|
25
|
+
|
|
26
|
+
For CI data the term "spatial" here refers to the same chip dimension that corresponds to the spatial dimension in
|
|
27
|
+
SP data (numpy axis 0).
|
|
24
28
|
|
|
25
29
|
Parameters
|
|
26
30
|
----------
|
|
@@ -49,7 +53,7 @@ class SpatialBeamBoundariesBase(CryonirspTaskBase):
|
|
|
49
53
|
|
|
50
54
|
i. Extract the beam's spectral extent
|
|
51
55
|
|
|
52
|
-
#. Collapse along the
|
|
56
|
+
#. Collapse along the spectral dimension to form a 1D spatial signal
|
|
53
57
|
|
|
54
58
|
#. Use a moving window comparison to construct a profile showing sharp changes in intensity
|
|
55
59
|
|
|
@@ -57,10 +61,10 @@ class SpatialBeamBoundariesBase(CryonirspTaskBase):
|
|
|
57
61
|
|
|
58
62
|
#. Adjust the regions so all beams have the same shape
|
|
59
63
|
|
|
60
|
-
#. Write the computed spatial bounds
|
|
64
|
+
#. Write the computed spatial bounds and the spectral bounds from `parameters` to scratch
|
|
61
65
|
|
|
62
|
-
NOTE: When this method
|
|
63
|
-
corresponds to the chip axis that is the spectral
|
|
66
|
+
NOTE: When this method refers to the "spectral" dimension for CI data we really mean the spatial dimension that
|
|
67
|
+
corresponds to the chip axis that is the spectral dimension in SP data (numpy axis 1).
|
|
64
68
|
|
|
65
69
|
Returns
|
|
66
70
|
-------
|
|
@@ -92,8 +96,9 @@ class SpatialBeamBoundariesBase(CryonirspTaskBase):
|
|
|
92
96
|
beam_boundaries.append((min_edge, max_edge))
|
|
93
97
|
|
|
94
98
|
with self.telemetry_span("Matching beam sizes"):
|
|
99
|
+
spatial_size = beam_array.shape[0]
|
|
95
100
|
matched_spatial_boundaries = self.match_beam_sizes(
|
|
96
|
-
beam_boundaries, full_spatial_size=
|
|
101
|
+
beam_boundaries, full_spatial_size=spatial_size
|
|
97
102
|
)
|
|
98
103
|
|
|
99
104
|
with self.telemetry_span("Writing beam boundaries"):
|
|
@@ -131,12 +136,13 @@ class SpatialBeamBoundariesBase(CryonirspTaskBase):
|
|
|
131
136
|
)
|
|
132
137
|
averaged_gain_data = average_numpy_arrays(lin_corr_gain_arrays)
|
|
133
138
|
spatial_edge_mask = self.parameters.beam_boundaries_detector_margin_px
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
]
|
|
137
|
-
averaged_gain_data[-spatial_edge_mask
|
|
138
|
-
|
|
139
|
-
][None, :]
|
|
139
|
+
|
|
140
|
+
# Fill in the masked edge regions with a spatial constant copied from the first pixel past the masked region
|
|
141
|
+
start_edge_good_signal = averaged_gain_data[spatial_edge_mask + 1, :]
|
|
142
|
+
end_edge_good_signal = averaged_gain_data[-(spatial_edge_mask + 1), :]
|
|
143
|
+
|
|
144
|
+
averaged_gain_data[:spatial_edge_mask, :] = start_edge_good_signal[None, :]
|
|
145
|
+
averaged_gain_data[-spatial_edge_mask:, :] = end_edge_good_signal[None, :]
|
|
140
146
|
return averaged_gain_data
|
|
141
147
|
|
|
142
148
|
@staticmethod
|
|
@@ -152,19 +158,9 @@ class SpatialBeamBoundariesBase(CryonirspTaskBase):
|
|
|
152
158
|
moving_mean = np.convolve(spatial_signal, np.ones(window), "valid") / window
|
|
153
159
|
|
|
154
160
|
profile = np.full_like(spatial_signal, np.nan)
|
|
155
|
-
profile[window : -window
|
|
161
|
+
profile[window : len(profile) - (window - 1)] = moving_mean[window:] - moving_mean[:-window]
|
|
156
162
|
return profile
|
|
157
163
|
|
|
158
|
-
@staticmethod
|
|
159
|
-
def robust_sigma(array: np.ndarray) -> float:
|
|
160
|
-
"""
|
|
161
|
-
Robust estimation of the standard deviation based on the median absolute difference.
|
|
162
|
-
|
|
163
|
-
Assuming the values in array are roughly normally distributed.
|
|
164
|
-
"""
|
|
165
|
-
median = np.nanmedian(array)
|
|
166
|
-
return 1.4826 * np.nanmedian(np.abs(array - median))
|
|
167
|
-
|
|
168
164
|
@staticmethod
|
|
169
165
|
def find_edges(
|
|
170
166
|
edge_profile: np.ndarray, threshold_sigma: float, detector_margin: int
|
|
@@ -173,7 +169,7 @@ class SpatialBeamBoundariesBase(CryonirspTaskBase):
|
|
|
173
169
|
Identify peaks in an edge profile.
|
|
174
170
|
|
|
175
171
|
The location of the maximum change in the profile is taken to be the minimum edge of the illuminated beam while
|
|
176
|
-
the location of the most negative change in the profile is taken to be the maximum edge
|
|
172
|
+
the location of the most negative change in the profile is taken to be the maximum edge illuminated beam.
|
|
177
173
|
|
|
178
174
|
Both edges are checked to ensure they are significant enough by comparing their value to a threshold controlled
|
|
179
175
|
by ``threshold_sigma``. Edges that are below the threshold are interpreted as being essentially at the edge of
|
|
@@ -183,7 +179,9 @@ class SpatialBeamBoundariesBase(CryonirspTaskBase):
|
|
|
183
179
|
-------
|
|
184
180
|
`[min_edge_idx, max_edge_idx]`
|
|
185
181
|
"""
|
|
186
|
-
threshold = threshold_sigma *
|
|
182
|
+
threshold = threshold_sigma * stats.median_abs_deviation(
|
|
183
|
+
edge_profile, nan_policy="omit", scale="normal"
|
|
184
|
+
)
|
|
187
185
|
num_pix = len(edge_profile)
|
|
188
186
|
|
|
189
187
|
bottom_candidate = np.nanargmax(edge_profile)
|
|
@@ -191,11 +189,11 @@ class SpatialBeamBoundariesBase(CryonirspTaskBase):
|
|
|
191
189
|
|
|
192
190
|
if bottom_candidate > top_candidate:
|
|
193
191
|
# If the edges appear flipped around
|
|
194
|
-
# This could potentially happen if there is some sharp signal right at the edge of the otherwise-
|
|
195
|
-
# detector that gets interpreted as a spurious edge. In this case we make the assumption that the true
|
|
192
|
+
# This could potentially happen if there is some sharp signal right at the edge of the otherwise-unilluminated
|
|
193
|
+
# detector that gets interpreted as a spurious edge. In this case we make the assumption that the true beginning
|
|
196
194
|
# of illumination is in the first half of the detector and the true end of illumination is in the second half.
|
|
197
195
|
logger.info(
|
|
198
|
-
"Edge profile increasing/decreasing peaks appear to be swapped. This is likely due to spurious edges. Restricting
|
|
196
|
+
"Edge profile increasing/decreasing peaks appear to be swapped. This is likely due to spurious edges. Restricting search to half the chip for each."
|
|
199
197
|
)
|
|
200
198
|
half_idx = edge_profile.size // 2
|
|
201
199
|
bottom_candidate = np.nanargmax(edge_profile[:half_idx])
|
|
@@ -218,9 +216,10 @@ class SpatialBeamBoundariesBase(CryonirspTaskBase):
|
|
|
218
216
|
|
|
219
217
|
output_list = []
|
|
220
218
|
for spatial_boundaries, spectral_slice in zip(spatial_boundary_list, spectral_slices):
|
|
219
|
+
spatial_min, spatial_max = spatial_boundaries
|
|
221
220
|
boundary_obj = BeamBoundaries(
|
|
222
|
-
axis_0_min=
|
|
223
|
-
axis_0_max=
|
|
221
|
+
axis_0_min=spatial_min,
|
|
222
|
+
axis_0_max=spatial_max,
|
|
224
223
|
axis_1_min=spectral_slice.start,
|
|
225
224
|
axis_1_max=spectral_slice.stop,
|
|
226
225
|
)
|