dkist-processing-cryonirsp 0.0.62__tar.gz → 0.0.64__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-0.0.62 → dkist_processing_cryonirsp-0.0.64}/CHANGELOG.rst +29 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/PKG-INFO +1 -1
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/__init__.py +1 -1
- dkist_processing_cryonirsp-0.0.64/dkist_processing_cryonirsp/config.py +12 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/models/tags.py +0 -18
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/parsers/modstates.py +2 -6
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tasks/assemble_movie.py +1 -1
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tasks/bad_pixel_map.py +1 -1
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tasks/beam_boundaries_base.py +1 -1
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tasks/ci_beam_boundaries.py +1 -1
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tasks/ci_science.py +1 -1
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tasks/dark.py +1 -1
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tasks/gain.py +1 -1
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tasks/instrument_polarization.py +12 -3
- dkist_processing_cryonirsp-0.0.64/dkist_processing_cryonirsp/tasks/l1_output_data.py +44 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tasks/linearity_correction.py +1 -1
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tasks/make_movie_frames.py +1 -1
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tasks/mixin/intermediate_frame.py +1 -1
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tasks/mixin/shift_measurements.py +1 -1
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tasks/quality_metrics.py +1 -1
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tasks/science_base.py +1 -1
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tasks/sp_beam_boundaries.py +1 -1
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tasks/sp_geometric.py +1 -1
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tasks/sp_science.py +1 -1
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tasks/sp_solar_gain.py +1 -1
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tasks/write_l1.py +1 -1
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tests/conftest.py +1 -1
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tests/header_models.py +12 -6
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tests/local_trial_workflows/l0_cals_only.py +1 -1
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tests/local_trial_workflows/l0_to_l1.py +4 -1
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tests/local_trial_workflows/local_trial_helpers.py +63 -8
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tests/test_assemble_qualilty.py +7 -2
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tests/test_bad_pixel_maps.py +1 -1
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tests/test_instrument_polarization.py +3 -3
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tests/test_parse.py +97 -57
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tests/test_trial_output_data.py +2 -3
- dkist_processing_cryonirsp-0.0.64/dkist_processing_cryonirsp/workflows/__init__.py +2 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp.egg-info/PKG-INFO +1 -1
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp.egg-info/SOURCES.txt +1 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp.egg-info/requires.txt +5 -5
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/setup.cfg +4 -4
- dkist_processing_cryonirsp-0.0.62/dkist_processing_cryonirsp/tasks/l1_output_data.py +0 -22
- dkist_processing_cryonirsp-0.0.62/dkist_processing_cryonirsp/workflows/__init__.py +0 -9
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/.gitignore +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/.pre-commit-config.yaml +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/.readthedocs.yml +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/README.rst +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/SCIENCE_CHANGELOG.rst +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/bitbucket-pipelines.yml +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/changelog/.gitempty +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/check_changelog_updated.sh +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/models/__init__.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/models/constants.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/models/exposure_conditions.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/models/parameters.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/models/task_name.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/parsers/__init__.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/parsers/cryonirsp_l0_fits_access.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/parsers/cryonirsp_l1_fits_access.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/parsers/exposure_conditions.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/parsers/map_repeats.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/parsers/measurements.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/parsers/optical_density_filters.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/parsers/polarimetric_check.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/parsers/scan_step.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/parsers/time.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/parsers/wavelength.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tasks/__init__.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tasks/cryonirsp_base.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tasks/mixin/__init__.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tasks/mixin/beam_access.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tasks/mixin/corrections.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tasks/mixin/linearized_frame.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tasks/parse.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tasks/trial_output_data.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tests/__init__.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tests/local_trial_workflows/__init__.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tests/local_trial_workflows/linearize_only.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tests/test_assemble_movie.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tests/test_ci_beam_boundaries.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tests/test_ci_science.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tests/test_corrections.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tests/test_cryo_base.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tests/test_cryo_constants.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tests/test_dark.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tests/test_gain.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tests/test_linearity_correction.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tests/test_make_movie_frames.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tests/test_parameters.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tests/test_quality.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tests/test_sp_beam_boundaries.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tests/test_sp_geometric.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tests/test_sp_make_movie_frames.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tests/test_sp_science.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tests/test_sp_solar.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tests/test_trial_create_quality_report.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tests/test_workflows.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/tests/test_write_l1.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/workflows/ci_l0_processing.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/workflows/sp_l0_processing.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp/workflows/trial_workflows.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp.egg-info/dependency_links.txt +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/dkist_processing_cryonirsp.egg-info/top_level.txt +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/docs/Makefile +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/docs/bad_pixel_calibration.rst +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/docs/beam_angle_calculation.rst +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/docs/beam_boundary_computation.rst +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/docs/changelog.rst +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/docs/ci_science_calibration.rst +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/docs/conf.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/docs/index.rst +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/docs/l0_to_l1_cryonirsp_ci.rst +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/docs/l0_to_l1_cryonirsp_sp.rst +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/docs/linearization.rst +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/docs/make.bat +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/docs/requirements.txt +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/docs/requirements_table.rst +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/docs/scientific_changelog.rst +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/docs/sp_science_calibration.rst +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/licenses/LICENSE.rst +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/pyproject.toml +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/science_towncrier.sh +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/setup.py +0 -0
- {dkist_processing_cryonirsp-0.0.62 → dkist_processing_cryonirsp-0.0.64}/towncrier_science.toml +0 -0
|
@@ -1,3 +1,32 @@
|
|
|
1
|
+
v0.0.64 (2024-06-03)
|
|
2
|
+
====================
|
|
3
|
+
|
|
4
|
+
Misc
|
|
5
|
+
----
|
|
6
|
+
|
|
7
|
+
- Resolve matplotlib version conflict (`#127 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/127>`__)
|
|
8
|
+
- Upgrade the version of dkist-processing-common which brings along various major version upgrades to libraries associated with Pydantic 2. (`#128 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/128>`__)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
v0.0.63 (2024-05-20)
|
|
12
|
+
====================
|
|
13
|
+
|
|
14
|
+
Bugfixes
|
|
15
|
+
--------
|
|
16
|
+
|
|
17
|
+
- Polcal fit/modulation matrix quality metrics are now correctly rendered in quality report. (`#125 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/125>`__)
|
|
18
|
+
- Correctly render L0 quality metrics (individual frame and dataset average and RMS values for dark, lamp, and solar frames).
|
|
19
|
+
Previously these had been missing from quality reports of polarimetric datasets. (`#125 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/125>`__)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
Misc
|
|
23
|
+
----
|
|
24
|
+
|
|
25
|
+
- Remove `CryoStemName.modstate` and `CryonirspTag.modstate`. Both of these already exist in `*-common` and can be used directly from there. (`#125 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/125>`__)
|
|
26
|
+
- Update `dkist-processing-common` to v6.2.4. This fixes a bug that could cause the quality report to fail to render if
|
|
27
|
+
the demodulation matrices were fit with the (very old) "use_M12" fit mode. (`#126 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/126>`__)
|
|
28
|
+
|
|
29
|
+
|
|
1
30
|
v0.0.62 (2024-05-16)
|
|
2
31
|
====================
|
|
3
32
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"""Init."""
|
|
2
|
-
from dkist_service_configuration import logger # first import to set logging.BasicConfig
|
|
2
|
+
from dkist_service_configuration.logging import logger # first import to set logging.BasicConfig
|
|
3
3
|
from pkg_resources import DistributionNotFound
|
|
4
4
|
from pkg_resources import get_distribution
|
|
5
5
|
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"""Configuration for the dkist-processing-cryonirsp package and the logging thereof."""
|
|
2
|
+
from dkist_processing_common.config import DKISTProcessingCommonConfiguration
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class DKISTProcessingCryoNIRSPConfigurations(DKISTProcessingCommonConfiguration):
|
|
6
|
+
"""Configurations custom to the dkist-processing-cryonirsp package."""
|
|
7
|
+
|
|
8
|
+
pass # nothing custom yet
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
dkist_processing_cryonirsp_configurations = DKISTProcessingCryoNIRSPConfigurations()
|
|
12
|
+
dkist_processing_cryonirsp_configurations.log_configurations()
|
|
@@ -3,7 +3,6 @@ from enum import Enum
|
|
|
3
3
|
|
|
4
4
|
from dkist_processing_common.models.tags import StemName
|
|
5
5
|
from dkist_processing_common.models.tags import Tag
|
|
6
|
-
from dkist_processing_common.models.task_name import TaskName
|
|
7
6
|
|
|
8
7
|
from dkist_processing_cryonirsp.models.exposure_conditions import ExposureConditions
|
|
9
8
|
from dkist_processing_cryonirsp.models.task_name import CryonirspTaskName
|
|
@@ -18,7 +17,6 @@ class CryonirspStemName(str, Enum):
|
|
|
18
17
|
curr_frame_in_ramp = "CURR_FRAME_IN_RAMP"
|
|
19
18
|
time_obs = "TIME_OBS"
|
|
20
19
|
meas_num = "MEAS_NUM"
|
|
21
|
-
modstate = "MODSTATE"
|
|
22
20
|
map_scan = "MAP_SCAN"
|
|
23
21
|
exposure_conditions = "EXPOSURE_CONDITIONS"
|
|
24
22
|
|
|
@@ -74,22 +72,6 @@ class CryonirspTag(Tag):
|
|
|
74
72
|
"""
|
|
75
73
|
return cls.format_tag(CryonirspStemName.map_scan, map_scan)
|
|
76
74
|
|
|
77
|
-
@classmethod
|
|
78
|
-
def modstate(cls, modstate: int) -> str:
|
|
79
|
-
"""
|
|
80
|
-
Tags by the current modstate number.
|
|
81
|
-
|
|
82
|
-
Parameters
|
|
83
|
-
----------
|
|
84
|
-
modstate
|
|
85
|
-
The current scan step number
|
|
86
|
-
|
|
87
|
-
Returns
|
|
88
|
-
-------
|
|
89
|
-
The formatted tag string
|
|
90
|
-
"""
|
|
91
|
-
return cls.format_tag(CryonirspStemName.modstate, modstate)
|
|
92
|
-
|
|
93
75
|
@classmethod
|
|
94
76
|
def linearized(cls) -> str:
|
|
95
77
|
"""
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
from typing import Type
|
|
3
3
|
|
|
4
4
|
from dkist_processing_common.models.flower_pot import SpilledDirt
|
|
5
|
+
from dkist_processing_common.models.tags import StemName
|
|
5
6
|
from dkist_processing_common.parsers.single_value_single_key_flower import (
|
|
6
7
|
SingleValueSingleKeyFlower,
|
|
7
8
|
)
|
|
8
9
|
|
|
9
|
-
from dkist_processing_cryonirsp.models.tags import CryonirspStemName
|
|
10
10
|
from dkist_processing_cryonirsp.parsers.cryonirsp_l0_fits_access import CryonirspL0FitsAccess
|
|
11
11
|
|
|
12
12
|
|
|
@@ -14,9 +14,7 @@ class ModstateNumberFlower(SingleValueSingleKeyFlower):
|
|
|
14
14
|
"""Flower for a modstate number."""
|
|
15
15
|
|
|
16
16
|
def __init__(self):
|
|
17
|
-
super().__init__(
|
|
18
|
-
tag_stem_name=CryonirspStemName.modstate.value, metadata_key="modulator_state"
|
|
19
|
-
)
|
|
17
|
+
super().__init__(tag_stem_name=StemName.modstate.value, metadata_key="modulator_state")
|
|
20
18
|
|
|
21
19
|
def setter(self, fits_obj: CryonirspL0FitsAccess) -> Type[SpilledDirt] | int:
|
|
22
20
|
"""
|
|
@@ -27,8 +25,6 @@ class ModstateNumberFlower(SingleValueSingleKeyFlower):
|
|
|
27
25
|
fits_obj:
|
|
28
26
|
A single FitsAccess object
|
|
29
27
|
"""
|
|
30
|
-
if fits_obj.ip_task_type != "observe" and fits_obj.ip_task_type != "polcal":
|
|
31
|
-
return SpilledDirt
|
|
32
28
|
# Some intensity data incorrectly has modulator state = 0
|
|
33
29
|
if getattr(fits_obj, self.metadata_key) == 0:
|
|
34
30
|
return 1
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import numpy as np
|
|
3
3
|
from dkist_processing_common.codecs.fits import fits_array_decoder
|
|
4
4
|
from dkist_processing_common.tasks import AssembleMovie
|
|
5
|
-
from dkist_service_configuration import logger
|
|
5
|
+
from dkist_service_configuration.logging import logger
|
|
6
6
|
from PIL import ImageDraw
|
|
7
7
|
from PIL.ImageFont import FreeTypeFont
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import numpy as np
|
|
3
3
|
import scipy.ndimage as spnd
|
|
4
4
|
from dkist_processing_math.statistics import average_numpy_arrays
|
|
5
|
-
from dkist_service_configuration import logger
|
|
5
|
+
from dkist_service_configuration.logging import logger
|
|
6
6
|
|
|
7
7
|
from dkist_processing_cryonirsp.models.tags import CryonirspTag
|
|
8
8
|
from dkist_processing_cryonirsp.models.task_name import CryonirspTaskName
|
|
@@ -4,7 +4,7 @@ from dataclasses import dataclass
|
|
|
4
4
|
|
|
5
5
|
import numpy as np
|
|
6
6
|
from dkist_processing_math.statistics import average_numpy_arrays
|
|
7
|
-
from dkist_service_configuration import logger
|
|
7
|
+
from dkist_service_configuration.logging import logger
|
|
8
8
|
from largestinteriorrectangle import lir
|
|
9
9
|
from skimage import filters
|
|
10
10
|
from skimage.exposure import rescale_intensity
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"""Cryonirsp CI beam boundaries task."""
|
|
2
2
|
import largestinteriorrectangle as lir
|
|
3
3
|
import numpy as np
|
|
4
|
-
from dkist_service_configuration import logger
|
|
4
|
+
from dkist_service_configuration.logging import logger
|
|
5
5
|
|
|
6
6
|
from dkist_processing_cryonirsp.tasks.beam_boundaries_base import BeamBoundariesCalibrationBase
|
|
7
7
|
from dkist_processing_cryonirsp.tasks.beam_boundaries_base import BeamBoundary
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"""Cryonirsp CI science calibration task."""
|
|
2
2
|
from collections import defaultdict
|
|
3
3
|
|
|
4
|
-
from dkist_service_configuration import logger
|
|
4
|
+
from dkist_service_configuration.logging import logger
|
|
5
5
|
|
|
6
6
|
from dkist_processing_cryonirsp.models.exposure_conditions import ExposureConditions
|
|
7
7
|
from dkist_processing_cryonirsp.models.tags import CryonirspTag
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"""CryoNIRSP dark calibration task."""
|
|
2
2
|
from dkist_processing_common.models.task_name import TaskName
|
|
3
3
|
from dkist_processing_math.statistics import average_numpy_arrays
|
|
4
|
-
from dkist_service_configuration import logger
|
|
4
|
+
from dkist_service_configuration.logging import logger
|
|
5
5
|
|
|
6
6
|
from dkist_processing_cryonirsp.models.tags import CryonirspTag
|
|
7
7
|
from dkist_processing_cryonirsp.tasks.cryonirsp_base import CryonirspTaskBase
|
|
@@ -6,7 +6,7 @@ import numpy as np
|
|
|
6
6
|
from dkist_processing_common.models.task_name import TaskName
|
|
7
7
|
from dkist_processing_math.arithmetic import subtract_array_from_arrays
|
|
8
8
|
from dkist_processing_math.statistics import average_numpy_arrays
|
|
9
|
-
from dkist_service_configuration import logger
|
|
9
|
+
from dkist_service_configuration.logging import logger
|
|
10
10
|
|
|
11
11
|
from dkist_processing_cryonirsp.models.exposure_conditions import ExposureConditions
|
|
12
12
|
from dkist_processing_cryonirsp.models.tags import CryonirspTag
|
|
@@ -13,7 +13,7 @@ from dkist_processing_math.transform.binning import resize_arrays
|
|
|
13
13
|
from dkist_processing_pac.fitter.polcal_fitter import PolcalFitter
|
|
14
14
|
from dkist_processing_pac.input_data.drawer import Drawer
|
|
15
15
|
from dkist_processing_pac.input_data.dresser import Dresser
|
|
16
|
-
from dkist_service_configuration import logger
|
|
16
|
+
from dkist_service_configuration.logging import logger
|
|
17
17
|
|
|
18
18
|
from dkist_processing_cryonirsp.models.exposure_conditions import ExposureConditions
|
|
19
19
|
from dkist_processing_cryonirsp.models.tags import CryonirspTag
|
|
@@ -23,6 +23,15 @@ from dkist_processing_cryonirsp.tasks.cryonirsp_base import CryonirspTaskBase
|
|
|
23
23
|
__all__ = ["CIInstrumentPolarizationCalibration", "SPInstrumentPolarizationCalibration"]
|
|
24
24
|
|
|
25
25
|
|
|
26
|
+
def generate_polcal_quality_label(arm: str, beam: int) -> str:
|
|
27
|
+
"""
|
|
28
|
+
Make a quality label given an arm and beam.
|
|
29
|
+
|
|
30
|
+
Defined here so we don't have to remember what our labels are in the L1 output data task.
|
|
31
|
+
"""
|
|
32
|
+
return f"{arm} Beam {beam}"
|
|
33
|
+
|
|
34
|
+
|
|
26
35
|
class InstrumentPolarizationCalibrationBase(CryonirspTaskBase, ABC):
|
|
27
36
|
"""
|
|
28
37
|
Base task class for instrument polarization for a CryoNIRSP calibration run.
|
|
@@ -402,7 +411,7 @@ class CIInstrumentPolarizationCalibration(InstrumentPolarizationCalibrationBase)
|
|
|
402
411
|
"""Record various quality metrics from PolCal fits."""
|
|
403
412
|
self.quality_store_polcal_results(
|
|
404
413
|
polcal_fitter=polcal_fitter,
|
|
405
|
-
label=
|
|
414
|
+
label=generate_polcal_quality_label(arm="CI", beam=beam),
|
|
406
415
|
bins_1=self.parameters.polcal_num_spatial_bins,
|
|
407
416
|
bins_2=self.parameters.polcal_num_spatial_bins,
|
|
408
417
|
bin_1_type="spatial",
|
|
@@ -421,7 +430,7 @@ class SPInstrumentPolarizationCalibration(InstrumentPolarizationCalibrationBase)
|
|
|
421
430
|
"""Record various quality metrics from PolCal fits."""
|
|
422
431
|
self.quality_store_polcal_results(
|
|
423
432
|
polcal_fitter=polcal_fitter,
|
|
424
|
-
label=
|
|
433
|
+
label=generate_polcal_quality_label(arm="SP", beam=beam),
|
|
425
434
|
bins_1=self.parameters.polcal_num_spatial_bins,
|
|
426
435
|
bins_2=self.parameters.polcal_num_spectral_bins,
|
|
427
436
|
bin_1_type="spatial",
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"""Subclasses of AssembleQualityData that cause the correct polcal metrics to build."""
|
|
2
|
+
from typing import Type
|
|
3
|
+
|
|
4
|
+
from dkist_processing_common.models.constants import ConstantsBase
|
|
5
|
+
from dkist_processing_common.tasks import AssembleQualityData
|
|
6
|
+
|
|
7
|
+
__all__ = ["CIAssembleQualityData", "SPAssembleQualityData"]
|
|
8
|
+
|
|
9
|
+
from dkist_processing_cryonirsp.models.constants import CryonirspConstants
|
|
10
|
+
from dkist_processing_cryonirsp.tasks.instrument_polarization import generate_polcal_quality_label
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class CIAssembleQualityData(AssembleQualityData):
|
|
14
|
+
"""Subclass just so that the polcal_label_list can be populated."""
|
|
15
|
+
|
|
16
|
+
@property
|
|
17
|
+
def constants_model_class(self) -> Type[CryonirspConstants]:
|
|
18
|
+
"""Grab the Cryo constants so we can have the number of beams."""
|
|
19
|
+
return CryonirspConstants
|
|
20
|
+
|
|
21
|
+
@property
|
|
22
|
+
def polcal_label_list(self) -> list[str]:
|
|
23
|
+
"""Return label(s) for Cryo CI."""
|
|
24
|
+
return [
|
|
25
|
+
generate_polcal_quality_label(arm="CI", beam=beam)
|
|
26
|
+
for beam in range(1, self.constants.num_beams + 1)
|
|
27
|
+
]
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class SPAssembleQualityData(AssembleQualityData):
|
|
31
|
+
"""Subclass just so that the polcal_label_list can be populated."""
|
|
32
|
+
|
|
33
|
+
@property
|
|
34
|
+
def constants_model_class(self) -> Type[CryonirspConstants]:
|
|
35
|
+
"""Grab the Cryo constants so we can have the number of beams."""
|
|
36
|
+
return CryonirspConstants
|
|
37
|
+
|
|
38
|
+
@property
|
|
39
|
+
def polcal_label_list(self) -> list[str]:
|
|
40
|
+
"""Return labels for beams 1 and 2."""
|
|
41
|
+
return [
|
|
42
|
+
generate_polcal_quality_label(arm="SP", beam=beam)
|
|
43
|
+
for beam in range(1, self.constants.num_beams + 1)
|
|
44
|
+
]
|
|
@@ -7,7 +7,7 @@ from astropy.io import fits
|
|
|
7
7
|
from dkist_processing_common.codecs.fits import fits_access_decoder
|
|
8
8
|
from dkist_processing_common.codecs.fits import fits_array_encoder
|
|
9
9
|
from dkist_processing_common.codecs.fits import fits_hdulist_encoder
|
|
10
|
-
from dkist_service_configuration import logger
|
|
10
|
+
from dkist_service_configuration.logging import logger
|
|
11
11
|
from numba import njit
|
|
12
12
|
from numba import prange
|
|
13
13
|
|
|
@@ -7,7 +7,7 @@ from astropy.io import fits
|
|
|
7
7
|
from astropy.visualization import ZScaleInterval
|
|
8
8
|
from dkist_processing_common.codecs.fits import fits_access_decoder
|
|
9
9
|
from dkist_processing_common.codecs.fits import fits_hdulist_encoder
|
|
10
|
-
from dkist_service_configuration import logger
|
|
10
|
+
from dkist_service_configuration.logging import logger
|
|
11
11
|
|
|
12
12
|
from dkist_processing_cryonirsp.models.tags import CryonirspTag
|
|
13
13
|
from dkist_processing_cryonirsp.parsers.cryonirsp_l1_fits_access import CryonirspL1FitsAccess
|
|
@@ -6,7 +6,7 @@ import numpy as np
|
|
|
6
6
|
from astropy.io import fits
|
|
7
7
|
from dkist_processing_common.codecs.fits import fits_hdu_decoder
|
|
8
8
|
from dkist_processing_common.codecs.fits import fits_hdulist_encoder
|
|
9
|
-
from dkist_service_configuration import logger
|
|
9
|
+
from dkist_service_configuration.logging import logger
|
|
10
10
|
|
|
11
11
|
from dkist_processing_cryonirsp.models.exposure_conditions import ExposureConditions
|
|
12
12
|
from dkist_processing_cryonirsp.models.tags import CryonirspTag
|
|
@@ -9,7 +9,7 @@ from dkist_processing_common.codecs.fits import fits_access_decoder
|
|
|
9
9
|
from dkist_processing_common.parsers.quality import L1QualityFitsAccess
|
|
10
10
|
from dkist_processing_common.tasks import QualityL0Metrics
|
|
11
11
|
from dkist_processing_common.tasks.mixin.quality import QualityMixin
|
|
12
|
-
from dkist_service_configuration import logger
|
|
12
|
+
from dkist_service_configuration.logging import logger
|
|
13
13
|
|
|
14
14
|
from dkist_processing_cryonirsp.models.constants import CryonirspConstants
|
|
15
15
|
from dkist_processing_cryonirsp.models.tags import CryonirspTag
|
|
@@ -14,7 +14,7 @@ from dkist_processing_math.arithmetic import divide_arrays_by_array
|
|
|
14
14
|
from dkist_processing_math.arithmetic import subtract_array_from_arrays
|
|
15
15
|
from dkist_processing_math.statistics import average_numpy_arrays
|
|
16
16
|
from dkist_processing_pac.optics.telescope import Telescope
|
|
17
|
-
from dkist_service_configuration import logger
|
|
17
|
+
from dkist_service_configuration.logging import logger
|
|
18
18
|
|
|
19
19
|
from dkist_processing_cryonirsp.models.exposure_conditions import ExposureConditions
|
|
20
20
|
from dkist_processing_cryonirsp.models.tags import CryonirspTag
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import math
|
|
3
3
|
|
|
4
4
|
import numpy as np
|
|
5
|
-
from dkist_service_configuration import logger
|
|
5
|
+
from dkist_service_configuration.logging import logger
|
|
6
6
|
|
|
7
7
|
from dkist_processing_cryonirsp.tasks.beam_boundaries_base import BeamBoundariesCalibrationBase
|
|
8
8
|
from dkist_processing_cryonirsp.tasks.beam_boundaries_base import BeamBoundary
|
|
@@ -8,7 +8,7 @@ from dkist_processing_common.models.task_name import TaskName
|
|
|
8
8
|
from dkist_processing_math.arithmetic import divide_arrays_by_array
|
|
9
9
|
from dkist_processing_math.arithmetic import subtract_array_from_arrays
|
|
10
10
|
from dkist_processing_math.statistics import average_numpy_arrays
|
|
11
|
-
from dkist_service_configuration import logger
|
|
11
|
+
from dkist_service_configuration.logging import logger
|
|
12
12
|
from scipy.optimize import minimize
|
|
13
13
|
|
|
14
14
|
from dkist_processing_cryonirsp.models.tags import CryonirspTag
|
|
@@ -4,7 +4,7 @@ from collections import defaultdict
|
|
|
4
4
|
import numpy as np
|
|
5
5
|
from astropy.io import fits
|
|
6
6
|
from dkist_processing_math.statistics import average_numpy_arrays
|
|
7
|
-
from dkist_service_configuration import logger
|
|
7
|
+
from dkist_service_configuration.logging import logger
|
|
8
8
|
|
|
9
9
|
from dkist_processing_cryonirsp.models.exposure_conditions import ExposureConditions
|
|
10
10
|
from dkist_processing_cryonirsp.models.tags import CryonirspTag
|
|
@@ -5,7 +5,7 @@ from dkist_processing_common.models.task_name import TaskName
|
|
|
5
5
|
from dkist_processing_math.arithmetic import divide_arrays_by_array
|
|
6
6
|
from dkist_processing_math.arithmetic import subtract_array_from_arrays
|
|
7
7
|
from dkist_processing_math.statistics import average_numpy_arrays
|
|
8
|
-
from dkist_service_configuration import logger
|
|
8
|
+
from dkist_service_configuration.logging import logger
|
|
9
9
|
from scipy import signal
|
|
10
10
|
|
|
11
11
|
from dkist_processing_cryonirsp.models.exposure_conditions import ExposureConditions
|
|
@@ -9,7 +9,7 @@ import numpy as np
|
|
|
9
9
|
from astropy.io import fits
|
|
10
10
|
from dkist_processing_common.models.wavelength import WavelengthRange
|
|
11
11
|
from dkist_processing_common.tasks import WriteL1Frame
|
|
12
|
-
from dkist_service_configuration import logger
|
|
12
|
+
from dkist_service_configuration.logging import logger
|
|
13
13
|
|
|
14
14
|
from dkist_processing_cryonirsp.models.constants import CryonirspConstants
|
|
15
15
|
|
|
@@ -284,7 +284,7 @@ def cryonirsp_testing_parameters_factory(
|
|
|
284
284
|
class CryonirspTestingParameters:
|
|
285
285
|
cryonirsp_polcal_num_spatial_bins: int = 1
|
|
286
286
|
cryonirsp_polcal_num_spectral_bins: int = 1
|
|
287
|
-
cryonirsp_polcal_pac_fit_mode: str = "
|
|
287
|
+
cryonirsp_polcal_pac_fit_mode: str = "use_M12_I_sys_per_step"
|
|
288
288
|
cryonirsp_polcal_pac_init_set: str = "OCCal_VIS"
|
|
289
289
|
cryonirsp_geo_upsample_factor: int = 100
|
|
290
290
|
cryonirsp_geo_max_shift: int = 80
|
|
@@ -372,10 +372,12 @@ class ModulatedLampGainHeaders(SimpleModulatedHeaders):
|
|
|
372
372
|
exposure_condition: ExposureConditions,
|
|
373
373
|
start_date: str = "2023-01-01T01:23:45",
|
|
374
374
|
modstate_length_sec: float = 0.5,
|
|
375
|
+
num_modstates: int = 1,
|
|
376
|
+
modstate: int = 1,
|
|
375
377
|
):
|
|
376
378
|
super().__init__(
|
|
377
|
-
num_modstates=
|
|
378
|
-
modstate=
|
|
379
|
+
num_modstates=num_modstates,
|
|
380
|
+
modstate=modstate,
|
|
379
381
|
array_shape=array_shape,
|
|
380
382
|
task="gain",
|
|
381
383
|
exposure_condition=exposure_condition,
|
|
@@ -403,10 +405,12 @@ class ModulatedSolarGainHeaders(SimpleModulatedHeaders):
|
|
|
403
405
|
exposure_condition: ExposureConditions,
|
|
404
406
|
start_date: str = "2023-01-01T01:23:45",
|
|
405
407
|
modstate_length_sec: float = 0.5,
|
|
408
|
+
num_modstates: int = 1,
|
|
409
|
+
modstate: int = 1,
|
|
406
410
|
):
|
|
407
411
|
super().__init__(
|
|
408
|
-
num_modstates=
|
|
409
|
-
modstate=
|
|
412
|
+
num_modstates=num_modstates,
|
|
413
|
+
modstate=modstate,
|
|
410
414
|
array_shape=array_shape,
|
|
411
415
|
task="gain",
|
|
412
416
|
exposure_condition=exposure_condition,
|
|
@@ -436,10 +440,12 @@ class ModulatedDarkHeaders(SimpleModulatedHeaders):
|
|
|
436
440
|
exposure_condition: ExposureConditions,
|
|
437
441
|
start_date: str = "2023-01-01T01:23:45",
|
|
438
442
|
modstate_length_sec: float = 0.5,
|
|
443
|
+
num_modstates: int = 1,
|
|
444
|
+
modstate: int = 1,
|
|
439
445
|
):
|
|
440
446
|
super().__init__(
|
|
441
|
-
num_modstates=
|
|
442
|
-
modstate=
|
|
447
|
+
num_modstates=num_modstates,
|
|
448
|
+
modstate=modstate,
|
|
443
449
|
array_shape=array_shape,
|
|
444
450
|
task="dark",
|
|
445
451
|
exposure_condition=exposure_condition,
|
|
@@ -9,7 +9,7 @@ from astropy.io import fits
|
|
|
9
9
|
from dkist_processing_common.manual import ManualProcessing
|
|
10
10
|
from dkist_processing_common.models.constants import BudName
|
|
11
11
|
from dkist_processing_common.tasks import WorkflowTaskBase
|
|
12
|
-
from dkist_service_configuration import logger
|
|
12
|
+
from dkist_service_configuration.logging import logger
|
|
13
13
|
|
|
14
14
|
from dkist_processing_cryonirsp.models.constants import CryonirspBudName
|
|
15
15
|
from dkist_processing_cryonirsp.models.tags import CryonirspTag
|
|
@@ -11,7 +11,7 @@ from dkist_processing_common.tasks import CreateTrialAsdf
|
|
|
11
11
|
from dkist_processing_common.tasks import CreateTrialQualityReport
|
|
12
12
|
from dkist_processing_common.tasks import QualityL1Metrics
|
|
13
13
|
from dkist_processing_common.tasks import WorkflowTaskBase
|
|
14
|
-
from dkist_service_configuration import logger
|
|
14
|
+
from dkist_service_configuration.logging import logger
|
|
15
15
|
|
|
16
16
|
from dkist_processing_cryonirsp.models.constants import CryonirspBudName
|
|
17
17
|
from dkist_processing_cryonirsp.models.tags import CryonirspTag
|
|
@@ -406,12 +406,15 @@ def main(
|
|
|
406
406
|
)
|
|
407
407
|
else:
|
|
408
408
|
raise ValueError(f"Did not recognize {arm_id = }")
|
|
409
|
+
|
|
409
410
|
manual_processing_run.run_task(task=QualityL1Metrics)
|
|
410
411
|
manual_processing_run.run_task(task=CryonirspL1QualityMetrics)
|
|
412
|
+
|
|
411
413
|
if arm_id == "SP":
|
|
412
414
|
manual_processing_run.run_task(task=SPAssembleQualityData)
|
|
413
415
|
elif arm_id == "CI":
|
|
414
416
|
manual_processing_run.run_task(task=CIAssembleQualityData)
|
|
417
|
+
|
|
415
418
|
manual_processing_run.run_task(task=ValidateL1Output)
|
|
416
419
|
|
|
417
420
|
if transfer_trial_data:
|
|
@@ -11,7 +11,7 @@ from dkist_header_validator import spec122_validator
|
|
|
11
11
|
from dkist_processing_common.models.task_name import TaskName
|
|
12
12
|
from dkist_processing_common.tasks import WorkflowTaskBase
|
|
13
13
|
from dkist_processing_common.tasks.mixin.globus import GlobusTransferItem
|
|
14
|
-
from dkist_service_configuration import logger
|
|
14
|
+
from dkist_service_configuration.logging import logger
|
|
15
15
|
|
|
16
16
|
from dkist_processing_cryonirsp.models.tags import CryonirspTag
|
|
17
17
|
from dkist_processing_cryonirsp.models.task_name import CryonirspTaskName
|
|
@@ -171,15 +171,24 @@ class SaveTaskTags(WorkflowTaskBase):
|
|
|
171
171
|
def relative_save_file(self) -> str:
|
|
172
172
|
return "default_sav.asdf"
|
|
173
173
|
|
|
174
|
+
@property
|
|
175
|
+
def tag_lists_to_save(self) -> list[list[str]] | list[str]:
|
|
176
|
+
return [[CryonirspTag.task(self.task_str), CryonirspTag.intermediate()]]
|
|
177
|
+
|
|
174
178
|
def run(self):
|
|
175
179
|
file_tag_dict = dict()
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
180
|
+
tag_list_list = self.tag_lists_to_save
|
|
181
|
+
if isinstance(tag_list_list[0], str):
|
|
182
|
+
tag_list_list = [tag_list_list]
|
|
183
|
+
|
|
184
|
+
for tags_to_save in tag_list_list:
|
|
185
|
+
path_list = self.read(tags=tags_to_save)
|
|
186
|
+
save_dir = self.scratch.workflow_base_path / Path(self.relative_save_file).stem
|
|
187
|
+
save_dir.mkdir(exist_ok=True)
|
|
188
|
+
for p in path_list:
|
|
189
|
+
copied_path = shutil.copy(str(p), save_dir)
|
|
190
|
+
tags = self.tags(p)
|
|
191
|
+
file_tag_dict[copied_path] = tags
|
|
183
192
|
|
|
184
193
|
full_save_file = self.scratch.workflow_base_path / self.relative_save_file
|
|
185
194
|
tree = {"file_tag_dict": file_tag_dict}
|
|
@@ -216,6 +225,14 @@ class SaveGeometricCal(WorkflowTaskBase):
|
|
|
216
225
|
tags=[CryonirspTag.task_geometric_sepectral_shifts(), CryonirspTag.intermediate()]
|
|
217
226
|
)
|
|
218
227
|
)
|
|
228
|
+
path_list += list(
|
|
229
|
+
self.read(
|
|
230
|
+
tags=[
|
|
231
|
+
CryonirspTag.quality("TASK_TYPES"),
|
|
232
|
+
CryonirspTag.workflow_task("SPGeometricCalibration"),
|
|
233
|
+
]
|
|
234
|
+
)
|
|
235
|
+
)
|
|
219
236
|
save_dir = self.scratch.workflow_base_path / Path(relative_save_file).stem
|
|
220
237
|
save_dir.mkdir(exist_ok=True)
|
|
221
238
|
for p in path_list:
|
|
@@ -277,6 +294,12 @@ class SaveDarkCal(SaveTaskTags):
|
|
|
277
294
|
def relative_save_file(self) -> str:
|
|
278
295
|
return "dark_cal.asdf"
|
|
279
296
|
|
|
297
|
+
@property
|
|
298
|
+
def tag_lists_to_save(self) -> list[list[str]]:
|
|
299
|
+
return super().tag_lists_to_save + [
|
|
300
|
+
[CryonirspTag.quality("TASK_TYPES"), CryonirspTag.workflow_task("DarkCalibration")]
|
|
301
|
+
]
|
|
302
|
+
|
|
280
303
|
|
|
281
304
|
class LoadDarkCal(LoadTaskTags):
|
|
282
305
|
@property
|
|
@@ -293,6 +316,12 @@ class SaveLampCal(SaveTaskTags):
|
|
|
293
316
|
def relative_save_file(self) -> str:
|
|
294
317
|
return "lamp_cal.asdf"
|
|
295
318
|
|
|
319
|
+
@property
|
|
320
|
+
def tag_lists_to_save(self) -> list[list[str]]:
|
|
321
|
+
return super().tag_lists_to_save + [
|
|
322
|
+
[CryonirspTag.quality("TASK_TYPES"), CryonirspTag.workflow_task("LampGainCalibration")],
|
|
323
|
+
]
|
|
324
|
+
|
|
296
325
|
|
|
297
326
|
class LoadLampCal(LoadTaskTags):
|
|
298
327
|
@property
|
|
@@ -309,6 +338,19 @@ class SaveSolarCal(SaveTaskTags):
|
|
|
309
338
|
def relative_save_file(self) -> str:
|
|
310
339
|
return "solar_cal.asdf"
|
|
311
340
|
|
|
341
|
+
@property
|
|
342
|
+
def tag_lists_to_save(self) -> list[list[str]]:
|
|
343
|
+
return super().tag_lists_to_save + [
|
|
344
|
+
[
|
|
345
|
+
CryonirspTag.quality("TASK_TYPES"),
|
|
346
|
+
CryonirspTag.workflow_task("CISolarGainCalibration"),
|
|
347
|
+
],
|
|
348
|
+
[
|
|
349
|
+
CryonirspTag.quality("TASK_TYPES"),
|
|
350
|
+
CryonirspTag.workflow_task("SPSolarGainCalibration"),
|
|
351
|
+
],
|
|
352
|
+
]
|
|
353
|
+
|
|
312
354
|
|
|
313
355
|
class LoadSolarCal(LoadTaskTags):
|
|
314
356
|
@property
|
|
@@ -325,6 +367,19 @@ class SaveInstPolCal(SaveTaskTags):
|
|
|
325
367
|
def relative_save_file(self) -> str:
|
|
326
368
|
return "inst_pol_cal.asdf"
|
|
327
369
|
|
|
370
|
+
@property
|
|
371
|
+
def tag_lists_to_save(self) -> list[list[str]]:
|
|
372
|
+
return super().tag_lists_to_save + [
|
|
373
|
+
[
|
|
374
|
+
CryonirspTag.quality("TASK_TYPES"),
|
|
375
|
+
CryonirspTag.workflow_task("CIInstrumentPolarizationCalibration"),
|
|
376
|
+
],
|
|
377
|
+
[
|
|
378
|
+
CryonirspTag.quality("TASK_TYPES"),
|
|
379
|
+
CryonirspTag.workflow_task("SPInstrumentPolarizationCalibration"),
|
|
380
|
+
],
|
|
381
|
+
]
|
|
382
|
+
|
|
328
383
|
|
|
329
384
|
class LoadInstPolCal(LoadTaskTags):
|
|
330
385
|
@property
|
|
@@ -21,8 +21,13 @@ from dkist_processing_cryonirsp.tests.conftest import CryonirspConstantsDb
|
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
@pytest.fixture(scope="function", params=["CI", "SP"])
|
|
24
|
-
def cryo_assemble_quality_data_task(
|
|
24
|
+
def cryo_assemble_quality_data_task(
|
|
25
|
+
tmp_path, recipe_run_id, init_cryonirsp_constants_db, request
|
|
26
|
+
) -> AssembleQualityData:
|
|
25
27
|
arm_id = request.param
|
|
28
|
+
init_cryonirsp_constants_db(
|
|
29
|
+
recipe_run_id=recipe_run_id, constants_obj=CryonirspConstantsDb(ARM_ID=arm_id)
|
|
30
|
+
)
|
|
26
31
|
if arm_id == "CI":
|
|
27
32
|
with CIAssembleQualityData(
|
|
28
33
|
recipe_run_id=recipe_run_id,
|
|
@@ -228,7 +233,7 @@ def quality_metrics(dataframe_json) -> list[Metric]:
|
|
|
228
233
|
"bin_1_str": "bin1",
|
|
229
234
|
"bin_2_str": "bin2",
|
|
230
235
|
"total_bins": 100,
|
|
231
|
-
"
|
|
236
|
+
"num_varied_I_sys": 2,
|
|
232
237
|
},
|
|
233
238
|
["QUALITY_POLCAL_LOCAL_PAR_VALS", "QUALITY_TASK_CI BEAM 1"],
|
|
234
239
|
),
|