dkist-processing-cryonirsp 1.4.3__tar.gz → 1.4.4__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.4}/CHANGELOG.rst +9 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/PKG-INFO +1 -1
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/models/constants.py +6 -0
- dkist_processing_cryonirsp-1.4.4/dkist_processing_cryonirsp/parsers/check_for_gains.py +58 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tasks/parse.py +2 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tests/conftest.py +1 -1
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tests/test_parse.py +58 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp.egg-info/PKG-INFO +1 -1
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp.egg-info/SOURCES.txt +1 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/.gitignore +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/.pre-commit-config.yaml +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/.readthedocs.yml +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/README.rst +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/SCIENCE_CHANGELOG.rst +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/bitbucket-pipelines.yml +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/changelog/.gitempty +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/check_changelog_updated.sh +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/__init__.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/config.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/models/__init__.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/models/exposure_conditions.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/models/parameters.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/models/tags.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/models/task_name.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/parsers/__init__.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/parsers/cryonirsp_l0_fits_access.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/parsers/cryonirsp_l1_fits_access.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/parsers/exposure_conditions.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/parsers/map_repeats.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/parsers/measurements.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/parsers/modstates.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/parsers/optical_density_filters.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/parsers/polarimetric_check.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/parsers/scan_step.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/parsers/time.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/parsers/wavelength.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tasks/__init__.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tasks/assemble_movie.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tasks/bad_pixel_map.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tasks/beam_boundaries_base.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tasks/ci_beam_boundaries.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tasks/ci_science.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tasks/cryonirsp_base.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tasks/dark.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tasks/gain.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tasks/instrument_polarization.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tasks/l1_output_data.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tasks/linearity_correction.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tasks/make_movie_frames.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tasks/mixin/__init__.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tasks/mixin/beam_access.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tasks/mixin/corrections.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tasks/mixin/intermediate_frame.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tasks/mixin/linearized_frame.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tasks/mixin/shift_measurements.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tasks/quality_metrics.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tasks/science_base.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tasks/sp_beam_boundaries.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tasks/sp_dispersion_axis_correction.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tasks/sp_geometric.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tasks/sp_science.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tasks/sp_solar_gain.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tasks/write_l1.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tests/__init__.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tests/header_models.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tests/local_trial_workflows/__init__.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tests/local_trial_workflows/l0_cals_only.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tests/local_trial_workflows/l0_to_l1.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tests/local_trial_workflows/linearize_only.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tests/local_trial_workflows/local_trial_helpers.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tests/test_assemble_movie.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tests/test_assemble_qualilty.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tests/test_bad_pixel_maps.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tests/test_ci_beam_boundaries.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tests/test_ci_science.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tests/test_corrections.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tests/test_cryo_base.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tests/test_cryo_constants.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tests/test_dark.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tests/test_gain.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tests/test_instrument_polarization.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tests/test_linearity_correction.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tests/test_make_movie_frames.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tests/test_parameters.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tests/test_quality.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tests/test_sp_beam_boundaries.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tests/test_sp_dispersion_axis_correction.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tests/test_sp_geometric.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tests/test_sp_make_movie_frames.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tests/test_sp_science.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tests/test_sp_solar.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tests/test_trial_create_quality_report.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tests/test_workflows.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/tests/test_write_l1.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/workflows/__init__.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/workflows/ci_l0_processing.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/workflows/sp_l0_processing.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp/workflows/trial_workflows.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp.egg-info/dependency_links.txt +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp.egg-info/requires.txt +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/dkist_processing_cryonirsp.egg-info/top_level.txt +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/docs/Makefile +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/docs/bad_pixel_calibration.rst +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/docs/beam_angle_calculation.rst +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/docs/beam_boundary_computation.rst +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/docs/changelog.rst +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/docs/ci_science_calibration.rst +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/docs/conf.py +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/docs/index.rst +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/docs/l0_to_l1_cryonirsp_ci-full-trial.rst +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/docs/l0_to_l1_cryonirsp_ci.rst +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/docs/l0_to_l1_cryonirsp_sp-full-trial.rst +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/docs/l0_to_l1_cryonirsp_sp.rst +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/docs/linearization.rst +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/docs/make.bat +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/docs/requirements.txt +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/docs/requirements_table.rst +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/docs/scientific_changelog.rst +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/docs/sp_science_calibration.rst +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/licenses/LICENSE.rst +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/pyproject.toml +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/science_towncrier.sh +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/setup.cfg +0 -0
- {dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/towncrier_science.toml +0 -0
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
v1.4.4 (2024-11-21)
|
|
2
|
+
===================
|
|
3
|
+
|
|
4
|
+
Misc
|
|
5
|
+
----
|
|
6
|
+
|
|
7
|
+
- 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>`__)
|
|
8
|
+
|
|
9
|
+
|
|
1
10
|
v1.4.3 (2024-11-21)
|
|
2
11
|
===================
|
|
3
12
|
|
|
@@ -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,
|
|
@@ -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()
|
|
@@ -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
|
|
File without changes
|
{dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/.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.4}/bitbucket-pipelines.yml
RENAMED
|
File without changes
|
|
File without changes
|
{dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/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
|
|
File without changes
|
|
File without changes
|
{dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/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.4}/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.4}/docs/l0_to_l1_cryonirsp_sp.rst
RENAMED
|
File without changes
|
{dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/docs/linearization.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/docs/requirements_table.rst
RENAMED
|
File without changes
|
{dkist_processing_cryonirsp-1.4.3 → dkist_processing_cryonirsp-1.4.4}/docs/scientific_changelog.rst
RENAMED
|
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.4}/towncrier_science.toml
RENAMED
|
File without changes
|