dkist-processing-cryonirsp 0.0.59__tar.gz → 0.0.60__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.59 → dkist_processing_cryonirsp-0.0.60}/CHANGELOG.rst +9 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/PKG-INFO +2 -1
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tasks/l1_output_data.py +5 -5
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tasks/trial_output_data.py +6 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tests/local_trial_workflows/l0_cals_only.py +10 -11
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tests/local_trial_workflows/l0_to_l1.py +29 -70
- dkist_processing_cryonirsp-0.0.60/dkist_processing_cryonirsp/tests/test_assemble_qualilty.py +515 -0
- dkist_processing_cryonirsp-0.0.60/dkist_processing_cryonirsp/tests/test_trial_create_quality_report.py +79 -0
- dkist_processing_cryonirsp-0.0.60/dkist_processing_cryonirsp/tests/test_trial_output_data.py +252 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/workflows/ci_l0_processing.py +5 -5
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/workflows/sp_l0_processing.py +5 -5
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/workflows/trial_workflows.py +66 -4
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp.egg-info/PKG-INFO +2 -1
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp.egg-info/SOURCES.txt +2 -2
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp.egg-info/requires.txt +5 -1
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/setup.cfg +4 -1
- dkist_processing_cryonirsp-0.0.59/dkist_processing_cryonirsp/tests/test_build_quality_report.py +0 -99
- dkist_processing_cryonirsp-0.0.59/dkist_processing_cryonirsp/tests/test_submit_qualilty.py +0 -59
- dkist_processing_cryonirsp-0.0.59/dkist_processing_cryonirsp/tests/test_trial_output_data.py +0 -157
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/.gitignore +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/.pre-commit-config.yaml +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/.readthedocs.yml +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/README.rst +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/SCIENCE_CHANGELOG.rst +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/bitbucket-pipelines.yml +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/changelog/.gitempty +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/check_changelog_updated.sh +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/__init__.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/models/__init__.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/models/constants.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/models/exposure_conditions.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/models/parameters.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/models/tags.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/models/task_name.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/parsers/__init__.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/parsers/cryonirsp_l0_fits_access.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/parsers/cryonirsp_l1_fits_access.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/parsers/exposure_conditions.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/parsers/map_repeats.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/parsers/measurements.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/parsers/modstates.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/parsers/optical_density_filters.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/parsers/polarimetric_check.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/parsers/scan_step.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/parsers/time.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/parsers/wavelength.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tasks/__init__.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tasks/assemble_movie.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tasks/bad_pixel_map.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tasks/beam_boundaries_base.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tasks/ci_beam_boundaries.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tasks/ci_science.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tasks/cryonirsp_base.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tasks/dark.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tasks/gain.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tasks/instrument_polarization.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tasks/linearity_correction.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tasks/make_movie_frames.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tasks/mixin/__init__.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tasks/mixin/beam_access.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tasks/mixin/corrections.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tasks/mixin/intermediate_frame.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tasks/mixin/linearized_frame.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tasks/mixin/shift_measurements.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tasks/parse.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tasks/quality_metrics.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tasks/science_base.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tasks/sp_beam_boundaries.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tasks/sp_geometric.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tasks/sp_science.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tasks/sp_solar_gain.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tasks/write_l1.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tests/__init__.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tests/conftest.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tests/header_models.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tests/local_trial_workflows/__init__.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tests/local_trial_workflows/linearize_only.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tests/local_trial_workflows/local_trial_helpers.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tests/test_assemble_movie.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tests/test_bad_pixel_maps.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tests/test_ci_beam_boundaries.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tests/test_ci_science.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tests/test_corrections.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tests/test_cryo_base.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tests/test_cryo_constants.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tests/test_dark.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tests/test_gain.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tests/test_instrument_polarization.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tests/test_linearity_correction.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tests/test_make_movie_frames.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tests/test_parameters.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tests/test_parse.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tests/test_quality.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tests/test_sp_beam_boundaries.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tests/test_sp_geometric.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tests/test_sp_make_movie_frames.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tests/test_sp_science.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tests/test_sp_solar.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tests/test_workflows.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/tests/test_write_l1.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp/workflows/__init__.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp.egg-info/dependency_links.txt +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/dkist_processing_cryonirsp.egg-info/top_level.txt +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/docs/Makefile +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/docs/bad_pixel_calibration.rst +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/docs/beam_angle_calculation.rst +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/docs/beam_boundary_computation.rst +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/docs/changelog.rst +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/docs/ci_science_calibration.rst +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/docs/conf.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/docs/index.rst +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/docs/l0_to_l1_cryonirsp_ci.rst +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/docs/l0_to_l1_cryonirsp_sp.rst +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/docs/linearization.rst +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/docs/make.bat +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/docs/requirements.txt +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/docs/requirements_table.rst +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/docs/scientific_changelog.rst +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/docs/sp_science_calibration.rst +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/licenses/LICENSE.rst +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/pyproject.toml +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/science_towncrier.sh +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/setup.py +0 -0
- {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.60}/towncrier_science.toml +0 -0
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
v0.0.60 (2024-05-07)
|
|
2
|
+
====================
|
|
3
|
+
|
|
4
|
+
Features
|
|
5
|
+
--------
|
|
6
|
+
|
|
7
|
+
- Add the ability to create a quality report from a trial workflow. (`#121 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/121>`__)
|
|
8
|
+
|
|
9
|
+
|
|
1
10
|
v0.0.59 (2024-05-06)
|
|
2
11
|
====================
|
|
3
12
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: dkist_processing_cryonirsp
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.60
|
|
4
4
|
Summary: Science processing code for the Cryo-NIRSP instrument on DKIST
|
|
5
5
|
Home-page: https://bitbucket.org/dkistdc/dkist_processing_cryonirsp/src/main/
|
|
6
6
|
Author: NSO / AURA
|
|
@@ -13,6 +13,7 @@ Requires-Python: >=3.11
|
|
|
13
13
|
Provides-Extra: test
|
|
14
14
|
Provides-Extra: inventory
|
|
15
15
|
Provides-Extra: asdf
|
|
16
|
+
Provides-Extra: quality
|
|
16
17
|
Provides-Extra: grogu
|
|
17
18
|
Provides-Extra: docs
|
|
18
19
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
"""Subclasses of
|
|
2
|
-
from dkist_processing_common.tasks import
|
|
1
|
+
"""Subclasses of AssembleQualityData that cause the correct polcal metrics to build."""
|
|
2
|
+
from dkist_processing_common.tasks import AssembleQualityData
|
|
3
3
|
|
|
4
|
-
__all__ = ["
|
|
4
|
+
__all__ = ["CIAssembleQualityData", "SPAssembleQualityData"]
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
class
|
|
7
|
+
class CIAssembleQualityData(AssembleQualityData):
|
|
8
8
|
"""Subclass just so that the polcal_label_list can be populated."""
|
|
9
9
|
|
|
10
10
|
@property
|
|
@@ -13,7 +13,7 @@ class CISubmitQuality(SubmitQuality):
|
|
|
13
13
|
return ["CI Beam 1"]
|
|
14
14
|
|
|
15
15
|
|
|
16
|
-
class
|
|
16
|
+
class SPAssembleQualityData(AssembleQualityData):
|
|
17
17
|
"""Subclass just so that the polcal_label_list can be populated."""
|
|
18
18
|
|
|
19
19
|
@property
|
|
@@ -52,4 +52,10 @@ class TransferCryoTrialData(TransferTrialDataBase):
|
|
|
52
52
|
if self.output_asdf_switch:
|
|
53
53
|
transfer_list += self.build_output_asdf_transfer_list()
|
|
54
54
|
|
|
55
|
+
if self.output_quality_report_switch:
|
|
56
|
+
transfer_list += self.build_output_quality_report_transfer_list()
|
|
57
|
+
|
|
58
|
+
if self.output_quality_data_switch:
|
|
59
|
+
transfer_list += self.build_output_quality_data_transfer_list()
|
|
60
|
+
|
|
55
61
|
return transfer_list
|
|
@@ -89,21 +89,20 @@ try:
|
|
|
89
89
|
from dkist_inventory.asdf_generator import dataset_from_fits
|
|
90
90
|
|
|
91
91
|
INV = True
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
92
|
+
except ModuleNotFoundError:
|
|
93
|
+
logger.warning(
|
|
94
|
+
"Could not load dkist-inventory. CreateTrialDatasetInventory and CreateTrialAsdf require dkist-inventory."
|
|
95
|
+
)
|
|
96
96
|
|
|
97
|
-
|
|
97
|
+
QUALITY = False
|
|
98
98
|
try:
|
|
99
|
-
|
|
100
|
-
from quality_report_maker.libraries.json_encoder import datetime_json_object_hook
|
|
101
|
-
from quality_report_maker.libraries.json_encoder import DatetimeEncoder
|
|
99
|
+
import dkist_quality
|
|
102
100
|
|
|
103
|
-
|
|
101
|
+
QUALITY = True
|
|
104
102
|
except ModuleNotFoundError:
|
|
105
|
-
logger.warning("Could not
|
|
106
|
-
|
|
103
|
+
logger.warning("Could not load dkist-quality. CreateTrialQualityReport requires dkist-quality.")
|
|
104
|
+
|
|
105
|
+
if QUALITY:
|
|
107
106
|
import matplotlib.pyplot as plt
|
|
108
107
|
|
|
109
108
|
plt.ioff()
|
|
@@ -7,6 +7,8 @@ from pathlib import Path
|
|
|
7
7
|
from astropy.io import fits
|
|
8
8
|
from dkist_header_validator import spec214_validator
|
|
9
9
|
from dkist_processing_common.manual import ManualProcessing
|
|
10
|
+
from dkist_processing_common.tasks import CreateTrialAsdf
|
|
11
|
+
from dkist_processing_common.tasks import CreateTrialQualityReport
|
|
10
12
|
from dkist_processing_common.tasks import QualityL1Metrics
|
|
11
13
|
from dkist_processing_common.tasks import WorkflowTaskBase
|
|
12
14
|
from dkist_service_configuration import logger
|
|
@@ -27,7 +29,8 @@ from dkist_processing_cryonirsp.tasks.instrument_polarization import (
|
|
|
27
29
|
from dkist_processing_cryonirsp.tasks.instrument_polarization import (
|
|
28
30
|
SPInstrumentPolarizationCalibration,
|
|
29
31
|
)
|
|
30
|
-
from dkist_processing_cryonirsp.tasks.l1_output_data import
|
|
32
|
+
from dkist_processing_cryonirsp.tasks.l1_output_data import CIAssembleQualityData
|
|
33
|
+
from dkist_processing_cryonirsp.tasks.l1_output_data import SPAssembleQualityData
|
|
31
34
|
from dkist_processing_cryonirsp.tasks.linearity_correction import LinearityCorrection
|
|
32
35
|
from dkist_processing_cryonirsp.tasks.make_movie_frames import MakeCryonirspMovieFrames
|
|
33
36
|
from dkist_processing_cryonirsp.tasks.parse import ParseL0CryonirspLinearizedData
|
|
@@ -101,21 +104,20 @@ try:
|
|
|
101
104
|
from dkist_inventory.asdf_generator import dataset_from_fits
|
|
102
105
|
|
|
103
106
|
INV = True
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
107
|
+
except ModuleNotFoundError:
|
|
108
|
+
logger.warning(
|
|
109
|
+
"Could not load dkist-inventory. CreateTrialDatasetInventory and CreateTrialAsdf require dkist-inventory."
|
|
110
|
+
)
|
|
108
111
|
|
|
109
|
-
|
|
112
|
+
QUALITY = False
|
|
110
113
|
try:
|
|
111
|
-
|
|
112
|
-
from quality_report_maker.libraries.json_encoder import datetime_json_object_hook
|
|
113
|
-
from quality_report_maker.libraries.json_encoder import DatetimeEncoder
|
|
114
|
+
import dkist_quality
|
|
114
115
|
|
|
115
|
-
|
|
116
|
+
QUALITY = True
|
|
116
117
|
except ModuleNotFoundError:
|
|
117
|
-
logger.warning("Could not
|
|
118
|
-
|
|
118
|
+
logger.warning("Could not load dkist-quality. CreateTrialQualityReport requires dkist-quality.")
|
|
119
|
+
|
|
120
|
+
if QUALITY:
|
|
119
121
|
import matplotlib.pyplot as plt
|
|
120
122
|
|
|
121
123
|
plt.ioff()
|
|
@@ -168,29 +170,6 @@ class ShowExposureConditions(CryonirspTaskBase):
|
|
|
168
170
|
logger.info(f"{self.constants.observe_exposure_conditions_list = }")
|
|
169
171
|
|
|
170
172
|
|
|
171
|
-
class SubmitAndExposeQuality(SPSubmitQuality):
|
|
172
|
-
"""A direct copy paste of SumbitQuality with an additional step of writing the report to disk"""
|
|
173
|
-
|
|
174
|
-
def run(self):
|
|
175
|
-
# To make sure the subclassing worked
|
|
176
|
-
super().run()
|
|
177
|
-
|
|
178
|
-
# Now regenerate the report str and save it
|
|
179
|
-
if QRM:
|
|
180
|
-
logger.info("Building quality report for save to disk")
|
|
181
|
-
report_str = self.quality_build_report(polcal_label_list=self.polcal_label_list)
|
|
182
|
-
|
|
183
|
-
doc_path = self.scratch.workflow_base_path / "quality_report.json"
|
|
184
|
-
report_container = {
|
|
185
|
-
"datasetId": self.constants.dataset_id,
|
|
186
|
-
"qualityReport": json.dumps(report_str, cls=DatetimeEncoder),
|
|
187
|
-
}
|
|
188
|
-
json_str = json.dumps(report_container)
|
|
189
|
-
with open(doc_path, "w") as f:
|
|
190
|
-
f.write(json_str)
|
|
191
|
-
logger.info(f"Wrote report to {doc_path}")
|
|
192
|
-
|
|
193
|
-
|
|
194
173
|
class ValidateL1Output(CryonirspTaskBase):
|
|
195
174
|
def run(self) -> None:
|
|
196
175
|
files = self.read(tags=[CryonirspTag.output(), CryonirspTag.frame()])
|
|
@@ -311,38 +290,6 @@ def SP_workflow(
|
|
|
311
290
|
manual_processing_run.run_task(task=AssembleCryonirspMovie)
|
|
312
291
|
|
|
313
292
|
|
|
314
|
-
def make_pdf_report(scratch_path: str, recipe_run_id: int) -> None:
|
|
315
|
-
if not QRM:
|
|
316
|
-
logger.info("Did NOT make quality report pdf because quality_report_maker is not installed")
|
|
317
|
-
return
|
|
318
|
-
|
|
319
|
-
json_file = os.path.join(scratch_path, str(recipe_run_id), "quality_report.json")
|
|
320
|
-
pdf_file = os.path.join(scratch_path, str(recipe_run_id), "quality_report.pdf")
|
|
321
|
-
with open(json_file, "r") as f:
|
|
322
|
-
report_container = json.load(f)
|
|
323
|
-
dataset_id = report_container["datasetId"]
|
|
324
|
-
report_str = json.loads(
|
|
325
|
-
report_container["qualityReport"], object_hook=datetime_json_object_hook
|
|
326
|
-
)
|
|
327
|
-
|
|
328
|
-
pdf_bytes = report.format_report(report_str, f"GROGU_TEST_{dataset_id}")
|
|
329
|
-
with open(pdf_file, "wb") as f:
|
|
330
|
-
f.write(pdf_bytes)
|
|
331
|
-
|
|
332
|
-
logger.info(f"Wrote quality report PDF to {pdf_file}")
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
def make_dataset_asdf(recipe_run_id, scratch_path):
|
|
336
|
-
if not INV:
|
|
337
|
-
logger.warning("Did NOT make dataset asdf file because dkist_inventory is not installed")
|
|
338
|
-
return
|
|
339
|
-
|
|
340
|
-
output_dir = os.path.join(scratch_path, str(recipe_run_id))
|
|
341
|
-
asdf_name = f"dataset_{recipe_run_id:03n}.asdf"
|
|
342
|
-
logger.info(f"Creating ASDF file from {output_dir} and saving to {asdf_name}")
|
|
343
|
-
dataset_from_fits(output_dir, asdf_name, hdu=1)
|
|
344
|
-
|
|
345
|
-
|
|
346
293
|
def main(
|
|
347
294
|
scratch_path: str,
|
|
348
295
|
suffix: str = "FITS",
|
|
@@ -461,7 +408,10 @@ def main(
|
|
|
461
408
|
raise ValueError(f"Did not recognize {arm_id = }")
|
|
462
409
|
manual_processing_run.run_task(task=QualityL1Metrics)
|
|
463
410
|
manual_processing_run.run_task(task=CryonirspL1QualityMetrics)
|
|
464
|
-
|
|
411
|
+
if arm_id == "SP":
|
|
412
|
+
manual_processing_run.run_task(task=SPAssembleQualityData)
|
|
413
|
+
elif arm_id == "CI":
|
|
414
|
+
manual_processing_run.run_task(task=CIAssembleQualityData)
|
|
465
415
|
manual_processing_run.run_task(task=ValidateL1Output)
|
|
466
416
|
|
|
467
417
|
if transfer_trial_data:
|
|
@@ -477,8 +427,17 @@ def main(
|
|
|
477
427
|
manual_processing_run.run_task(transfer_local_task)
|
|
478
428
|
|
|
479
429
|
# Test some downstream services
|
|
480
|
-
|
|
481
|
-
|
|
430
|
+
if INV:
|
|
431
|
+
manual_processing_run.run_task(task=CreateTrialAsdf)
|
|
432
|
+
else:
|
|
433
|
+
logger.warning(
|
|
434
|
+
"Did NOT make dataset asdf file because the asdf generator is not installed"
|
|
435
|
+
)
|
|
436
|
+
|
|
437
|
+
if QUALITY:
|
|
438
|
+
manual_processing_run.run_task(task=CreateTrialQualityReport)
|
|
439
|
+
else:
|
|
440
|
+
logger.warning("Did NOT make quality report pdf because dkist-quality is not installed")
|
|
482
441
|
|
|
483
442
|
if any([load_dark, load_lamp, load_geometric, load_solar, load_inst_pol]):
|
|
484
443
|
logger.info("NOT counting provenance records because some tasks were skipped")
|