dkist-processing-cryonirsp 1.7.6__tar.gz → 1.7.7rc1__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.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/PKG-INFO +15 -14
- dkist_processing_cryonirsp-1.7.7rc1/changelog/190.misc.rst +1 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/models/parameters.py +6 -6
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tasks/cryonirsp_base.py +1 -3
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tasks/parse.py +2 -3
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tasks/sp_dispersion_axis_correction.py +1 -2
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tasks/write_l1.py +2 -3
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tests/conftest.py +69 -39
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tests/local_trial_workflows/local_trial_helpers.py +44 -14
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tests/test_bad_pixel_maps.py +1 -1
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tests/test_ci_beam_boundaries.py +1 -1
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tests/test_ci_science.py +1 -1
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tests/test_corrections.py +2 -3
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tests/test_cryo_base.py +1 -1
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tests/test_dark.py +2 -2
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tests/test_gain.py +2 -2
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tests/test_instrument_polarization.py +10 -4
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tests/test_linearity_correction.py +1 -1
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tests/test_parameters.py +16 -24
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tests/test_parse.py +1 -1
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tests/test_sp_beam_boundaries.py +1 -1
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tests/test_sp_dispersion_axis_correction.py +1 -1
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tests/test_sp_geometric.py +2 -2
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tests/test_sp_science.py +1 -1
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tests/test_sp_solar.py +1 -1
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp.egg-info/PKG-INFO +15 -14
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp.egg-info/SOURCES.txt +1 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp.egg-info/requires.txt +14 -13
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/pyproject.toml +16 -15
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/.gitignore +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/.pre-commit-config.yaml +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/.readthedocs.yml +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/.snyk +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/CHANGELOG.rst +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/README.rst +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/SCIENCE_CHANGELOG.rst +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/bitbucket-pipelines.yml +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/changelog/.gitempty +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/__init__.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/codecs/__init__.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/codecs/fits.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/config.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/models/__init__.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/models/beam_boundaries.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/models/constants.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/models/exposure_conditions.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/models/tags.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/models/task_name.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/parsers/__init__.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/parsers/check_for_gains.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/parsers/cryonirsp_l0_fits_access.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/parsers/cryonirsp_l1_fits_access.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/parsers/exposure_conditions.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/parsers/map_repeats.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/parsers/measurements.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/parsers/modstates.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/parsers/optical_density_filters.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/parsers/polarimetric_check.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/parsers/scan_step.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/parsers/time.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/parsers/wavelength.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tasks/__init__.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tasks/assemble_movie.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tasks/bad_pixel_map.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tasks/beam_boundaries_base.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tasks/ci_beam_boundaries.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tasks/ci_science.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tasks/dark.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tasks/gain.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tasks/instrument_polarization.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tasks/l1_output_data.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tasks/linearity_correction.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tasks/make_movie_frames.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tasks/mixin/__init__.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tasks/mixin/corrections.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tasks/mixin/shift_measurements.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tasks/quality_metrics.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tasks/science_base.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tasks/sp_beam_boundaries.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tasks/sp_geometric.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tasks/sp_science.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tasks/sp_solar_gain.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tests/__init__.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tests/header_models.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tests/local_trial_workflows/__init__.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tests/local_trial_workflows/l0_cals_only.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tests/local_trial_workflows/l0_to_l1.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tests/local_trial_workflows/linearize_only.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tests/test_assemble_movie.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tests/test_assemble_qualilty.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tests/test_cryo_constants.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tests/test_make_movie_frames.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tests/test_quality.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tests/test_sp_make_movie_frames.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tests/test_trial_create_quality_report.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tests/test_workflows.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/tests/test_write_l1.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/workflows/__init__.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/workflows/ci_l0_processing.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/workflows/sp_l0_processing.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp/workflows/trial_workflows.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp.egg-info/dependency_links.txt +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/dkist_processing_cryonirsp.egg-info/top_level.txt +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/docs/Makefile +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/docs/bad_pixel_calibration.rst +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/docs/beam_angle_calculation.rst +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/docs/beam_boundary_computation.rst +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/docs/changelog.rst +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/docs/ci_science_calibration.rst +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/docs/conf.py +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/docs/index.rst +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/docs/l0_to_l1_cryonirsp_ci-full-trial.rst +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/docs/l0_to_l1_cryonirsp_ci.rst +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/docs/l0_to_l1_cryonirsp_sp-full-trial.rst +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/docs/l0_to_l1_cryonirsp_sp.rst +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/docs/landing_page.rst +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/docs/linearization.rst +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/docs/make.bat +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/docs/requirements.txt +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/docs/requirements_table.rst +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/docs/scientific_changelog.rst +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/docs/sp_science_calibration.rst +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/licenses/LICENSE.rst +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/science_towncrier.sh +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/setup.cfg +0 -0
- {dkist_processing_cryonirsp-1.7.6 → dkist_processing_cryonirsp-1.7.7rc1}/towncrier_science.toml +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dkist-processing-cryonirsp
|
|
3
|
-
Version: 1.7.
|
|
3
|
+
Version: 1.7.7rc1
|
|
4
4
|
Summary: Science processing code for the Cryo-NIRSP instrument on DKIST
|
|
5
5
|
Author-email: NSO / AURA <dkistdc@nso.edu>
|
|
6
6
|
License: BSD-3-Clause
|
|
@@ -17,7 +17,7 @@ Requires-Dist: Pillow==10.4.0
|
|
|
17
17
|
Requires-Dist: astropy==7.0.2
|
|
18
18
|
Requires-Dist: dkist-fits-specifications==4.17.0
|
|
19
19
|
Requires-Dist: dkist-header-validator==5.2.1
|
|
20
|
-
Requires-Dist: dkist-processing-common==10.8.
|
|
20
|
+
Requires-Dist: dkist-processing-common==10.8.4rc1
|
|
21
21
|
Requires-Dist: dkist-processing-math==2.2.0
|
|
22
22
|
Requires-Dist: dkist-processing-pac==3.1.1
|
|
23
23
|
Requires-Dist: dkist-spectral-lines==3.0.0
|
|
@@ -88,7 +88,7 @@ Requires-Dist: WTForms==3.2.1; extra == "frozen"
|
|
|
88
88
|
Requires-Dist: Werkzeug==2.2.3; extra == "frozen"
|
|
89
89
|
Requires-Dist: aioftp==0.25.1; extra == "frozen"
|
|
90
90
|
Requires-Dist: aiohappyeyeballs==2.6.1; extra == "frozen"
|
|
91
|
-
Requires-Dist: aiohttp==3.12.
|
|
91
|
+
Requires-Dist: aiohttp==3.12.6; extra == "frozen"
|
|
92
92
|
Requires-Dist: aiosignal==1.3.2; extra == "frozen"
|
|
93
93
|
Requires-Dist: alembic==1.16.1; extra == "frozen"
|
|
94
94
|
Requires-Dist: amqp==5.3.1; extra == "frozen"
|
|
@@ -114,16 +114,16 @@ Requires-Dist: asdf_transform_schemas==0.6.0; extra == "frozen"
|
|
|
114
114
|
Requires-Dist: asgiref==3.8.1; extra == "frozen"
|
|
115
115
|
Requires-Dist: asteval==1.0.6; extra == "frozen"
|
|
116
116
|
Requires-Dist: astropy==7.0.2; extra == "frozen"
|
|
117
|
-
Requires-Dist: astropy-iers-data==0.2025.
|
|
117
|
+
Requires-Dist: astropy-iers-data==0.2025.6.2.0.38.23; extra == "frozen"
|
|
118
118
|
Requires-Dist: asyncpg==0.30.0; extra == "frozen"
|
|
119
119
|
Requires-Dist: attrs==25.3.0; extra == "frozen"
|
|
120
120
|
Requires-Dist: babel==2.17.0; extra == "frozen"
|
|
121
121
|
Requires-Dist: billiard==4.2.1; extra == "frozen"
|
|
122
122
|
Requires-Dist: blinker==1.9.0; extra == "frozen"
|
|
123
|
-
Requires-Dist: boto3==1.38.
|
|
124
|
-
Requires-Dist: botocore==1.38.
|
|
123
|
+
Requires-Dist: boto3==1.38.27; extra == "frozen"
|
|
124
|
+
Requires-Dist: botocore==1.38.27; extra == "frozen"
|
|
125
125
|
Requires-Dist: cachelib==0.13.0; extra == "frozen"
|
|
126
|
-
Requires-Dist: celery==5.5.
|
|
126
|
+
Requires-Dist: celery==5.5.3; extra == "frozen"
|
|
127
127
|
Requires-Dist: certifi==2025.4.26; extra == "frozen"
|
|
128
128
|
Requires-Dist: cffi==1.17.1; extra == "frozen"
|
|
129
129
|
Requires-Dist: charset-normalizer==3.4.2; extra == "frozen"
|
|
@@ -144,9 +144,9 @@ Requires-Dist: dacite==1.9.2; extra == "frozen"
|
|
|
144
144
|
Requires-Dist: decorator==5.2.1; extra == "frozen"
|
|
145
145
|
Requires-Dist: dill==0.4.0; extra == "frozen"
|
|
146
146
|
Requires-Dist: dkist-header-validator==5.2.1; extra == "frozen"
|
|
147
|
-
Requires-Dist: dkist-processing-common==10.8.
|
|
147
|
+
Requires-Dist: dkist-processing-common==10.8.4rc1; extra == "frozen"
|
|
148
148
|
Requires-Dist: dkist-processing-core==5.1.1; extra == "frozen"
|
|
149
|
-
Requires-Dist: dkist-processing-cryonirsp==1.7.
|
|
149
|
+
Requires-Dist: dkist-processing-cryonirsp==1.7.7rc1; extra == "frozen"
|
|
150
150
|
Requires-Dist: dkist-processing-math==2.2.0; extra == "frozen"
|
|
151
151
|
Requires-Dist: dkist-processing-pac==3.1.1; extra == "frozen"
|
|
152
152
|
Requires-Dist: dkist-service-configuration==2.2; extra == "frozen"
|
|
@@ -165,7 +165,8 @@ Requires-Dist: globus-sdk==3.56.1; extra == "frozen"
|
|
|
165
165
|
Requires-Dist: google-re2==1.1.20240702; extra == "frozen"
|
|
166
166
|
Requires-Dist: googleapis-common-protos==1.70.0; extra == "frozen"
|
|
167
167
|
Requires-Dist: gqlclient==1.2.3; extra == "frozen"
|
|
168
|
-
Requires-Dist:
|
|
168
|
+
Requires-Dist: greenlet==3.2.2; extra == "frozen"
|
|
169
|
+
Requires-Dist: grpcio==1.72.1; extra == "frozen"
|
|
169
170
|
Requires-Dist: gunicorn==23.0.0; extra == "frozen"
|
|
170
171
|
Requires-Dist: h11==0.16.0; extra == "frozen"
|
|
171
172
|
Requires-Dist: httpcore==1.0.9; extra == "frozen"
|
|
@@ -182,7 +183,7 @@ Requires-Dist: jsonschema==4.24.0; extra == "frozen"
|
|
|
182
183
|
Requires-Dist: jsonschema-specifications==2025.4.1; extra == "frozen"
|
|
183
184
|
Requires-Dist: jupyter_core==5.8.1; extra == "frozen"
|
|
184
185
|
Requires-Dist: kiwisolver==1.4.8; extra == "frozen"
|
|
185
|
-
Requires-Dist: kombu==5.5.
|
|
186
|
+
Requires-Dist: kombu==5.5.4; extra == "frozen"
|
|
186
187
|
Requires-Dist: largestinteriorrectangle==0.2.1; extra == "frozen"
|
|
187
188
|
Requires-Dist: lazy-object-proxy==1.11.0; extra == "frozen"
|
|
188
189
|
Requires-Dist: lazy_loader==0.4; extra == "frozen"
|
|
@@ -229,7 +230,7 @@ Requires-Dist: platformdirs==4.3.8; extra == "frozen"
|
|
|
229
230
|
Requires-Dist: pluggy==1.6.0; extra == "frozen"
|
|
230
231
|
Requires-Dist: prison==0.2.1; extra == "frozen"
|
|
231
232
|
Requires-Dist: proglog==0.1.12; extra == "frozen"
|
|
232
|
-
Requires-Dist: prometheus_client==0.22.
|
|
233
|
+
Requires-Dist: prometheus_client==0.22.1; extra == "frozen"
|
|
233
234
|
Requires-Dist: prompt_toolkit==3.0.51; extra == "frozen"
|
|
234
235
|
Requires-Dist: propcache==0.3.1; extra == "frozen"
|
|
235
236
|
Requires-Dist: protobuf==5.29.5; extra == "frozen"
|
|
@@ -273,12 +274,12 @@ Requires-Dist: talus==1.1.0; extra == "frozen"
|
|
|
273
274
|
Requires-Dist: tenacity==9.1.2; extra == "frozen"
|
|
274
275
|
Requires-Dist: termcolor==3.1.0; extra == "frozen"
|
|
275
276
|
Requires-Dist: text-unidecode==1.3; extra == "frozen"
|
|
276
|
-
Requires-Dist: tifffile==2025.
|
|
277
|
+
Requires-Dist: tifffile==2025.6.1; extra == "frozen"
|
|
277
278
|
Requires-Dist: tornado==6.5.1; extra == "frozen"
|
|
278
279
|
Requires-Dist: tqdm==4.67.1; extra == "frozen"
|
|
279
280
|
Requires-Dist: traitlets==5.14.3; extra == "frozen"
|
|
280
281
|
Requires-Dist: typing-inspection==0.4.1; extra == "frozen"
|
|
281
|
-
Requires-Dist: typing_extensions==4.
|
|
282
|
+
Requires-Dist: typing_extensions==4.14.0; extra == "frozen"
|
|
282
283
|
Requires-Dist: tzdata==2025.2; extra == "frozen"
|
|
283
284
|
Requires-Dist: uc-micro-py==1.0.3; extra == "frozen"
|
|
284
285
|
Requires-Dist: uncertainties==3.2.3; extra == "frozen"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Remove use of input dataset mixin imported from dkist-processing-common.
|
|
@@ -136,8 +136,8 @@ class CryonirspParameters(ParameterBase, ParameterWavelengthMixin, ParameterArmI
|
|
|
136
136
|
@cached_property
|
|
137
137
|
def linearization_thresholds(self) -> np.ndarray:
|
|
138
138
|
"""Name of parameter associated with the linearization thresholds."""
|
|
139
|
-
|
|
140
|
-
value = self._load_param_value_from_numpy_save(
|
|
139
|
+
param_obj = self._find_parameter_for_arm("cryonirsp_linearization_thresholds")
|
|
140
|
+
value = self._load_param_value_from_numpy_save(param_obj=param_obj)
|
|
141
141
|
# float64 data can blow up the memory required for linearization - convert to float32
|
|
142
142
|
if np.issubdtype(value.dtype, np.float64):
|
|
143
143
|
value = value.astype(np.float32, casting="same_kind")
|
|
@@ -275,8 +275,8 @@ class CryonirspParameters(ParameterBase, ParameterWavelengthMixin, ParameterArmI
|
|
|
275
275
|
- wavelength in nanometers
|
|
276
276
|
- transmission at given wavelength
|
|
277
277
|
"""
|
|
278
|
-
|
|
279
|
-
return self._load_param_value_from_numpy_save(
|
|
278
|
+
param_obj = self._find_most_recent_past_value("cryonirsp_solar_atlas")
|
|
279
|
+
return self._load_param_value_from_numpy_save(param_obj=param_obj)
|
|
280
280
|
|
|
281
281
|
@cached_property
|
|
282
282
|
def telluric_atlas(self) -> np.ndarray:
|
|
@@ -286,5 +286,5 @@ class CryonirspParameters(ParameterBase, ParameterWavelengthMixin, ParameterArmI
|
|
|
286
286
|
- wavelength in nanometers
|
|
287
287
|
- transmission at given wavelength
|
|
288
288
|
"""
|
|
289
|
-
|
|
290
|
-
return self._load_param_value_from_numpy_save(
|
|
289
|
+
param_obj = self._find_most_recent_past_value("cryonirsp_telluric_atlas")
|
|
290
|
+
return self._load_param_value_from_numpy_save(param_obj=param_obj)
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
from abc import ABC
|
|
3
3
|
|
|
4
4
|
from dkist_processing_common.tasks import WorkflowTaskBase
|
|
5
|
-
from dkist_processing_common.tasks.mixin.input_dataset import InputDatasetMixin
|
|
6
5
|
from dkist_processing_common.tasks.mixin.quality import QualityMixin
|
|
7
6
|
|
|
8
7
|
from dkist_processing_cryonirsp.models.constants import CryonirspConstants
|
|
@@ -12,7 +11,6 @@ from dkist_processing_cryonirsp.tasks.mixin.corrections import CorrectionsMixin
|
|
|
12
11
|
|
|
13
12
|
class CryonirspTaskBase(
|
|
14
13
|
WorkflowTaskBase,
|
|
15
|
-
InputDatasetMixin,
|
|
16
14
|
CorrectionsMixin,
|
|
17
15
|
QualityMixin,
|
|
18
16
|
ABC,
|
|
@@ -50,7 +48,7 @@ class CryonirspTaskBase(
|
|
|
50
48
|
workflow_version=workflow_version,
|
|
51
49
|
)
|
|
52
50
|
self.parameters = CryonirspParameters(
|
|
53
|
-
self.
|
|
51
|
+
scratch=self.scratch,
|
|
54
52
|
obs_ip_start_time=self.constants.obs_ip_start_time,
|
|
55
53
|
wavelength=self.constants.wavelength,
|
|
56
54
|
arm_id=self.constants.arm_id,
|
|
@@ -20,7 +20,6 @@ from dkist_processing_common.parsers.unique_bud import UniqueBud
|
|
|
20
20
|
from dkist_processing_common.tasks import default_constant_bud_factory
|
|
21
21
|
from dkist_processing_common.tasks import default_tag_flower_factory
|
|
22
22
|
from dkist_processing_common.tasks import ParseDataBase
|
|
23
|
-
from dkist_processing_common.tasks.mixin.input_dataset import InputDatasetMixin
|
|
24
23
|
|
|
25
24
|
from dkist_processing_cryonirsp.models.constants import CryonirspBudName
|
|
26
25
|
from dkist_processing_cryonirsp.models.parameters import CryonirspParsingParameters
|
|
@@ -142,7 +141,7 @@ class ParseL0CryonirspRampData(ParseDataBase):
|
|
|
142
141
|
return [Tag.input(), Tag.frame()]
|
|
143
142
|
|
|
144
143
|
|
|
145
|
-
class ParseL0CryonirspLinearizedData(ParseDataBase
|
|
144
|
+
class ParseL0CryonirspLinearizedData(ParseDataBase):
|
|
146
145
|
"""
|
|
147
146
|
Parse linearity corrected CryoNIRSP input data to add common and Cryonirsp specific constants.
|
|
148
147
|
|
|
@@ -168,7 +167,7 @@ class ParseL0CryonirspLinearizedData(ParseDataBase, InputDatasetMixin):
|
|
|
168
167
|
workflow_name=workflow_name,
|
|
169
168
|
workflow_version=workflow_version,
|
|
170
169
|
)
|
|
171
|
-
self.parameters = CryonirspParsingParameters(self.
|
|
170
|
+
self.parameters = CryonirspParsingParameters(scratch=self.scratch)
|
|
172
171
|
|
|
173
172
|
@property
|
|
174
173
|
def fits_parsing_class(self):
|
|
@@ -10,7 +10,6 @@ from astropy.io import fits
|
|
|
10
10
|
from astropy.time import Time
|
|
11
11
|
from astropy.wcs import WCS
|
|
12
12
|
from dkist_processing_common.codecs.asdf import asdf_encoder
|
|
13
|
-
from dkist_processing_common.tasks.mixin.input_dataset import InputDatasetMixin
|
|
14
13
|
from dkist_service_configuration.logging import logger
|
|
15
14
|
from scipy.ndimage import gaussian_filter1d
|
|
16
15
|
from scipy.optimize import differential_evolution
|
|
@@ -26,7 +25,7 @@ from dkist_processing_cryonirsp.tasks.cryonirsp_base import CryonirspTaskBase
|
|
|
26
25
|
__all__ = ["SPDispersionAxisCorrection"]
|
|
27
26
|
|
|
28
27
|
|
|
29
|
-
class SPDispersionAxisCorrection(CryonirspTaskBase
|
|
28
|
+
class SPDispersionAxisCorrection(CryonirspTaskBase):
|
|
30
29
|
"""Task class for correcting the dispersion axis wavelength values.
|
|
31
30
|
|
|
32
31
|
Parameters
|
|
@@ -14,7 +14,6 @@ from astropy.time.core import Time
|
|
|
14
14
|
from dkist_processing_common.codecs.asdf import asdf_decoder
|
|
15
15
|
from dkist_processing_common.models.wavelength import WavelengthRange
|
|
16
16
|
from dkist_processing_common.tasks import WriteL1Frame
|
|
17
|
-
from dkist_processing_common.tasks.mixin.input_dataset import InputDatasetMixin
|
|
18
17
|
from sunpy.coordinates import GeocentricEarthEquatorial
|
|
19
18
|
from sunpy.coordinates import Helioprojective
|
|
20
19
|
|
|
@@ -25,7 +24,7 @@ from dkist_processing_cryonirsp.models.tags import CryonirspTag
|
|
|
25
24
|
__all__ = ["CIWriteL1Frame", "SPWriteL1Frame"]
|
|
26
25
|
|
|
27
26
|
|
|
28
|
-
class CryonirspWriteL1Frame(WriteL1Frame, ABC
|
|
27
|
+
class CryonirspWriteL1Frame(WriteL1Frame, ABC):
|
|
29
28
|
"""
|
|
30
29
|
Task class for writing out calibrated l1 CryoNIRSP frames.
|
|
31
30
|
|
|
@@ -51,7 +50,7 @@ class CryonirspWriteL1Frame(WriteL1Frame, ABC, InputDatasetMixin):
|
|
|
51
50
|
workflow_version=workflow_version,
|
|
52
51
|
)
|
|
53
52
|
self.parameters = CryonirspParameters(
|
|
54
|
-
self.
|
|
53
|
+
scratch=self.scratch,
|
|
55
54
|
obs_ip_start_time=self.constants.obs_ip_start_time,
|
|
56
55
|
wavelength=self.constants.wavelength,
|
|
57
56
|
arm_id=self.constants.arm_id,
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import json
|
|
2
|
-
import os
|
|
3
2
|
from collections.abc import Iterable
|
|
4
3
|
from dataclasses import asdict
|
|
5
4
|
from dataclasses import dataclass
|
|
6
5
|
from dataclasses import field
|
|
7
6
|
from dataclasses import is_dataclass
|
|
8
|
-
from pathlib import Path
|
|
9
7
|
from random import randint
|
|
10
8
|
from typing import Any
|
|
11
9
|
from typing import Callable
|
|
@@ -21,8 +19,15 @@ from dkist_data_simulator.spec122 import Spec122Dataset
|
|
|
21
19
|
from dkist_header_validator import spec122_validator
|
|
22
20
|
from dkist_header_validator.translator import sanitize_to_spec214_level1
|
|
23
21
|
from dkist_header_validator.translator import translate_spec122_to_spec214_l0
|
|
22
|
+
from dkist_processing_common.codecs.array import array_encoder
|
|
23
|
+
from dkist_processing_common.codecs.basemodel import basemodel_encoder
|
|
24
24
|
from dkist_processing_common.codecs.fits import fits_array_encoder
|
|
25
|
+
from dkist_processing_common.models.input_dataset import InputDatasetFilePointer
|
|
26
|
+
from dkist_processing_common.models.input_dataset import InputDatasetObject
|
|
27
|
+
from dkist_processing_common.models.input_dataset import InputDatasetPartDocumentList
|
|
25
28
|
from dkist_processing_common.tasks import WorkflowTaskBase
|
|
29
|
+
from pydantic import Field
|
|
30
|
+
from pydantic import model_validator
|
|
26
31
|
|
|
27
32
|
from dkist_processing_cryonirsp.models.constants import CryonirspConstants
|
|
28
33
|
from dkist_processing_cryonirsp.models.exposure_conditions import AllowableOpticalDensityFilterNames
|
|
@@ -250,58 +255,70 @@ class WavelengthParameter:
|
|
|
250
255
|
return hash((self.values, self.wavelength))
|
|
251
256
|
|
|
252
257
|
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
258
|
+
class FileObject(InputDatasetObject):
|
|
259
|
+
"""For files on disk, with attributes overridden to have defaults."""
|
|
260
|
+
|
|
261
|
+
bucket: str | None = None
|
|
262
|
+
object_key: str | None = None
|
|
263
|
+
|
|
264
|
+
def __hash__(self):
|
|
265
|
+
return hash((self.bucket, self.object_key, self.tag))
|
|
266
|
+
|
|
267
|
+
|
|
268
|
+
class FileParameter(InputDatasetFilePointer):
|
|
269
|
+
"""For parameters that are files, with additional attributes to make FileObjects."""
|
|
270
|
+
|
|
271
|
+
object_key: str | None = Field(
|
|
272
|
+
default="dummy_default_value", exclude=True
|
|
273
|
+
) # Not necessary, but useful for GROGU
|
|
274
|
+
file_pointer: FileObject = Field(default_factory=lambda: FileObject(), alias="__file__")
|
|
275
|
+
|
|
276
|
+
@model_validator(mode="after")
|
|
277
|
+
def _populate_file_object(self):
|
|
278
|
+
self.file_pointer = FileObject(
|
|
279
|
+
bucket="not_used_because_we_dont_transfer",
|
|
280
|
+
object_key=self.object_key,
|
|
281
|
+
tag=CryonirspTag.parameter((self.object_key)),
|
|
282
|
+
)
|
|
283
|
+
return self
|
|
268
284
|
|
|
269
285
|
|
|
270
286
|
# These constants are used to prevent name errors in _create_parameter_files
|
|
271
|
-
# and in CryonirspTestingParameters
|
|
287
|
+
# and in CryonirspTestingParameters.
|
|
272
288
|
LINEARIZATION_THRESHOLDS_CI = "cryonirsp_linearization_thresholds_ci.npy"
|
|
273
289
|
LINEARIZATION_THRESHOLDS_SP = "cryonirsp_linearization_thresholds_sp.npy"
|
|
274
290
|
SOLAR_ATLAS = "cryonirsp_solar_atlas.npy"
|
|
275
291
|
TELLURIC_ATLAS = "cryonirsp_telluric_atlas.npy"
|
|
276
292
|
|
|
277
293
|
|
|
278
|
-
def _create_parameter_files(
|
|
294
|
+
def _create_parameter_files(task: WorkflowTaskBase) -> None:
|
|
279
295
|
# linearization thresholds
|
|
280
296
|
thresh = np.ones((10, 10), dtype=np.float64) * 100.0
|
|
281
|
-
|
|
282
|
-
|
|
297
|
+
task.write(
|
|
298
|
+
data=thresh, tags=CryonirspTag.parameter(LINEARIZATION_THRESHOLDS_CI), encoder=array_encoder
|
|
299
|
+
)
|
|
300
|
+
task.write(
|
|
301
|
+
data=thresh, tags=CryonirspTag.parameter(LINEARIZATION_THRESHOLDS_SP), encoder=array_encoder
|
|
302
|
+
)
|
|
283
303
|
|
|
284
304
|
# solar and telluric atlases
|
|
285
305
|
atlas_wavelengths = range(300, 16600)
|
|
286
306
|
atlas_transmission = np.random.rand(16300)
|
|
287
307
|
atlas = [atlas_wavelengths, atlas_transmission]
|
|
288
|
-
|
|
289
|
-
|
|
308
|
+
task.write(data=atlas, tags=CryonirspTag.parameter(SOLAR_ATLAS), encoder=array_encoder)
|
|
309
|
+
task.write(data=atlas, tags=CryonirspTag.parameter(TELLURIC_ATLAS), encoder=array_encoder)
|
|
290
310
|
|
|
291
311
|
|
|
292
312
|
TestingParameters = TypeVar("TestingParameters", bound="CryonirspTestingParameters")
|
|
293
313
|
|
|
294
314
|
|
|
295
315
|
def cryonirsp_testing_parameters_factory(
|
|
296
|
-
|
|
316
|
+
task: WorkflowTaskBase, create_files: bool = True
|
|
297
317
|
) -> TestingParameters:
|
|
298
318
|
"""Create the InputDatasetParameterValue objects and write the parameter files."""
|
|
299
|
-
if isinstance(param_path, str):
|
|
300
|
-
param_path = Path(param_path)
|
|
301
|
-
absolute_path = param_path.absolute()
|
|
302
319
|
|
|
303
320
|
if create_files:
|
|
304
|
-
_create_parameter_files(
|
|
321
|
+
_create_parameter_files(task=task)
|
|
305
322
|
|
|
306
323
|
@dataclass
|
|
307
324
|
class CryonirspTestingParameters:
|
|
@@ -339,7 +356,7 @@ def cryonirsp_testing_parameters_factory(
|
|
|
339
356
|
cryonirsp_fringe_correction_lowpass_cutoff_period: float = 40.0
|
|
340
357
|
cryonirsp_linearization_thresholds_ci: FileParameter = field(
|
|
341
358
|
default_factory=lambda: FileParameter(
|
|
342
|
-
|
|
359
|
+
object_key=LINEARIZATION_THRESHOLDS_CI,
|
|
343
360
|
)
|
|
344
361
|
)
|
|
345
362
|
cryonirsp_linearization_polyfit_coeffs_ci: list[float] = field(
|
|
@@ -347,7 +364,7 @@ def cryonirsp_testing_parameters_factory(
|
|
|
347
364
|
)
|
|
348
365
|
cryonirsp_linearization_thresholds_sp: FileParameter = field(
|
|
349
366
|
default_factory=lambda: FileParameter(
|
|
350
|
-
|
|
367
|
+
object_key=LINEARIZATION_THRESHOLDS_SP,
|
|
351
368
|
)
|
|
352
369
|
)
|
|
353
370
|
cryonirsp_linearization_polyfit_coeffs_sp: list[float] = field(
|
|
@@ -364,10 +381,14 @@ def cryonirsp_testing_parameters_factory(
|
|
|
364
381
|
WavelengthParameter(values=(-4.26, -4.26, -4.26, -4.26))
|
|
365
382
|
)
|
|
366
383
|
cryonirsp_solar_atlas: FileParameter = field(
|
|
367
|
-
default_factory=lambda: FileParameter(
|
|
384
|
+
default_factory=lambda: FileParameter(
|
|
385
|
+
object_key=SOLAR_ATLAS,
|
|
386
|
+
)
|
|
368
387
|
)
|
|
369
388
|
cryonirsp_telluric_atlas: FileParameter = field(
|
|
370
|
-
default_factory=lambda: FileParameter(
|
|
389
|
+
default_factory=lambda: FileParameter(
|
|
390
|
+
object_key=TELLURIC_ATLAS,
|
|
391
|
+
)
|
|
371
392
|
)
|
|
372
393
|
cryonirsp_camera_mirror_focal_length_mm: float = 932.0
|
|
373
394
|
cryonirsp_pixel_pitch_micron: float = 18.0
|
|
@@ -387,11 +408,15 @@ def testing_obs_ip_start_time() -> str:
|
|
|
387
408
|
|
|
388
409
|
@pytest.fixture(scope="session")
|
|
389
410
|
def input_dataset_document_simple_parameters_part():
|
|
390
|
-
|
|
411
|
+
"""Convert a dataclass of parameterValues into an actual input dataset parameters part."""
|
|
412
|
+
|
|
413
|
+
def make_input_dataset_parameters_part(parameters):
|
|
391
414
|
parameters_list = []
|
|
392
415
|
|
|
393
416
|
value_id = randint(1000, 2000)
|
|
394
417
|
for pn, pv in asdict(parameters).items():
|
|
418
|
+
if isinstance(pv, FileParameter):
|
|
419
|
+
pv = pv.model_dump()
|
|
395
420
|
values = [
|
|
396
421
|
{
|
|
397
422
|
"parameterValueId": value_id,
|
|
@@ -403,7 +428,7 @@ def input_dataset_document_simple_parameters_part():
|
|
|
403
428
|
parameters_list.append(parameter)
|
|
404
429
|
return parameters_list
|
|
405
430
|
|
|
406
|
-
return
|
|
431
|
+
return make_input_dataset_parameters_part
|
|
407
432
|
|
|
408
433
|
|
|
409
434
|
@pytest.fixture(scope="session")
|
|
@@ -412,6 +437,8 @@ def assign_input_dataset_doc_to_task(
|
|
|
412
437
|
testing_wavelength,
|
|
413
438
|
testing_obs_ip_start_time,
|
|
414
439
|
):
|
|
440
|
+
"""Load the parameters the way that tasks load the parameters in task init."""
|
|
441
|
+
|
|
415
442
|
def update_task(
|
|
416
443
|
task,
|
|
417
444
|
parameters,
|
|
@@ -419,12 +446,15 @@ def assign_input_dataset_doc_to_task(
|
|
|
419
446
|
arm_id: str = "SP",
|
|
420
447
|
obs_ip_start_time=testing_obs_ip_start_time,
|
|
421
448
|
):
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
449
|
+
task.write(
|
|
450
|
+
data=InputDatasetPartDocumentList(
|
|
451
|
+
doc_list=input_dataset_document_simple_parameters_part(parameters)
|
|
452
|
+
),
|
|
453
|
+
tags=CryonirspTag.input_dataset_parameters(),
|
|
454
|
+
encoder=basemodel_encoder,
|
|
455
|
+
)
|
|
426
456
|
task.parameters = parameter_class(
|
|
427
|
-
task.
|
|
457
|
+
scratch=task.scratch,
|
|
428
458
|
wavelength=testing_wavelength,
|
|
429
459
|
arm_id=arm_id,
|
|
430
460
|
obs_ip_start_time=obs_ip_start_time,
|
|
@@ -8,6 +8,8 @@ from random import randint
|
|
|
8
8
|
import asdf
|
|
9
9
|
from astropy.io import fits
|
|
10
10
|
from dkist_header_validator import spec122_validator
|
|
11
|
+
from dkist_processing_common.codecs.basemodel import basemodel_encoder
|
|
12
|
+
from dkist_processing_common.models.input_dataset import InputDatasetPartDocumentList
|
|
11
13
|
from dkist_processing_common.models.task_name import TaskName
|
|
12
14
|
from dkist_processing_common.tasks import TransferTrialData
|
|
13
15
|
from dkist_processing_common.tasks import WorkflowTaskBase
|
|
@@ -18,7 +20,7 @@ from dkist_processing_cryonirsp.models.tags import CryonirspTag
|
|
|
18
20
|
from dkist_processing_cryonirsp.models.task_name import CryonirspTaskName
|
|
19
21
|
from dkist_processing_cryonirsp.tasks.cryonirsp_base import CryonirspTaskBase
|
|
20
22
|
from dkist_processing_cryonirsp.tests.conftest import cryonirsp_testing_parameters_factory
|
|
21
|
-
|
|
23
|
+
from dkist_processing_cryonirsp.tests.conftest import FileParameter
|
|
22
24
|
|
|
23
25
|
# These are the workflow versions of the polyfit coefficient parameters
|
|
24
26
|
WORKFLOW_LINEARIZATION_POLYFIT_COEFFS_CI = [
|
|
@@ -424,13 +426,13 @@ class LoadInstPolCal(LoadTaskTags):
|
|
|
424
426
|
def translate_122_to_214_task(suffix: str):
|
|
425
427
|
class Translate122To214L0(WorkflowTaskBase):
|
|
426
428
|
def run(self) -> None:
|
|
427
|
-
raw_dir = Path(self.scratch.scratch_base_path) / f"
|
|
429
|
+
raw_dir = Path(self.scratch.scratch_base_path) / f"CRYONIRSP{self.recipe_run_id:03n}"
|
|
428
430
|
if not os.path.exists(self.scratch.workflow_base_path):
|
|
429
431
|
os.makedirs(self.scratch.workflow_base_path)
|
|
430
432
|
|
|
431
433
|
if not raw_dir.exists():
|
|
432
434
|
raise FileNotFoundError(
|
|
433
|
-
f"Expected to find a raw
|
|
435
|
+
f"Expected to find a raw CRYONIRSP{self.recipe_run_id:03n} folder in {self.scratch.scratch_base_path}"
|
|
434
436
|
)
|
|
435
437
|
|
|
436
438
|
for file in raw_dir.glob(f"*.{suffix}"):
|
|
@@ -465,26 +467,38 @@ def translate_122_to_214_task(suffix: str):
|
|
|
465
467
|
def create_input_dataset_parameter_document(param_path: Path):
|
|
466
468
|
class CreateInputDatasetParameterDocument(WorkflowTaskBase):
|
|
467
469
|
def run(self) -> None:
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
470
|
+
relative_path = "input_dataset_parameters.json"
|
|
471
|
+
self.write(
|
|
472
|
+
data=InputDatasetPartDocumentList(
|
|
473
|
+
doc_list=self.input_dataset_document_simple_parameters_part
|
|
474
|
+
),
|
|
475
|
+
relative_path=relative_path,
|
|
476
|
+
tags=CryonirspTag.input_dataset_parameters(),
|
|
477
|
+
encoder=basemodel_encoder,
|
|
478
|
+
)
|
|
479
|
+
logger.info(f"Wrote input dataset parameter doc to {relative_path}")
|
|
480
|
+
self.copy_and_tag_parameter_files(param_path=param_path)
|
|
481
|
+
logger.info(f"Copied input dataset parameter files from {param_path}")
|
|
473
482
|
|
|
474
483
|
@property
|
|
475
|
-
def
|
|
476
|
-
|
|
477
|
-
value_id = randint(1000, 2000)
|
|
478
|
-
param_class = cryonirsp_testing_parameters_factory(
|
|
479
|
-
param_path=param_path, create_files=False
|
|
480
|
-
)
|
|
484
|
+
def parameter_dict(self):
|
|
485
|
+
param_class = cryonirsp_testing_parameters_factory(task=self, create_files=False)
|
|
481
486
|
params = asdict(
|
|
482
487
|
param_class(
|
|
483
488
|
cryonirsp_linearization_polyfit_coeffs_ci=WORKFLOW_LINEARIZATION_POLYFIT_COEFFS_CI,
|
|
484
489
|
cryonirsp_linearization_polyfit_coeffs_sp=WORKFLOW_LINEARIZATION_POLYFIT_COEFFS_SP,
|
|
485
490
|
)
|
|
486
491
|
)
|
|
492
|
+
return params
|
|
493
|
+
|
|
494
|
+
@property
|
|
495
|
+
def input_dataset_document_simple_parameters_part(self):
|
|
496
|
+
parameters_list = []
|
|
497
|
+
value_id = randint(1000, 2000)
|
|
498
|
+
params = self.parameter_dict
|
|
487
499
|
for pn, pv in params.items():
|
|
500
|
+
if isinstance(pv, FileParameter):
|
|
501
|
+
pv = pv.model_dump()
|
|
488
502
|
values = [
|
|
489
503
|
{
|
|
490
504
|
"parameterValueId": value_id,
|
|
@@ -497,6 +511,22 @@ def create_input_dataset_parameter_document(param_path: Path):
|
|
|
497
511
|
|
|
498
512
|
return parameters_list
|
|
499
513
|
|
|
514
|
+
def copy_and_tag_parameter_files(self, param_path=param_path):
|
|
515
|
+
# Copy parameter files from param_path to a place where they can be tagged
|
|
516
|
+
params = self.parameter_dict
|
|
517
|
+
destination_dir = Path(self.scratch.workflow_base_path) / "parameters"
|
|
518
|
+
destination_dir.mkdir(parents=True, exist_ok=True)
|
|
519
|
+
for pn, pv in params.items():
|
|
520
|
+
if isinstance(pv, FileParameter):
|
|
521
|
+
file_path = next(param_path.rglob(pv.file_pointer.object_key))
|
|
522
|
+
if file_path.parent != destination_dir:
|
|
523
|
+
shutil.copy(file_path, destination_dir)
|
|
524
|
+
logger.info(
|
|
525
|
+
f"Copied parameter file for '{pn}' to {destination_dir / file_path}"
|
|
526
|
+
)
|
|
527
|
+
file_path = next(destination_dir.rglob(pv.file_pointer.object_key))
|
|
528
|
+
self.tag(path=file_path, tags=pv.file_pointer.tag)
|
|
529
|
+
|
|
500
530
|
return CreateInputDatasetParameterDocument
|
|
501
531
|
|
|
502
532
|
|
|
@@ -43,7 +43,7 @@ def compute_bad_pixel_map_task(
|
|
|
43
43
|
task.scratch = WorkflowFileSystem(
|
|
44
44
|
scratch_base_path=tmp_path, recipe_run_id=recipe_run_id
|
|
45
45
|
)
|
|
46
|
-
param_class = cryonirsp_testing_parameters_factory(
|
|
46
|
+
param_class = cryonirsp_testing_parameters_factory(task)
|
|
47
47
|
assign_input_dataset_doc_to_task(task, param_class())
|
|
48
48
|
start_time = datetime.now()
|
|
49
49
|
ds = CryonirspHeadersValidCISolarGainFrames(
|
|
@@ -38,7 +38,7 @@ def compute_beam_boundaries_task(
|
|
|
38
38
|
task.scratch = WorkflowFileSystem(
|
|
39
39
|
scratch_base_path=tmp_path, recipe_run_id=recipe_run_id
|
|
40
40
|
)
|
|
41
|
-
param_class = cryonirsp_testing_parameters_factory(
|
|
41
|
+
param_class = cryonirsp_testing_parameters_factory(task)
|
|
42
42
|
assign_input_dataset_doc_to_task(task, param_class())
|
|
43
43
|
# Create fake bad pixel map
|
|
44
44
|
task.write(
|
|
@@ -70,7 +70,7 @@ def ci_science_calibration_task(
|
|
|
70
70
|
scratch_base_path=tmp_path, recipe_run_id=recipe_run_id
|
|
71
71
|
)
|
|
72
72
|
|
|
73
|
-
param_class = cryonirsp_testing_parameters_factory(
|
|
73
|
+
param_class = cryonirsp_testing_parameters_factory(task)
|
|
74
74
|
assign_input_dataset_doc_to_task(task, param_class())
|
|
75
75
|
|
|
76
76
|
# Need a beam boundary file
|
|
@@ -4,7 +4,6 @@ import numpy as np
|
|
|
4
4
|
import pytest
|
|
5
5
|
from dkist_processing_common._util.scratch import WorkflowFileSystem
|
|
6
6
|
from dkist_processing_common.tasks import WorkflowTaskBase
|
|
7
|
-
from dkist_processing_common.tasks.mixin.input_dataset import InputDatasetMixin
|
|
8
7
|
from dkist_processing_common.tests.conftest import FakeGQLClient
|
|
9
8
|
|
|
10
9
|
from dkist_processing_cryonirsp.models.constants import CryonirspConstants
|
|
@@ -21,7 +20,7 @@ column_error_bad_pixel_map = base_bad_pixel_map.copy()
|
|
|
21
20
|
column_error_bad_pixel_map[:, 6] = 1
|
|
22
21
|
|
|
23
22
|
|
|
24
|
-
class BadPixelMapTask(WorkflowTaskBase, CorrectionsMixin
|
|
23
|
+
class BadPixelMapTask(WorkflowTaskBase, CorrectionsMixin):
|
|
25
24
|
constants: CryonirspConstants
|
|
26
25
|
|
|
27
26
|
@property
|
|
@@ -58,7 +57,7 @@ def bad_pixel_mask_task(
|
|
|
58
57
|
task.scratch = WorkflowFileSystem(
|
|
59
58
|
scratch_base_path=tmp_path, recipe_run_id=recipe_run_id
|
|
60
59
|
)
|
|
61
|
-
param_class = cryonirsp_testing_parameters_factory(
|
|
60
|
+
param_class = cryonirsp_testing_parameters_factory(task)
|
|
62
61
|
assign_input_dataset_doc_to_task(task, param_class())
|
|
63
62
|
yield task
|
|
64
63
|
finally:
|
|
@@ -42,7 +42,7 @@ def cryo_science_task(
|
|
|
42
42
|
task.scratch = WorkflowFileSystem(
|
|
43
43
|
scratch_base_path=tmp_path, recipe_run_id=recipe_run_id
|
|
44
44
|
)
|
|
45
|
-
param_class = cryonirsp_testing_parameters_factory(
|
|
45
|
+
param_class = cryonirsp_testing_parameters_factory(task)
|
|
46
46
|
assign_input_dataset_doc_to_task(task, param_class())
|
|
47
47
|
yield task
|
|
48
48
|
finally:
|
|
@@ -52,7 +52,7 @@ def sp_dark_calibration_task(
|
|
|
52
52
|
task.scratch = WorkflowFileSystem(
|
|
53
53
|
scratch_base_path=tmp_path, recipe_run_id=recipe_run_id
|
|
54
54
|
)
|
|
55
|
-
param_class = cryonirsp_testing_parameters_factory(
|
|
55
|
+
param_class = cryonirsp_testing_parameters_factory(task)
|
|
56
56
|
assign_input_dataset_doc_to_task(task, param_class())
|
|
57
57
|
|
|
58
58
|
# Create fake beam border intermediate arrays
|
|
@@ -137,7 +137,7 @@ def ci_dark_calibration_task(
|
|
|
137
137
|
task.scratch = WorkflowFileSystem(
|
|
138
138
|
scratch_base_path=tmp_path, recipe_run_id=recipe_run_id
|
|
139
139
|
)
|
|
140
|
-
param_class = cryonirsp_testing_parameters_factory(
|
|
140
|
+
param_class = cryonirsp_testing_parameters_factory(task)
|
|
141
141
|
assign_input_dataset_doc_to_task(task, param_class())
|
|
142
142
|
|
|
143
143
|
# Need a beam boundary file
|