dkist-processing-cryonirsp 1.4.3__tar.gz → 1.4.5__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.4.3 → dkist_processing_cryonirsp-1.4.5}/CHANGELOG.rst +19 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/PKG-INFO +3 -3
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/models/constants.py +6 -0
- dkist_processing_cryonirsp-1.4.5/dkist_processing_cryonirsp/parsers/check_for_gains.py +58 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tasks/parse.py +2 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tasks/write_l1.py +8 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tests/conftest.py +1 -1
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tests/test_parse.py +58 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp.egg-info/PKG-INFO +3 -3
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp.egg-info/SOURCES.txt +1 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp.egg-info/requires.txt +2 -2
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/pyproject.toml +2 -2
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/.gitignore +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/.pre-commit-config.yaml +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/.readthedocs.yml +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/README.rst +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/SCIENCE_CHANGELOG.rst +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/bitbucket-pipelines.yml +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/changelog/.gitempty +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/check_changelog_updated.sh +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/__init__.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/config.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/models/__init__.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/models/exposure_conditions.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/models/parameters.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/models/tags.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/models/task_name.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/parsers/__init__.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/parsers/cryonirsp_l0_fits_access.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/parsers/cryonirsp_l1_fits_access.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/parsers/exposure_conditions.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/parsers/map_repeats.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/parsers/measurements.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/parsers/modstates.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/parsers/optical_density_filters.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/parsers/polarimetric_check.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/parsers/scan_step.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/parsers/time.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/parsers/wavelength.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tasks/__init__.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tasks/assemble_movie.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tasks/bad_pixel_map.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tasks/beam_boundaries_base.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tasks/ci_beam_boundaries.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tasks/ci_science.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tasks/cryonirsp_base.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tasks/dark.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tasks/gain.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tasks/instrument_polarization.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tasks/l1_output_data.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tasks/linearity_correction.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tasks/make_movie_frames.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tasks/mixin/__init__.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tasks/mixin/beam_access.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tasks/mixin/corrections.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tasks/mixin/intermediate_frame.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tasks/mixin/linearized_frame.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tasks/mixin/shift_measurements.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tasks/quality_metrics.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tasks/science_base.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tasks/sp_beam_boundaries.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tasks/sp_dispersion_axis_correction.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tasks/sp_geometric.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tasks/sp_science.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tasks/sp_solar_gain.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tests/__init__.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tests/header_models.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tests/local_trial_workflows/__init__.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tests/local_trial_workflows/l0_cals_only.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tests/local_trial_workflows/l0_to_l1.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tests/local_trial_workflows/linearize_only.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tests/local_trial_workflows/local_trial_helpers.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tests/test_assemble_movie.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tests/test_assemble_qualilty.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tests/test_bad_pixel_maps.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tests/test_ci_beam_boundaries.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tests/test_ci_science.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tests/test_corrections.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tests/test_cryo_base.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tests/test_cryo_constants.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tests/test_dark.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tests/test_gain.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tests/test_instrument_polarization.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tests/test_linearity_correction.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tests/test_make_movie_frames.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tests/test_parameters.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tests/test_quality.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tests/test_sp_beam_boundaries.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tests/test_sp_dispersion_axis_correction.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tests/test_sp_geometric.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tests/test_sp_make_movie_frames.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tests/test_sp_science.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tests/test_sp_solar.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tests/test_trial_create_quality_report.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tests/test_workflows.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/tests/test_write_l1.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/workflows/__init__.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/workflows/ci_l0_processing.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/workflows/sp_l0_processing.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp/workflows/trial_workflows.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp.egg-info/dependency_links.txt +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/dkist_processing_cryonirsp.egg-info/top_level.txt +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/docs/Makefile +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/docs/bad_pixel_calibration.rst +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/docs/beam_angle_calculation.rst +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/docs/beam_boundary_computation.rst +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/docs/changelog.rst +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/docs/ci_science_calibration.rst +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/docs/conf.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/docs/index.rst +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/docs/l0_to_l1_cryonirsp_ci-full-trial.rst +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/docs/l0_to_l1_cryonirsp_ci.rst +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/docs/l0_to_l1_cryonirsp_sp-full-trial.rst +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/docs/l0_to_l1_cryonirsp_sp.rst +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/docs/linearization.rst +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/docs/make.bat +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/docs/requirements.txt +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/docs/requirements_table.rst +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/docs/scientific_changelog.rst +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/docs/sp_science_calibration.rst +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/licenses/LICENSE.rst +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/science_towncrier.sh +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/setup.cfg +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/towncrier_science.toml +0 -0
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
v1.4.5rc1 (2024-11-25)
|
|
2
|
+
======================
|
|
3
|
+
|
|
4
|
+
Misc
|
|
5
|
+
----
|
|
6
|
+
|
|
7
|
+
- Write the CNAMEn keywords to the instrument headers. (`#160 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/160>`__)
|
|
8
|
+
- Bumping dkist-fits-specification to v4.10.0 and dkist-processing-common to v10.5.3 (`#160 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/160>`__)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
v1.4.4 (2024-11-21)
|
|
12
|
+
===================
|
|
13
|
+
|
|
14
|
+
Misc
|
|
15
|
+
----
|
|
16
|
+
|
|
17
|
+
- This change adds a new pickybud to make sure that the dataset contains both lamp gain frames and solar gain frames (we need both for calibration). If we don't have both types of frames, the pipeline will fail fast. (`#159 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/159>`__)
|
|
18
|
+
|
|
19
|
+
|
|
1
20
|
v1.4.3 (2024-11-21)
|
|
2
21
|
===================
|
|
3
22
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: dkist-processing-cryonirsp
|
|
3
|
-
Version: 1.4.
|
|
3
|
+
Version: 1.4.5
|
|
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,9 +15,9 @@ Requires-Python: >=3.11
|
|
|
15
15
|
Description-Content-Type: text/x-rst
|
|
16
16
|
Requires-Dist: Pillow==10.3.0
|
|
17
17
|
Requires-Dist: astropy==6.1.0
|
|
18
|
-
Requires-Dist: dkist-fits-specifications==4.
|
|
18
|
+
Requires-Dist: dkist-fits-specifications==4.10.0
|
|
19
19
|
Requires-Dist: dkist-header-validator==5.1.1
|
|
20
|
-
Requires-Dist: dkist-processing-common==10.5.
|
|
20
|
+
Requires-Dist: dkist-processing-common==10.5.3
|
|
21
21
|
Requires-Dist: dkist-processing-math==2.1.1
|
|
22
22
|
Requires-Dist: dkist-processing-pac==3.1.0
|
|
23
23
|
Requires-Dist: dkist-spectral-lines==3.0.0
|
|
@@ -46,6 +46,7 @@ class CryonirspBudName(Enum):
|
|
|
46
46
|
roi_1_size_y = "ROI_1_SIZE_Y"
|
|
47
47
|
optical_density_filter_picky_bud = "OPTICAL_DENSITY_FILTER_PICKY_BUD"
|
|
48
48
|
solar_gain_ip_start_time = "SOLAR_GAIN_IP_START_TIME"
|
|
49
|
+
gain_frame_type_list = "GAIN_FRAME_TYPE_LIST"
|
|
49
50
|
|
|
50
51
|
|
|
51
52
|
class CryonirspConstants(ConstantsBase):
|
|
@@ -124,6 +125,11 @@ class CryonirspConstants(ConstantsBase):
|
|
|
124
125
|
"""Construct a sorted tuple of all the dateobs for this dataset."""
|
|
125
126
|
return self._db_dict[CryonirspBudName.time_obs_list.value]
|
|
126
127
|
|
|
128
|
+
@property
|
|
129
|
+
def gain_frame_type_list(self) -> list[str]:
|
|
130
|
+
"""Construct a list of all the types of gain frames for this dataset."""
|
|
131
|
+
return self._db_dict[CryonirspBudName.gain_frame_type_list.value]
|
|
132
|
+
|
|
127
133
|
@property
|
|
128
134
|
def exposure_conditions_list(self) -> [ExposureConditions]:
|
|
129
135
|
"""Construct a list of ExposureConditions tuples for the dataset."""
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"""Pickybud to check for lamp gain and solar gain frames."""
|
|
2
|
+
from typing import Hashable
|
|
3
|
+
from typing import Type
|
|
4
|
+
|
|
5
|
+
from dkist_processing_common.models.flower_pot import SpilledDirt
|
|
6
|
+
from dkist_processing_common.models.flower_pot import Stem
|
|
7
|
+
from dkist_processing_common.models.flower_pot import Thorn
|
|
8
|
+
from dkist_processing_common.models.task_name import TaskName
|
|
9
|
+
from dkist_processing_common.parsers.task import parse_header_ip_task_with_gains
|
|
10
|
+
|
|
11
|
+
from dkist_processing_cryonirsp.models.constants import CryonirspBudName
|
|
12
|
+
from dkist_processing_cryonirsp.parsers.cryonirsp_l0_fits_access import CryonirspL0FitsAccess
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class CheckGainFramesPickyBud(Stem):
|
|
16
|
+
"""Pickybud to check for lamp gain and solar gain frames."""
|
|
17
|
+
|
|
18
|
+
def __init__(self):
|
|
19
|
+
super().__init__(stem_name=CryonirspBudName.gain_frame_type_list.value)
|
|
20
|
+
|
|
21
|
+
def setter(self, fits_obj: CryonirspL0FitsAccess) -> Type[SpilledDirt] | str:
|
|
22
|
+
"""
|
|
23
|
+
Set the calibration frame type for this fits object.
|
|
24
|
+
|
|
25
|
+
Parameters
|
|
26
|
+
----------
|
|
27
|
+
fits_obj
|
|
28
|
+
The input fits object
|
|
29
|
+
Returns
|
|
30
|
+
-------
|
|
31
|
+
The calibration frame object associated with this fits object
|
|
32
|
+
"""
|
|
33
|
+
task = parse_header_ip_task_with_gains(fits_obj).casefold()
|
|
34
|
+
|
|
35
|
+
if task in [TaskName.lamp_gain.value.casefold(), TaskName.solar_gain.value.casefold()]:
|
|
36
|
+
return task
|
|
37
|
+
return SpilledDirt
|
|
38
|
+
|
|
39
|
+
def getter(self, key: Hashable) -> Thorn:
|
|
40
|
+
"""
|
|
41
|
+
Check that lamp and solar gain frames exist. If they do, return a Thorn.
|
|
42
|
+
|
|
43
|
+
Parameters
|
|
44
|
+
----------
|
|
45
|
+
key
|
|
46
|
+
The input key
|
|
47
|
+
|
|
48
|
+
Returns
|
|
49
|
+
-------
|
|
50
|
+
Thorn
|
|
51
|
+
"""
|
|
52
|
+
gain_task_types = list(self.key_to_petal_dict.values())
|
|
53
|
+
|
|
54
|
+
if TaskName.lamp_gain.value.casefold() not in gain_task_types:
|
|
55
|
+
raise ValueError("Lamp gain frames not found.")
|
|
56
|
+
if TaskName.solar_gain.value.casefold() not in gain_task_types:
|
|
57
|
+
raise ValueError("Solar gain frames not found.")
|
|
58
|
+
return Thorn
|
|
@@ -25,6 +25,7 @@ from dkist_processing_cryonirsp.models.constants import CryonirspBudName
|
|
|
25
25
|
from dkist_processing_cryonirsp.models.parameters import CryonirspParsingParameters
|
|
26
26
|
from dkist_processing_cryonirsp.models.tags import CryonirspStemName
|
|
27
27
|
from dkist_processing_cryonirsp.models.tags import CryonirspTag
|
|
28
|
+
from dkist_processing_cryonirsp.parsers.check_for_gains import CheckGainFramesPickyBud
|
|
28
29
|
from dkist_processing_cryonirsp.parsers.cryonirsp_l0_fits_access import CryonirspL0FitsAccess
|
|
29
30
|
from dkist_processing_cryonirsp.parsers.cryonirsp_l0_fits_access import CryonirspRampFitsAccess
|
|
30
31
|
from dkist_processing_cryonirsp.parsers.exposure_conditions import (
|
|
@@ -179,6 +180,7 @@ class ParseL0CryonirspLinearizedData(ParseDataBase, InputDatasetMixin):
|
|
|
179
180
|
NumberOfScanStepsBud(),
|
|
180
181
|
NumberOfMeasurementsBud(),
|
|
181
182
|
CryonirspSolarGainStartTimeBud(),
|
|
183
|
+
CheckGainFramesPickyBud(),
|
|
182
184
|
NumCSStepBud(self.parameters.max_cs_step_time_sec),
|
|
183
185
|
CryonirspTaskExposureConditionsBud(
|
|
184
186
|
stem_name=CryonirspBudName.dark_frame_exposure_conditions_list.value,
|
|
@@ -130,6 +130,7 @@ class CryonirspWriteL1Frame(WriteL1Frame, ABC, InputDatasetMixin):
|
|
|
130
130
|
header[f"DTYPE{axis_num}"] = "SPATIAL"
|
|
131
131
|
header[f"DPNAME{axis_num}"] = self.latitude_pixel_name
|
|
132
132
|
header[f"DWNAME{axis_num}"] = "helioprojective latitude"
|
|
133
|
+
header[f"CNAME{axis_num}"] = "helioprojective latitude"
|
|
133
134
|
header[f"DUNIT{axis_num}"] = header[f"CUNIT{axis_num}"]
|
|
134
135
|
next_axis = axis_num + 1
|
|
135
136
|
return next_axis
|
|
@@ -140,6 +141,7 @@ class CryonirspWriteL1Frame(WriteL1Frame, ABC, InputDatasetMixin):
|
|
|
140
141
|
header[f"DTYPE{axis_num}"] = "TEMPORAL"
|
|
141
142
|
header[f"DPNAME{axis_num}"] = "measurement number"
|
|
142
143
|
header[f"DWNAME{axis_num}"] = "time"
|
|
144
|
+
header[f"CNAME{axis_num}"] = "time"
|
|
143
145
|
header[f"DUNIT{axis_num}"] = "s"
|
|
144
146
|
# DINDEX and CNCMEAS are both one-based
|
|
145
147
|
header[f"DINDEX{axis_num}"] = header["CNCMEAS"]
|
|
@@ -157,6 +159,7 @@ class CryonirspWriteL1Frame(WriteL1Frame, ABC, InputDatasetMixin):
|
|
|
157
159
|
header[f"DTYPE{axis_num}"] = "TEMPORAL"
|
|
158
160
|
header[f"DPNAME{axis_num}"] = "map scan number"
|
|
159
161
|
header[f"DWNAME{axis_num}"] = "time"
|
|
162
|
+
header[f"CNAME{axis_num}"] = "time"
|
|
160
163
|
header[f"DUNIT{axis_num}"] = "s"
|
|
161
164
|
# Temporal position in dataset
|
|
162
165
|
# DINDEX and CNMAP are both one-based
|
|
@@ -172,6 +175,7 @@ class CryonirspWriteL1Frame(WriteL1Frame, ABC, InputDatasetMixin):
|
|
|
172
175
|
header[f"DTYPE{axis_num}"] = "STOKES"
|
|
173
176
|
header[f"DPNAME{axis_num}"] = "polarization state"
|
|
174
177
|
header[f"DWNAME{axis_num}"] = "polarization state"
|
|
178
|
+
header[f"CNAME{axis_num}"] = "polarization state"
|
|
175
179
|
header[f"DUNIT{axis_num}"] = ""
|
|
176
180
|
# Stokes position in dataset - stokes axis goes from 1-4
|
|
177
181
|
header[f"DINDEX{axis_num}"] = self.constants.stokes_params.index(stokes.upper()) + 1
|
|
@@ -502,6 +506,7 @@ class CIWriteL1Frame(CryonirspWriteL1Frame):
|
|
|
502
506
|
header[f"DNAXIS{axis_num}"] = header[f"NAXIS{axis_num}"]
|
|
503
507
|
header[f"DTYPE{axis_num}"] = "SPATIAL"
|
|
504
508
|
header[f"DWNAME{axis_num}"] = "helioprojective longitude"
|
|
509
|
+
header[f"CNAME{axis_num}"] = "helioprojective longitude"
|
|
505
510
|
header[f"DUNIT{axis_num}"] = header[f"CUNIT{axis_num}"]
|
|
506
511
|
header[f"DPNAME{axis_num}"] = "detector y axis"
|
|
507
512
|
next_axis = axis_num + 1
|
|
@@ -513,6 +518,7 @@ class CIWriteL1Frame(CryonirspWriteL1Frame):
|
|
|
513
518
|
header[f"DTYPE{axis_num}"] = "TEMPORAL"
|
|
514
519
|
header[f"DPNAME{axis_num}"] = "scan step number"
|
|
515
520
|
header[f"DWNAME{axis_num}"] = "time"
|
|
521
|
+
header[f"CNAME{axis_num}"] = "time"
|
|
516
522
|
header[f"DUNIT{axis_num}"] = "s"
|
|
517
523
|
# DINDEX and CNCURSCN are both one-based
|
|
518
524
|
header[f"DINDEX{axis_num}"] = header["CNCURSCN"]
|
|
@@ -777,6 +783,7 @@ class SPWriteL1Frame(CryonirspWriteL1Frame):
|
|
|
777
783
|
header[f"DTYPE{axis_num}"] = "SPECTRAL"
|
|
778
784
|
header[f"DPNAME{axis_num}"] = "dispersion axis"
|
|
779
785
|
header[f"DWNAME{axis_num}"] = "wavelength"
|
|
786
|
+
header[f"CNAME{axis_num}"] = "wavelength"
|
|
780
787
|
header[f"DUNIT{axis_num}"] = header[f"CUNIT{axis_num}"]
|
|
781
788
|
next_axis = axis_num + 1
|
|
782
789
|
return next_axis
|
|
@@ -794,6 +801,7 @@ class SPWriteL1Frame(CryonirspWriteL1Frame):
|
|
|
794
801
|
header[f"DTYPE{axis_num}"] = "SPATIAL"
|
|
795
802
|
header[f"DPNAME{axis_num}"] = "scan step number"
|
|
796
803
|
header[f"DWNAME{axis_num}"] = "helioprojective longitude"
|
|
804
|
+
header[f"CNAME{axis_num}"] = "helioprojective longitude"
|
|
797
805
|
# NB: CUNIT axis number is hard coded here
|
|
798
806
|
header[f"DUNIT{axis_num}"] = header[f"CUNIT3"]
|
|
799
807
|
# DINDEX and CNCURSCN are both one-based
|
|
@@ -72,7 +72,7 @@ def generate_214_l1_fits_frame(
|
|
|
72
72
|
) -> fits.HDUList:
|
|
73
73
|
"""Convert S122 header into 214 L1 only.
|
|
74
74
|
|
|
75
|
-
This does NOT include populating all L1 headers, just removing 214 L0 only headers
|
|
75
|
+
This does NOT include populating all L1 headers, just removing 214 L0 only headers.
|
|
76
76
|
|
|
77
77
|
NOTE: The stuff you care about will be in hdulist[1]
|
|
78
78
|
"""
|
|
@@ -1437,3 +1437,61 @@ def test_polarimetric_checking_unique_bud(dummy_fits_obj):
|
|
|
1437
1437
|
Bud.update("key1", nonpol_obs_frame2)
|
|
1438
1438
|
Bud.update("key2", pol_frame2)
|
|
1439
1439
|
assert Bud.getter("key1") == "Bad"
|
|
1440
|
+
|
|
1441
|
+
|
|
1442
|
+
@pytest.mark.parametrize("arm_id", ["CI", "SP"])
|
|
1443
|
+
def test_missing_solar_gain_frames(parse_linearized_task, arm_id):
|
|
1444
|
+
"""
|
|
1445
|
+
Given: A dataset missing solar gain frames
|
|
1446
|
+
When: Parsing
|
|
1447
|
+
Then: The 'CheckGainFramesPickyBud' raises an error
|
|
1448
|
+
"""
|
|
1449
|
+
task = parse_linearized_task
|
|
1450
|
+
|
|
1451
|
+
lin_tag = [CryonirspTag.linearized()]
|
|
1452
|
+
gain_exposure_condition = ExposureConditions(
|
|
1453
|
+
10.0, AllowableOpticalDensityFilterNames.OPEN.value
|
|
1454
|
+
)
|
|
1455
|
+
dark_exp_condition = ExposureConditions(10.0, AllowableOpticalDensityFilterNames.OPEN.value)
|
|
1456
|
+
|
|
1457
|
+
# Needed so the dark picky bud is happy
|
|
1458
|
+
write_dark_frames_to_task(task, exposure_condition=dark_exp_condition, tags=lin_tag)
|
|
1459
|
+
|
|
1460
|
+
write_lamp_gain_frames_to_task(
|
|
1461
|
+
task,
|
|
1462
|
+
tags=lin_tag,
|
|
1463
|
+
exposure_condition=gain_exposure_condition,
|
|
1464
|
+
num_modstates=1,
|
|
1465
|
+
)
|
|
1466
|
+
|
|
1467
|
+
with pytest.raises(ValueError, match="Solar gain frames not found."):
|
|
1468
|
+
task()
|
|
1469
|
+
|
|
1470
|
+
|
|
1471
|
+
@pytest.mark.parametrize("arm_id", ["CI", "SP"])
|
|
1472
|
+
def test_missing_lamp_gain_frames(parse_linearized_task, arm_id):
|
|
1473
|
+
"""
|
|
1474
|
+
Given: A dataset missing lamp gain frames
|
|
1475
|
+
When: Parsing
|
|
1476
|
+
Then: The 'CheckGainFramesPickyBud' raises an error
|
|
1477
|
+
"""
|
|
1478
|
+
task = parse_linearized_task
|
|
1479
|
+
|
|
1480
|
+
lin_tag = [CryonirspTag.linearized()]
|
|
1481
|
+
gain_exposure_condition = ExposureConditions(
|
|
1482
|
+
10.0, AllowableOpticalDensityFilterNames.OPEN.value
|
|
1483
|
+
)
|
|
1484
|
+
dark_exp_condition = ExposureConditions(10.0, AllowableOpticalDensityFilterNames.OPEN.value)
|
|
1485
|
+
|
|
1486
|
+
# Needed so the dark picky bud is happy
|
|
1487
|
+
write_dark_frames_to_task(task, exposure_condition=dark_exp_condition, tags=lin_tag)
|
|
1488
|
+
|
|
1489
|
+
write_solar_gain_frames_to_task(
|
|
1490
|
+
task,
|
|
1491
|
+
tags=lin_tag,
|
|
1492
|
+
exposure_condition=gain_exposure_condition,
|
|
1493
|
+
num_modstates=1,
|
|
1494
|
+
)
|
|
1495
|
+
|
|
1496
|
+
with pytest.raises(ValueError, match="Lamp gain frames not found."):
|
|
1497
|
+
task()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: dkist-processing-cryonirsp
|
|
3
|
-
Version: 1.4.
|
|
3
|
+
Version: 1.4.5
|
|
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,9 +15,9 @@ Requires-Python: >=3.11
|
|
|
15
15
|
Description-Content-Type: text/x-rst
|
|
16
16
|
Requires-Dist: Pillow==10.3.0
|
|
17
17
|
Requires-Dist: astropy==6.1.0
|
|
18
|
-
Requires-Dist: dkist-fits-specifications==4.
|
|
18
|
+
Requires-Dist: dkist-fits-specifications==4.10.0
|
|
19
19
|
Requires-Dist: dkist-header-validator==5.1.1
|
|
20
|
-
Requires-Dist: dkist-processing-common==10.5.
|
|
20
|
+
Requires-Dist: dkist-processing-common==10.5.3
|
|
21
21
|
Requires-Dist: dkist-processing-math==2.1.1
|
|
22
22
|
Requires-Dist: dkist-processing-pac==3.1.0
|
|
23
23
|
Requires-Dist: dkist-spectral-lines==3.0.0
|
|
@@ -24,6 +24,7 @@ dkist_processing_cryonirsp/models/parameters.py
|
|
|
24
24
|
dkist_processing_cryonirsp/models/tags.py
|
|
25
25
|
dkist_processing_cryonirsp/models/task_name.py
|
|
26
26
|
dkist_processing_cryonirsp/parsers/__init__.py
|
|
27
|
+
dkist_processing_cryonirsp/parsers/check_for_gains.py
|
|
27
28
|
dkist_processing_cryonirsp/parsers/cryonirsp_l0_fits_access.py
|
|
28
29
|
dkist_processing_cryonirsp/parsers/cryonirsp_l1_fits_access.py
|
|
29
30
|
dkist_processing_cryonirsp/parsers/exposure_conditions.py
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
Pillow==10.3.0
|
|
2
2
|
astropy==6.1.0
|
|
3
|
-
dkist-fits-specifications==4.
|
|
3
|
+
dkist-fits-specifications==4.10.0
|
|
4
4
|
dkist-header-validator==5.1.1
|
|
5
|
-
dkist-processing-common==10.5.
|
|
5
|
+
dkist-processing-common==10.5.3
|
|
6
6
|
dkist-processing-math==2.1.1
|
|
7
7
|
dkist-processing-pac==3.1.0
|
|
8
8
|
dkist-spectral-lines==3.0.0
|
|
@@ -23,9 +23,9 @@ classifiers = [
|
|
|
23
23
|
dependencies = [
|
|
24
24
|
"Pillow == 10.3.0",
|
|
25
25
|
"astropy == 6.1.0",
|
|
26
|
-
"dkist-fits-specifications == 4.
|
|
26
|
+
"dkist-fits-specifications == 4.10.0",
|
|
27
27
|
"dkist-header-validator == 5.1.1",
|
|
28
|
-
"dkist-processing-common == 10.5.
|
|
28
|
+
"dkist-processing-common == 10.5.3",
|
|
29
29
|
"dkist-processing-math == 2.1.1",
|
|
30
30
|
"dkist-processing-pac == 3.1.0",
|
|
31
31
|
"dkist-spectral-lines == 3.0.0",
|
|
File without changes
|
{dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/.pre-commit-config.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/bitbucket-pipelines.yml
RENAMED
|
File without changes
|
|
File without changes
|
{dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/check_changelog_updated.sh
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/docs/bad_pixel_calibration.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/docs/l0_to_l1_cryonirsp_ci.rst
RENAMED
|
File without changes
|
|
File without changes
|
{dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/docs/l0_to_l1_cryonirsp_sp.rst
RENAMED
|
File without changes
|
{dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/docs/linearization.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/docs/requirements_table.rst
RENAMED
|
File without changes
|
{dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/docs/scientific_changelog.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.5}/towncrier_science.toml
RENAMED
|
File without changes
|