dkist-processing-cryonirsp 0.0.17rc2__tar.gz → 0.0.18__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.17rc2 → dkist_processing_cryonirsp-0.0.18}/CHANGELOG.rst +20 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/PKG-INFO +1 -1
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/models/optical_density_filter_names.py +3 -2
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/models/parameters.py +1 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/parsers/cryonirsp_l0_fits_access.py +1 -1
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/parsers/optical_density_filters.py +1 -1
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tasks/science_base.py +5 -8
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tasks/sp_science.py +0 -16
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tasks/sp_solar_gain.py +2 -3
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tests/header_models.py +1 -1
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tests/test_linearity_correction.py +1 -1
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tests/test_parse.py +12 -3
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tests/test_sp_science.py +1 -1
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp.egg-info/PKG-INFO +1 -1
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp.egg-info/SOURCES.txt +0 -1
- dkist_processing_cryonirsp-0.0.17rc2/changelog/70.feature.rst +0 -1
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/.gitignore +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/.pre-commit-config.yaml +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/.readthedocs.yml +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/README.rst +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/SCIENCE_CHANGELOG.rst +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/bitbucket-pipelines.yml +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/changelog/.gitempty +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/check_changelog_updated.sh +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/__init__.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/models/__init__.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/models/constants.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/models/filter.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/models/tags.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/models/task_name.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/parsers/__init__.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/parsers/cryonirsp_l1_fits_access.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/parsers/map_repeats.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/parsers/measurements.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/parsers/modstates.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/parsers/polarimeter_mode.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/parsers/polcal_task.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/parsers/scan_step.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/parsers/task.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/parsers/time.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/parsers/wavelength.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tasks/__init__.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tasks/assemble_movie.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tasks/bad_pixel_map.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tasks/beam_boundaries_base.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tasks/ci_beam_boundaries.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tasks/ci_science.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tasks/cryonirsp_base.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tasks/dark.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tasks/gain.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tasks/instrument_polarization.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tasks/l1_output_data.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tasks/linearity_correction.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tasks/make_movie_frames.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tasks/mixin/__init__.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tasks/mixin/beam_access.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tasks/mixin/corrections.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tasks/mixin/intermediate_frame.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tasks/mixin/linearized_frame.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tasks/parse.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tasks/quality_metrics.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tasks/sp_beam_boundaries.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tasks/sp_geometric.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tasks/trial_output_data.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tasks/write_l1.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tests/__init__.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tests/ci_e2e_test.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tests/conftest.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tests/e2e_helpers.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tests/e2e_linearize.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tests/sp_e2e_test.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tests/test_assemble_movie.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tests/test_bad_pixel_maps.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tests/test_build_quality_report.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tests/test_ci_beam_boundaries.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tests/test_ci_make_movie_frames.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tests/test_ci_science.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tests/test_cryo_base.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tests/test_cryo_constants.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tests/test_dark.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tests/test_gain.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tests/test_instrument_polarization.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tests/test_parameters.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tests/test_quality.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tests/test_sp_beam_boundaries.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tests/test_sp_geometric.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tests/test_sp_make_movie_frames.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tests/test_sp_solar.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tests/test_submit_qualilty.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tests/test_workflows.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/tests/test_write_l1.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/workflows/__init__.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/workflows/ci_l0_processing.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/workflows/sp_l0_processing.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp/workflows/trial_workflows.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp.egg-info/dependency_links.txt +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp.egg-info/requires.txt +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/dkist_processing_cryonirsp.egg-info/top_level.txt +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/docs/Makefile +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/docs/changelog.rst +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/docs/conf.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/docs/index.rst +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/docs/l0_to_l1_cryonirsp_ci.rst +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/docs/l0_to_l1_cryonirsp_sp.rst +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/docs/make.bat +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/docs/requirements.txt +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/docs/requirements_table.rst +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/docs/scientific_changelog.rst +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/licenses/LICENSE.rst +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/pyproject.toml +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/science_towncrier.sh +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/setup.cfg +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/setup.py +0 -0
- {dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/towncrier_science.toml +0 -0
|
@@ -1,3 +1,23 @@
|
|
|
1
|
+
v0.0.18 (2023-11-08)
|
|
2
|
+
====================
|
|
3
|
+
|
|
4
|
+
Bugfixes
|
|
5
|
+
--------
|
|
6
|
+
|
|
7
|
+
- Removes cross-talk correction from SP science task. (`#72 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/72>`__)
|
|
8
|
+
- Turn on bad-pixel correction of science observe frames for science team evaluation. (`#73 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/73>`__)
|
|
9
|
+
- Fix computation of characteristic spectrum by removing incorrect median normalization. (`#74 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/74>`__)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
v0.0.17 (2023-11-06)
|
|
13
|
+
====================
|
|
14
|
+
|
|
15
|
+
Features
|
|
16
|
+
--------
|
|
17
|
+
|
|
18
|
+
- Implement relative photometric calibration. Linearized ramp sets are normalized to counts per second. Attenuation due to Optical Density filters is compensated. Solar gain image is no longer normalized to mean of 1. Observe images are now in units of flux relative to solar center. (`#70 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/70>`__)
|
|
19
|
+
|
|
20
|
+
|
|
1
21
|
v0.0.16 (2023-11-02)
|
|
2
22
|
====================
|
|
3
23
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: dkist_processing_cryonirsp
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.18
|
|
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
|
|
@@ -5,7 +5,8 @@ from enum import StrEnum
|
|
|
5
5
|
class AllowableOpticalDensityFilterNames(StrEnum):
|
|
6
6
|
"""Enum to implement list of allowable Optical Density Filter names."""
|
|
7
7
|
|
|
8
|
+
G278 = "G278"
|
|
8
9
|
G358 = "G358"
|
|
9
10
|
G408 = "G408"
|
|
10
|
-
OPEN = "
|
|
11
|
-
NONE = "
|
|
11
|
+
OPEN = "OPEN"
|
|
12
|
+
NONE = "NONE"
|
|
@@ -156,6 +156,7 @@ class CryonirspParameters(ParameterBase):
|
|
|
156
156
|
def linearization_filter_attenuation_dict(self) -> dict:
|
|
157
157
|
"""Return a dict that maps the filter name to its attenuation parameter."""
|
|
158
158
|
filter_attenuation_dict = {
|
|
159
|
+
AllowableOpticalDensityFilterNames.G278.value: self._linearization_optical_density_filter_attenuation_g278,
|
|
159
160
|
AllowableOpticalDensityFilterNames.G358.value: self._linearization_optical_density_filter_attenuation_g358,
|
|
160
161
|
AllowableOpticalDensityFilterNames.G408.value: self._linearization_optical_density_filter_attenuation_g408,
|
|
161
162
|
AllowableOpticalDensityFilterNames.OPEN.value: self._linearization_optical_density_filter_attenuation_open,
|
|
@@ -32,7 +32,7 @@ class CryonirspRampFitsAccess(L0FitsAccess):
|
|
|
32
32
|
self.camera_readout_mode = self.header["CNCAMMD"]
|
|
33
33
|
self.curr_frame_in_ramp: int = self.header["CNCNDR"]
|
|
34
34
|
self.arm_id: str = self.header["CNARMID"]
|
|
35
|
-
self.filter_name = self.header["CNFILTNP"]
|
|
35
|
+
self.filter_name = self.header["CNFILTNP"].upper()
|
|
36
36
|
self.roi_1_origin_x = self.header["HWROI1OX"]
|
|
37
37
|
self.roi_1_origin_y = self.header["HWROI1OY"]
|
|
38
38
|
self.roi_1_size_x = self.header["HWROI1SX"]
|
|
@@ -31,7 +31,7 @@ class OpticalDensityFiltersPickyBud(Stem):
|
|
|
31
31
|
-------
|
|
32
32
|
The optical density filter name associated with this fits object
|
|
33
33
|
"""
|
|
34
|
-
return fits_obj.filter_name
|
|
34
|
+
return fits_obj.filter_name.upper()
|
|
35
35
|
|
|
36
36
|
def getter(self, key: Hashable) -> Thorn:
|
|
37
37
|
"""Return a Thorn for valid names or raise an exception for bad names."""
|
|
@@ -168,17 +168,14 @@ class ScienceCalibrationBase(CryonirspTaskBase, ABC):
|
|
|
168
168
|
# Dark correction
|
|
169
169
|
dark_corrected_array = next(subtract_array_from_arrays(avg_observe_array, dark_array))
|
|
170
170
|
|
|
171
|
-
# TODO: Unclear how much this helps, so leaving it out for now...
|
|
172
|
-
# TODO: Do not remove this code until we have confirmed with the cryo team
|
|
173
171
|
# Bad pixel correction
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
172
|
+
bad_pixel_map = self.intermediate_frame_load_bad_pixel_map(beam=beam)
|
|
173
|
+
bad_pixel_corrected_array = self.corrections_correct_bad_pixels(
|
|
174
|
+
dark_corrected_array, bad_pixel_map
|
|
175
|
+
)
|
|
178
176
|
|
|
179
177
|
# Gain correction
|
|
180
|
-
|
|
181
|
-
gain_corrected_array = next(divide_arrays_by_array(dark_corrected_array, gain_array))
|
|
178
|
+
gain_corrected_array = next(divide_arrays_by_array(bad_pixel_corrected_array, gain_array))
|
|
182
179
|
|
|
183
180
|
return gain_corrected_array, observe_header
|
|
184
181
|
|
|
@@ -99,7 +99,6 @@ class SPScienceCalibration(ScienceCalibrationBase):
|
|
|
99
99
|
|
|
100
100
|
logger.info(f"Correcting telescope polarization for {logging_str}")
|
|
101
101
|
calibrated = self.telescope_polarization_correction(combined)
|
|
102
|
-
calibrated = self.remove_crosstalk(calibrated)
|
|
103
102
|
|
|
104
103
|
return calibrated
|
|
105
104
|
|
|
@@ -208,21 +207,6 @@ class SPScienceCalibration(ScienceCalibrationBase):
|
|
|
208
207
|
|
|
209
208
|
return obj
|
|
210
209
|
|
|
211
|
-
@staticmethod
|
|
212
|
-
def remove_crosstalk(fits_obj: CryonirspL0FitsAccess) -> CryonirspL0FitsAccess:
|
|
213
|
-
"""Remove the continuum from QUV (remove cross-talk)."""
|
|
214
|
-
array_stack = fits_obj.data
|
|
215
|
-
array_header = fits_obj.header
|
|
216
|
-
for i in range(1, 4):
|
|
217
|
-
array_stack[:, :, i] = (
|
|
218
|
-
array_stack[:, :, i]
|
|
219
|
-
- np.nanmedian(array_stack[:, :, i] / array_stack[:, :, 0], axis=1)[:, None]
|
|
220
|
-
* array_stack[:, :, 0]
|
|
221
|
-
)
|
|
222
|
-
hdu = fits.ImageHDU(data=array_stack, header=array_header)
|
|
223
|
-
obj = CryonirspL0FitsAccess(hdu=hdu, auto_squeeze=False)
|
|
224
|
-
return obj
|
|
225
|
-
|
|
226
210
|
def collect_calibration_objects(self) -> CalibrationCollection:
|
|
227
211
|
"""
|
|
228
212
|
Collect *all* calibration for all modstates, and exposure times.
|
|
@@ -154,15 +154,14 @@ class SPSolarGainCalibration(CryonirspTaskBase):
|
|
|
154
154
|
return spectral_corrected_solar_array
|
|
155
155
|
|
|
156
156
|
def _compute_char_spectrum(self, array: np.ndarray) -> np.ndarray:
|
|
157
|
-
"""Estimate the characteristic
|
|
157
|
+
"""Estimate the characteristic solar spectrum from the corrected solar gain data."""
|
|
158
158
|
# Normalize data row by row
|
|
159
159
|
pct = self.parameters.solar_characteristic_spatial_normalization_percentile
|
|
160
160
|
array_row_norm = array / np.nanpercentile(array, pct, axis=1)[:, None]
|
|
161
161
|
# Compute characteristic spectrum
|
|
162
162
|
char_spec_1d = np.nanmedian(array_row_norm, axis=0)
|
|
163
|
-
median_char_spec_1d = char_spec_1d / np.nanmean(char_spec_1d)
|
|
164
163
|
# Expand the 1D median along the columns (along the slit)
|
|
165
|
-
median_char_spec_2d = np.tile(
|
|
164
|
+
median_char_spec_2d = np.tile(char_spec_1d, (array_row_norm.shape[0], 1))
|
|
166
165
|
return median_char_spec_2d
|
|
167
166
|
|
|
168
167
|
def _distort_char_spectrum(self, char_spec: np.ndarray) -> np.ndarray:
|
|
@@ -108,7 +108,7 @@ class CryonirspHeadersValidNonLinearizedFrames(CryonirspHeaders):
|
|
|
108
108
|
@key_function("XPOSURE")
|
|
109
109
|
# set the exposure time for each frame in the ramp
|
|
110
110
|
def exposure_time(self, key: float):
|
|
111
|
-
return 100 * self.
|
|
111
|
+
return 100 * self.index * 0.01
|
|
112
112
|
|
|
113
113
|
|
|
114
114
|
class CryonirspHeadersValidLinearizedFrames(CryonirspHeaders):
|
|
@@ -117,7 +117,7 @@ def linearity_correction(
|
|
|
117
117
|
|
|
118
118
|
@pytest.mark.parametrize(
|
|
119
119
|
"filter_name",
|
|
120
|
-
[pytest.param("G358", id="G358"), pytest.param("
|
|
120
|
+
[pytest.param("G358", id="G358"), pytest.param("OPEN", id="OPEN")],
|
|
121
121
|
)
|
|
122
122
|
@pytest.mark.parametrize(
|
|
123
123
|
"frames_in_ramp",
|
|
@@ -721,6 +721,15 @@ def test_parse_cryonirsp_linearized_data_constants(parse_linearized_task, arm_id
|
|
|
721
721
|
|
|
722
722
|
def test_optical_density_filter_names(parse_non_linearized_task):
|
|
723
723
|
task = parse_non_linearized_task
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
724
|
+
# List of filter attenuation parameters defined in CryonirspParameters:
|
|
725
|
+
defined_filter_params = {
|
|
726
|
+
item[-4:].upper()
|
|
727
|
+
for item in dir(task.parameters)
|
|
728
|
+
if item.startswith("_linearization_optical_density_filter_attenuation_")
|
|
729
|
+
}
|
|
730
|
+
# List of filters in the filter map:
|
|
731
|
+
filter_map_params = {k for k in task.parameters.linearization_filter_attenuation_dict.keys()}
|
|
732
|
+
# Make sure all filter parameters match the allowable list
|
|
733
|
+
assert not defined_filter_params.symmetric_difference(ALLOWABLE_OPTICAL_DENSITY_FILTERS)
|
|
734
|
+
# Make sure all filter map keys match the allowable list
|
|
735
|
+
assert not filter_map_params.symmetric_difference(ALLOWABLE_OPTICAL_DENSITY_FILTERS)
|
|
@@ -67,7 +67,7 @@ def sp_science_calibration_task(
|
|
|
67
67
|
assign_input_dataset_doc_to_task(task, param_class())
|
|
68
68
|
# Create fake bad pixel map
|
|
69
69
|
task.intermediate_frame_write_arrays(
|
|
70
|
-
arrays=np.zeros((
|
|
70
|
+
arrays=np.zeros((30, 60)),
|
|
71
71
|
task_tag=CryonirspTag.task_bad_pixel_map(),
|
|
72
72
|
)
|
|
73
73
|
# Create fake demodulation matrices
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: dkist-processing-cryonirsp
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.18
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
Implement relative photometric calibration. Linearized ramp sets are normalized to counts per second. Attenuation due to Optical Density filters is compensated. Solar gain image is no longer normalized to mean of 1. Observe images are now in units of flux relative to solar center.
|
|
File without changes
|
{dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/.pre-commit-config.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/SCIENCE_CHANGELOG.rst
RENAMED
|
File without changes
|
{dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/bitbucket-pipelines.yml
RENAMED
|
File without changes
|
{dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/changelog/.gitempty
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/docs/changelog.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/docs/requirements.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/licenses/LICENSE.rst
RENAMED
|
File without changes
|
|
File without changes
|
{dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/science_towncrier.sh
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dkist_processing_cryonirsp-0.0.17rc2 → dkist_processing_cryonirsp-0.0.18}/towncrier_science.toml
RENAMED
|
File without changes
|