dkist-processing-cryonirsp 0.0.27rc1__tar.gz → 0.0.50__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.

Files changed (133) hide show
  1. dkist_processing_cryonirsp-0.0.50/CHANGELOG.rst +530 -0
  2. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/PKG-INFO +3 -1
  3. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/bitbucket-pipelines.yml +1 -1
  4. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/models/constants.py +66 -22
  5. dkist_processing_cryonirsp-0.0.50/dkist_processing_cryonirsp/models/exposure_conditions.py +26 -0
  6. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/models/parameters.py +43 -18
  7. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/models/tags.py +18 -0
  8. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/models/task_name.py +1 -0
  9. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/parsers/cryonirsp_l0_fits_access.py +11 -0
  10. dkist_processing_cryonirsp-0.0.50/dkist_processing_cryonirsp/parsers/exposure_conditions.py +163 -0
  11. dkist_processing_cryonirsp-0.0.50/dkist_processing_cryonirsp/parsers/map_repeats.py +40 -0
  12. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/parsers/modstates.py +1 -27
  13. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/parsers/optical_density_filters.py +1 -3
  14. dkist_processing_cryonirsp-0.0.50/dkist_processing_cryonirsp/parsers/polarimetric_check.py +110 -0
  15. dkist_processing_cryonirsp-0.0.50/dkist_processing_cryonirsp/parsers/scan_step.py +412 -0
  16. dkist_processing_cryonirsp-0.0.50/dkist_processing_cryonirsp/parsers/time.py +49 -0
  17. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tasks/assemble_movie.py +37 -9
  18. dkist_processing_cryonirsp-0.0.50/dkist_processing_cryonirsp/tasks/beam_boundaries_base.py +279 -0
  19. dkist_processing_cryonirsp-0.0.50/dkist_processing_cryonirsp/tasks/ci_beam_boundaries.py +55 -0
  20. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tasks/ci_science.py +18 -15
  21. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tasks/cryonirsp_base.py +1 -0
  22. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tasks/dark.py +16 -10
  23. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tasks/gain.py +44 -26
  24. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tasks/instrument_polarization.py +56 -35
  25. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tasks/linearity_correction.py +9 -6
  26. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tasks/make_movie_frames.py +39 -62
  27. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tasks/mixin/corrections.py +10 -30
  28. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tasks/mixin/intermediate_frame.py +19 -7
  29. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tasks/mixin/linearized_frame.py +56 -41
  30. dkist_processing_cryonirsp-0.0.50/dkist_processing_cryonirsp/tasks/mixin/shift_measurements.py +299 -0
  31. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tasks/parse.py +39 -19
  32. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tasks/science_base.py +9 -8
  33. dkist_processing_cryonirsp-0.0.50/dkist_processing_cryonirsp/tasks/sp_beam_boundaries.py +270 -0
  34. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tasks/sp_geometric.py +106 -195
  35. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tasks/sp_science.py +53 -20
  36. dkist_processing_cryonirsp-0.0.50/dkist_processing_cryonirsp/tasks/sp_solar_gain.py +472 -0
  37. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tasks/trial_output_data.py +18 -7
  38. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tasks/write_l1.py +18 -0
  39. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tests/conftest.py +44 -35
  40. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tests/header_models.py +28 -34
  41. dkist_processing_cryonirsp-0.0.50/dkist_processing_cryonirsp/tests/local_trial_workflows/__init__.py +0 -0
  42. dkist_processing_cryonirsp-0.0.50/dkist_processing_cryonirsp/tests/local_trial_workflows/l0_cals_only.py +551 -0
  43. dkist_processing_cryonirsp-0.0.50/dkist_processing_cryonirsp/tests/local_trial_workflows/l0_to_l1.py +621 -0
  44. dkist_processing_cryonirsp-0.0.50/dkist_processing_cryonirsp/tests/local_trial_workflows/linearize_only.py +96 -0
  45. dkist_processing_cryonirsp-0.0.50/dkist_processing_cryonirsp/tests/local_trial_workflows/local_trial_helpers.py +503 -0
  46. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tests/test_assemble_movie.py +33 -11
  47. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tests/test_ci_beam_boundaries.py +6 -8
  48. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tests/test_ci_science.py +11 -3
  49. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tests/test_cryo_constants.py +12 -4
  50. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tests/test_dark.py +71 -55
  51. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tests/test_gain.py +59 -85
  52. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tests/test_instrument_polarization.py +20 -12
  53. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tests/test_linearity_correction.py +11 -5
  54. dkist_processing_cryonirsp-0.0.27rc1/dkist_processing_cryonirsp/tests/test_ci_make_movie_frames.py → dkist_processing_cryonirsp-0.0.50/dkist_processing_cryonirsp/tests/test_make_movie_frames.py +28 -17
  55. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tests/test_parameters.py +2 -0
  56. dkist_processing_cryonirsp-0.0.50/dkist_processing_cryonirsp/tests/test_parse.py +1379 -0
  57. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tests/test_sp_beam_boundaries.py +8 -8
  58. dkist_processing_cryonirsp-0.0.50/dkist_processing_cryonirsp/tests/test_sp_geometric.py +319 -0
  59. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tests/test_sp_make_movie_frames.py +33 -13
  60. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tests/test_sp_science.py +88 -6
  61. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tests/test_sp_solar.py +30 -20
  62. dkist_processing_cryonirsp-0.0.50/dkist_processing_cryonirsp/tests/test_trial_output_data.py +170 -0
  63. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tests/test_write_l1.py +11 -2
  64. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/workflows/ci_l0_processing.py +5 -5
  65. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/workflows/sp_l0_processing.py +5 -5
  66. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/workflows/trial_workflows.py +24 -2
  67. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp.egg-info/PKG-INFO +3 -1
  68. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp.egg-info/SOURCES.txt +11 -9
  69. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp.egg-info/requires.txt +17 -5
  70. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/setup.cfg +13 -5
  71. dkist_processing_cryonirsp-0.0.27rc1/CHANGELOG.rst +0 -262
  72. dkist_processing_cryonirsp-0.0.27rc1/changelog/71.bugfix.rst +0 -1
  73. dkist_processing_cryonirsp-0.0.27rc1/changelog/79.feature.rst +0 -1
  74. dkist_processing_cryonirsp-0.0.27rc1/dkist_processing_cryonirsp/models/optical_density_filter_names.py +0 -12
  75. dkist_processing_cryonirsp-0.0.27rc1/dkist_processing_cryonirsp/parsers/map_repeats.py +0 -157
  76. dkist_processing_cryonirsp-0.0.27rc1/dkist_processing_cryonirsp/parsers/polarimeter_mode.py +0 -32
  77. dkist_processing_cryonirsp-0.0.27rc1/dkist_processing_cryonirsp/parsers/scan_step.py +0 -103
  78. dkist_processing_cryonirsp-0.0.27rc1/dkist_processing_cryonirsp/parsers/time.py +0 -192
  79. dkist_processing_cryonirsp-0.0.27rc1/dkist_processing_cryonirsp/tasks/beam_boundaries_base.py +0 -196
  80. dkist_processing_cryonirsp-0.0.27rc1/dkist_processing_cryonirsp/tasks/ci_beam_boundaries.py +0 -60
  81. dkist_processing_cryonirsp-0.0.27rc1/dkist_processing_cryonirsp/tasks/sp_beam_boundaries.py +0 -236
  82. dkist_processing_cryonirsp-0.0.27rc1/dkist_processing_cryonirsp/tasks/sp_solar_gain.py +0 -232
  83. dkist_processing_cryonirsp-0.0.27rc1/dkist_processing_cryonirsp/tests/ci_e2e_test.py +0 -559
  84. dkist_processing_cryonirsp-0.0.27rc1/dkist_processing_cryonirsp/tests/e2e_helpers.py +0 -147
  85. dkist_processing_cryonirsp-0.0.27rc1/dkist_processing_cryonirsp/tests/e2e_linearize.py +0 -173
  86. dkist_processing_cryonirsp-0.0.27rc1/dkist_processing_cryonirsp/tests/sp_e2e_test.py +0 -549
  87. dkist_processing_cryonirsp-0.0.27rc1/dkist_processing_cryonirsp/tests/test_parse.py +0 -788
  88. dkist_processing_cryonirsp-0.0.27rc1/dkist_processing_cryonirsp/tests/test_sp_geometric.py +0 -254
  89. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/.gitignore +0 -0
  90. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/.pre-commit-config.yaml +0 -0
  91. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/.readthedocs.yml +0 -0
  92. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/README.rst +0 -0
  93. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/SCIENCE_CHANGELOG.rst +0 -0
  94. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/changelog/.gitempty +0 -0
  95. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/check_changelog_updated.sh +0 -0
  96. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/__init__.py +0 -0
  97. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/models/__init__.py +0 -0
  98. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/models/filter.py +0 -0
  99. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/parsers/__init__.py +0 -0
  100. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/parsers/cryonirsp_l1_fits_access.py +0 -0
  101. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/parsers/measurements.py +0 -0
  102. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/parsers/wavelength.py +0 -0
  103. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tasks/__init__.py +0 -0
  104. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tasks/bad_pixel_map.py +0 -0
  105. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tasks/l1_output_data.py +0 -0
  106. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tasks/mixin/__init__.py +0 -0
  107. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tasks/mixin/beam_access.py +0 -0
  108. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tasks/quality_metrics.py +0 -0
  109. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tests/__init__.py +0 -0
  110. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tests/test_bad_pixel_maps.py +0 -0
  111. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tests/test_build_quality_report.py +0 -0
  112. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tests/test_cryo_base.py +0 -0
  113. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tests/test_quality.py +0 -0
  114. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tests/test_submit_qualilty.py +0 -0
  115. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/tests/test_workflows.py +0 -0
  116. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp/workflows/__init__.py +0 -0
  117. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp.egg-info/dependency_links.txt +0 -0
  118. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/dkist_processing_cryonirsp.egg-info/top_level.txt +0 -0
  119. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/docs/Makefile +0 -0
  120. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/docs/changelog.rst +0 -0
  121. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/docs/conf.py +0 -0
  122. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/docs/index.rst +0 -0
  123. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/docs/l0_to_l1_cryonirsp_ci.rst +0 -0
  124. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/docs/l0_to_l1_cryonirsp_sp.rst +0 -0
  125. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/docs/make.bat +0 -0
  126. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/docs/requirements.txt +0 -0
  127. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/docs/requirements_table.rst +0 -0
  128. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/docs/scientific_changelog.rst +0 -0
  129. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/licenses/LICENSE.rst +0 -0
  130. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/pyproject.toml +0 -0
  131. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/science_towncrier.sh +0 -0
  132. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/setup.py +0 -0
  133. {dkist_processing_cryonirsp-0.0.27rc1 → dkist_processing_cryonirsp-0.0.50}/towncrier_science.toml +0 -0
@@ -0,0 +1,530 @@
1
+ v0.0.50 (2024-03-26)
2
+ ====================
3
+
4
+ Misc
5
+ ----
6
+
7
+ - Update `dkist-processing-common` to v6.0.4 to fix bug affecting NAXISn keys in `FitsAccessBase` subclasses.
8
+
9
+ v0.0.49 (2024-03-15)
10
+ ====================
11
+
12
+ Bugfixes
13
+ --------
14
+
15
+ - Correctly identify *partially* incomplete scan steps. Previously any scan step that had at least a single file was
16
+ considered to exist in its entirety, even if some of its files were missing. (`#108 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/108>`__)
17
+
18
+
19
+ v0.0.48 (2024-03-15)
20
+ ====================
21
+
22
+ Bugfixes
23
+ --------
24
+
25
+ - Fixes a bug in `ParseL0CryonirspLinearizedData` which conflated dark frames with the same exposure time but different OD filters. We need to be able to identify dark frame based on their exposure conditions (exposure time, Optical Density Filter) and use the exposure conditions to correlate the sets of dark frames with the frames sets they will be used to correct (lamp gain, solar gain, observe). (`#106 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/106>`__)
26
+
27
+
28
+ v0.0.47 (2024-03-15)
29
+ ====================
30
+
31
+ Bugfixes
32
+ --------
33
+
34
+ - Fixed a bug in `LinearityCorrection` that allowed an incomplete ramp to be linearized and passed onto the next processing stage. Incomplete ramps are now skipped and the parsing task will detect any incompleteness in the map and respond appropriately. (`#105 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/105>`__)
35
+
36
+
37
+ v0.0.46 (2024-03-13)
38
+ ====================
39
+
40
+ Features
41
+ --------
42
+
43
+ - Normalize Q, U, and V polarimetric beams by their respective Stokes-I prior to beam combination, then multiply the combination
44
+ by the average Stokes-I data. (`#104 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/104>`__)
45
+
46
+
47
+ Bugfixes
48
+ --------
49
+
50
+ - L1 CI Science frames now have array values that are given relative to value at disk center. Previously they had been raw counts per second.
51
+ With this change the L1 CI frames have the same units as the L1 SP frames (i.e., counts/sec relative to disk center). (`#103 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/103>`__)
52
+
53
+
54
+ v0.0.45 (2024-03-06)
55
+ ====================
56
+
57
+ Features
58
+ --------
59
+
60
+ - Save spectral corrected solar arrays as an intermediate file for inclusion in trial data products. (`#101 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/101>`__)
61
+
62
+
63
+ Misc
64
+ ----
65
+
66
+ - Add option to `l0_to_l1` local trial workflow to mimic running the `TransferCryoTrialData`. The command line option is `-X` and an optional argument can point
67
+ to a specific place (anywhere in the filesystem) to save the trial outputs. If no argument to `-X` is specified then trial data will be saved in a directory called
68
+ "trial_output" under the recipe run directory. (`#102 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/102>`__)
69
+
70
+
71
+ v0.0.44 (2024-03-05)
72
+ ====================
73
+
74
+ Misc
75
+ ----
76
+
77
+ - Update dkist-processing-common to v6.0.3 (adding the SOLARRAD keyword to L1 headers)
78
+
79
+
80
+ v0.0.43 (2024-03-04)
81
+ ====================
82
+
83
+ Misc
84
+ ----
85
+
86
+ - Bump common to v6.0.2 (`#100 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/100>`__)
87
+
88
+
89
+ v0.0.42 (2024-02-29)
90
+ ====================
91
+
92
+ Bugfixes
93
+ --------
94
+
95
+ - Update dkist-processing-common to v6.0.1 (all movies are now forced to have an even number of pixels in each dimension)
96
+
97
+
98
+ v0.0.41 (2024-02-27)
99
+ ====================
100
+
101
+ Misc
102
+ ----
103
+
104
+ - Update the versions of the dkist-data-simulator and dkist-inventory packages. (`#99 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/99>`__)
105
+
106
+
107
+ v0.0.40 (2024-02-26)
108
+ ====================
109
+
110
+ Misc
111
+ ----
112
+
113
+ - Update dkist-fist-specifications to 4.1.1 (allow DEAXES = 0)
114
+
115
+
116
+ v0.0.39 (2024-02-23)
117
+ ====================
118
+
119
+ Features
120
+ --------
121
+
122
+ - Added time-based computation of flux-scaled, fringe-removed, lamp gain to correct for spectral lines leaking into the average solar gain images. This problem will be resolved by the installation of a new optical filter. (`#98 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/98>`__)
123
+
124
+
125
+ v0.0.38 (2024-02-22)
126
+ ====================
127
+
128
+ Bugfixes
129
+ --------
130
+
131
+ - Fixed bugs in `SPGeometricCalibration` task to use basic-corrected or gain-corrected arrays where needed. (`#97 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/97>`__)
132
+ - Fixed errors in `CorrectionsMixin` that caused problems in rotation, shift and spectral curvature computations. (`#97 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/97>`__)
133
+
134
+
135
+ v0.0.37 (2024-02-21)
136
+ ====================
137
+
138
+ Bugfixes
139
+ --------
140
+
141
+ - Added ObsIpStartTimeBud to ramp parser to support parameter access outside of parse tasks (`#95 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/95>`__)
142
+ - Fix local workflow code to use the correct polyfit coefficients for local data processing. (`#96 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/96>`__)
143
+
144
+
145
+ v0.0.36 (2024-02-20)
146
+ ====================
147
+
148
+ Features
149
+ --------
150
+
151
+ - Browse movies for polarimetric data now only show Stokes-I (with a label indicating this). (`#92 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/92>`__)
152
+
153
+
154
+ v0.0.35 (2024-02-16)
155
+ ====================
156
+
157
+ Misc
158
+ ----
159
+
160
+ - Transform the `cryonirsp_linearization_polyfit_coeffs_ci` and `cryonirsp_linearization_polyfit_coeffs_sp` parameters storage from being a file to json. (`#94 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/94>`__)
161
+
162
+
163
+ v0.0.34 (2024-02-15)
164
+ ====================
165
+
166
+ Misc
167
+ ----
168
+
169
+ - Bump common to 6.0.0 (total removal of `FitsData` mixin). (`#93 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/93>`__)
170
+
171
+
172
+ v0.0.33 (2024-02-14)
173
+ ====================
174
+
175
+ Features
176
+ --------
177
+
178
+ - SP movie frames now show the 2D spectra for each L1 frame instead of stacked slit positions integrated over a wavelength range.
179
+ This means that each spatial step now gets its own movie frame. It is expected that this is a temporary change. (`#91 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/91>`__)
180
+
181
+
182
+ Bugfixes
183
+ --------
184
+
185
+ - Movies now have the same aspect ratio as the L1 output frames. (`#91 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/91>`__)
186
+
187
+
188
+ Misc
189
+ ----
190
+
191
+ - Update local trial workflow scripts to improve functionality. (`#90 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/90>`__)
192
+ - Replace overly chatty APM spans in MakeMovieFrames task with `logger` statements. These spans recorded map scan and step numbers, which
193
+ are both unbounded. (`#91 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/91>`__)
194
+
195
+
196
+ v0.0.32 (2024-02-08)
197
+ ====================
198
+
199
+ Bugfixes
200
+ --------
201
+
202
+ - Improved accuracy of beam identification algorithm in `BeamBoundariesCalibration` by using a different algorithm to align the images. This also results in less data being discarded. (`#86 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/86>`__)
203
+ - Improved accuracy of beam angle and offset calcuations in `SPGeometricCalibration` by using a different algorithm to align the images. (`#86 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/86>`__)
204
+ - Update algorithm used to compute translations between two arrays (which is used for alignment in both translation and rotation). The new method is based on T. Schad's gradient approach. (`#86 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/86>`__)
205
+ - Fixed missing flip on spectral axis in linearized_frame mixin. (`#89 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/89>`__)
206
+
207
+
208
+ Misc
209
+ ----
210
+
211
+ - Created the `ShiftMeasurementsMixin` class to share shift measurement calculation methods with both the `BeamBoundariesCalibration` and `SPGeometricCalibration` classes. (`#86 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/86>`__)
212
+ - Renamed 3 `geo_strip` parameters in the `CryonirspParameters` class, as they are now used on both spectral and spatial axes. (`#86 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/86>`__)
213
+ - Added the `AxisParams` dataclass to the `ShiftMeasurementsMixin` class to support axis information required when computing shifts along an axis. (`#86 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/86>`__)
214
+ - Added the `BeamBoundaries` dataclass to the `BeamBoundariesCalibrationBase` class to support aggregation of beam boundary information into a single data structure. (`#86 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/86>`__)
215
+
216
+
217
+ v0.0.31 (2024-02-06)
218
+ ====================
219
+
220
+ Bugfixes
221
+ --------
222
+
223
+ - Flipping value of CDELT1 to account for the dispersion axis flip. (`#80 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/80>`__)
224
+ - Flipping dispersion axis in the final reduced data. (`#80 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/80>`__)
225
+
226
+
227
+ v0.0.30 (2024-02-02)
228
+ ====================
229
+
230
+ Features
231
+ --------
232
+
233
+ - Enable intensity mode observations to be calibrated with polarized calibration data. (`#83 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/83>`__)
234
+
235
+
236
+ v0.0.29 (2024-02-01)
237
+ ====================
238
+
239
+ Misc
240
+ ----
241
+
242
+ - Add tasks to trial workflows enabling ASDF, dataset inventory, and movie generation. (`#88 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/88>`__)
243
+
244
+
245
+ v0.0.28 (2024-01-31)
246
+ ====================
247
+
248
+ Misc
249
+ ----
250
+
251
+ - Bump versions of `dkist-fits-specifications`, `dkist-data-simulator`, and `dkist-header-validator` for fits spec version 4.1.0 (`#85 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/85>`__)
252
+
253
+
254
+ v0.0.27 (2024-01-29)
255
+ ====================
256
+
257
+ Features
258
+ --------
259
+
260
+ - Modify parsing to correctly detect the use of dual nested internal scanning loops, with the outer loop step size set to zero to emulate a DSP map scan. (`#79 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/79>`__)
261
+
262
+
263
+ Bugfixes
264
+ --------
265
+
266
+ - Fixed errors in the ordering of the Helioprojective Latitude and Longitude axes in the L1 headers. (`#71 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/71>`__)
267
+
268
+
269
+ v0.0.26 (2024-01-25)
270
+ ====================
271
+
272
+ Misc
273
+ ----
274
+
275
+ - Update version of dkist-processing-common to 5.1.0 which includes common tasks for cataloging in trial workflows. (`#87 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/87>`__)
276
+
277
+
278
+ v0.0.25 (2024-01-12)
279
+ ====================
280
+
281
+ Bugfixes
282
+ --------
283
+
284
+ - Compute polarimetric noise and sensitivity values and add to L1 headers (POL_NOIS, and POL_SENS, respectively). These
285
+ keywords are now required by the fits-spec. (`#84 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/84>`__)
286
+
287
+
288
+ Misc
289
+ ----
290
+
291
+ - Update `dkist-fits-specifications` and associated (validator, simulator) to use new conditional requiredness framework. (`#84 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/84>`__)
292
+
293
+
294
+ v0.0.24 (2024-01-03)
295
+ ====================
296
+
297
+ Misc
298
+ ----
299
+
300
+ - Bump version of `dkist-processing-pac` to v3.0.1. No change to pipeline behavior at all. (`#82 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/82>`__)
301
+
302
+
303
+ v0.0.23 (2023-12-20)
304
+ ====================
305
+
306
+ Misc
307
+ ----
308
+
309
+ - Adding manual processing worker capabilities via dkist-processing-common update. (`#81 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/81>`__)
310
+
311
+
312
+ v0.0.22 (2023-12-01)
313
+ ====================
314
+
315
+ Misc
316
+ ----
317
+
318
+ - Use `TaskName`, task-tags, and Task-parsing flowers from `dkist-processing-common`. These had all been defined in `dkist-processing-cryonirsp`, but
319
+ were recetly moved up to `*-common`. (`#78 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/78>`__)
320
+
321
+
322
+ v0.0.21 (2023-11-24)
323
+ ====================
324
+
325
+ Misc
326
+ ----
327
+
328
+ - Updates to core and common to patch security vulnerabilities and deprecations. (`#77 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/77>`__)
329
+
330
+
331
+ v0.0.20 (2023-11-22)
332
+ ====================
333
+
334
+ Misc
335
+ ----
336
+
337
+ - Update the FITS header specification to remove some CRYO-NIRSP specific keywords from the L1 headers. (`#76 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/76>`__)
338
+
339
+
340
+ v0.0.19 (2023-11-15)
341
+ ====================
342
+
343
+ Features
344
+ --------
345
+
346
+ - Define a public API for tasks such that they can be imported directly from dkist-processing-cryonirsp.tasks (`#75 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/75>`__)
347
+
348
+
349
+ v0.0.18 (2023-11-08)
350
+ ====================
351
+
352
+ Bugfixes
353
+ --------
354
+
355
+ - Removes cross-talk correction from SP science task. (`#72 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/72>`__)
356
+ - Turn on bad-pixel correction of science observe frames for science team evaluation. (`#73 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/73>`__)
357
+ - Fix computation of characteristic spectrum by removing incorrect median normalization. (`#74 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/74>`__)
358
+
359
+
360
+ v0.0.17 (2023-11-06)
361
+ ====================
362
+
363
+ Features
364
+ --------
365
+
366
+ - 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>`__)
367
+
368
+
369
+ v0.0.16 (2023-11-02)
370
+ ====================
371
+
372
+ Features
373
+ --------
374
+
375
+ - Add check to ensure calibration frames with exposure times correlated with observe frames exist and fail fast if they do not. (`#51 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/51>`__)
376
+
377
+
378
+ v0.0.15 (2023-10-17)
379
+ ====================
380
+
381
+ Bugfixes
382
+ --------
383
+
384
+ - Fixed bug in SP solar gain task where lamp gain was being applied to the average solar image,
385
+ causing the spectral transmission profile to be removed from the resulting solar gain image.
386
+ The lamp gain is no longer applied. (`#67 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/67>`__)
387
+
388
+
389
+ Misc
390
+ ----
391
+
392
+ - Complete refactorization of the SP solar gain task. (`#67 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/67>`__)
393
+
394
+
395
+ v0.0.14 (2023-10-17)
396
+ ====================
397
+
398
+ Features
399
+ --------
400
+
401
+ - Modifies the linearity correction to divide the process into smaller chunks using less memory. No longer requires that entire ramp set be stored in memory at once. (`#65 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/65>`__)
402
+
403
+
404
+ v0.0.13 (2023-10-11)
405
+ ====================
406
+
407
+ Misc
408
+ ----
409
+
410
+ - Use latest version of dkist-processing-common (4.1.4) which adapts to the new metadata-store-api. (`#68 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/68>`__)
411
+
412
+
413
+ v0.0.12 (2023-10-06)
414
+ ====================
415
+
416
+ Misc
417
+ ----
418
+
419
+ - Identify ramps with only one frame as invalid and do not linearize them. (`#62 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/62>`__)
420
+
421
+
422
+ v0.0.11 (2023-10-05)
423
+ ====================
424
+
425
+ Features
426
+ --------
427
+
428
+ - Removes casts and flips used when loading parameter files. The files are now changed to be in the format we want. (`#68 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/68>`__)
429
+
430
+
431
+ v0.0.10 (2023-09-29)
432
+ ====================
433
+
434
+ Misc
435
+ ----
436
+
437
+ - Remove and edit selected APM spans to reduce load on aggregating span data. (`#64 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/64>`__)
438
+
439
+
440
+ v0.0.9 (2023-09-29)
441
+ ===================
442
+
443
+ Features
444
+ --------
445
+
446
+ - Removes all references to the FitsDataMixin and its methods, which are deprecated. Uses the new self.read() and self.write() methods with encoder and decoder support. (`#63 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/63>`__)
447
+
448
+
449
+ Misc
450
+ ----
451
+
452
+ - Update pillow to address security vulnerability. (`#66 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/66>`__)
453
+
454
+
455
+ v0.0.8 (2023-09-21)
456
+ ===================
457
+
458
+ Misc
459
+ ----
460
+
461
+ - Update dkist-fits-specifications to conform to Revision I of SPEC-0122.
462
+
463
+
464
+ v0.0.7 (2023-09-11)
465
+ ===================
466
+
467
+ Bugfixes
468
+ --------
469
+
470
+ - Fixes error in intermediate file mixin log statement. (`#57 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/57>`__)
471
+
472
+
473
+ Misc
474
+ ----
475
+
476
+ - Refactor to reduce complexity and hidden mixin->mixin dependency. (`#55 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/55>`__)
477
+
478
+
479
+ v0.0.6 (2023-09-08)
480
+ ===================
481
+
482
+ Misc
483
+ ----
484
+
485
+ - Use the latest version of dkist-processing-common (4.1.2) to allow the Linearity Correction task to be run on a higher memory worker. (`#60 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/60>`__)
486
+
487
+
488
+ v0.0.5 (2023-09-06)
489
+ ===================
490
+
491
+ Misc
492
+ ----
493
+
494
+ - Refactor linearity correction to improve memory usage. (`#59 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/59>`__)
495
+
496
+
497
+ v0.0.4 (2023-09-06)
498
+ ===================
499
+
500
+ Misc
501
+ ----
502
+
503
+ - Update to version 4.1.1 of dkist-processing-common which primarily adds logging and scratch file name uniqueness. (`#58 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/58>`__)
504
+
505
+
506
+ v0.0.3 (2023-08-31)
507
+ ===================
508
+
509
+ Misc
510
+ ----
511
+
512
+ - Remove parallel computations from the linearity correction task. (`#56 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/56>`__)
513
+
514
+
515
+ v0.0.2 (2023-08-25)
516
+ ===================
517
+
518
+ Misc
519
+ ----
520
+
521
+ - Change workflow names in documentation builds.
522
+
523
+
524
+ v0.0.1 (2023-08-25)
525
+ ===================
526
+
527
+ Misc
528
+ ----
529
+
530
+ - Initial release of pipeline for science review
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dkist_processing_cryonirsp
3
- Version: 0.0.27rc1
3
+ Version: 0.0.50
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
@@ -11,6 +11,8 @@ Classifier: Programming Language :: Python :: 3
11
11
  Classifier: Programming Language :: Python :: 3.11
12
12
  Requires-Python: >=3.11
13
13
  Provides-Extra: test
14
+ Provides-Extra: inventory
15
+ Provides-Extra: asdf
14
16
  Provides-Extra: grogu
15
17
  Provides-Extra: docs
16
18
 
@@ -50,7 +50,7 @@ definitions:
50
50
  script:
51
51
  - pip install -U pip
52
52
  - pip install .[test]
53
- - pytest -v -n auto --cov -m "not development" dkist_processing_cryonirsp
53
+ - pytest -v -n auto --dist worksteal --cov -m "not development" dkist_processing_cryonirsp
54
54
  services:
55
55
  - redis
56
56
  - step: &push_workflow
@@ -5,6 +5,8 @@ from enum import unique
5
5
  from dkist_processing_common.models.constants import BudName
6
6
  from dkist_processing_common.models.constants import ConstantsBase
7
7
 
8
+ from dkist_processing_cryonirsp.models.exposure_conditions import ExposureConditions
9
+
8
10
 
9
11
  @unique
10
12
  class CryonirspBudName(Enum):
@@ -19,11 +21,16 @@ class CryonirspBudName(Enum):
19
21
  camera_readout_mode = "CAM_READOUT_MODE"
20
22
  num_meas = "NUM_MEAS"
21
23
  time_obs_list = "TIME_OBS_LIST"
22
- lamp_gain_exposure_times = "LAMP_GAIN_EXPOSURE_TIMES"
23
- solar_gain_exposure_times = "SOLAR_GAIN_EXPOSURE_TIMES"
24
- polcal_exposure_times = "POLCAL_EXPOSURE_TIMES"
25
- observe_exposure_times = "OBSERVE_EXPOSURE_TIMES"
26
- non_dark_and_non_polcal_task_exposure_times = "NON_DARK_AND_NON_POLCAL_TASK_EXPOSURE_TIMES"
24
+ exposure_conditions_list = "EXPOSURE_CONDITIONS_LIST"
25
+ dark_frame_exposure_conditions_list = "DARK_FRAME_EXPOSURE_CONDITIONS_LIST"
26
+ lamp_gain_exposure_conditions_list = "LAMP_GAIN_EXPOSURE_CONDITIONS_LIST"
27
+ solar_gain_exposure_conditions_list = "SOLAR_GAIN_EXPOSURE_CONDITIONS_LIST"
28
+ polcal_exposure_conditions_list = "POLCAL_EXPOSURE_CONDITIONS_LIST"
29
+ observe_exposure_conditions_list = "OBSERVE_EXPOSURE_CONDITIONS_LIST"
30
+ non_dark_and_non_polcal_task_exposure_conditions_list = (
31
+ "NON_DARK_AND_NON_POLCAL_TASK_EXPOSURE_CONDITIONS_LIST"
32
+ )
33
+ picky_dark_exposure_conditions_list = "PICKY_DARK_EXPOSURE_CONDITIONS_LIST"
27
34
  modulator_spin_mode = "MODULATOR_SPIN_MODE"
28
35
  axis_1_type = "AXIS_1_TYPE"
29
36
  axis_2_type = "AXIS_2_TYPE"
@@ -32,7 +39,6 @@ class CryonirspBudName(Enum):
32
39
  roi_1_origin_y = "ROI_1_ORIGIN_Y"
33
40
  roi_1_size_x = "ROI_1_SIZE_X"
34
41
  roi_1_size_y = "ROI_1_SIZE_Y"
35
- picky_dark_exposure_times = "PICKY_DARK_EXPOSURE_TIMES"
36
42
  optical_density_filter_picky_bud = "OPTICAL_DENSITY_FILTER_PICKY_BUD"
37
43
 
38
44
 
@@ -83,32 +89,70 @@ class CryonirspConstants(ConstantsBase):
83
89
  return self._db_dict[CryonirspBudName.time_obs_list.value]
84
90
 
85
91
  @property
86
- def lamp_gain_exposure_times(self) -> [float]:
87
- """Construct a list of lamp gain exposure times for the dataset."""
88
- return self._db_dict[CryonirspBudName.lamp_gain_exposure_times.value]
92
+ def exposure_conditions_list(self) -> [ExposureConditions]:
93
+ """Construct a list of ExposureConditions tuples for the dataset."""
94
+ raw_conditions: list[list[int, str]] = self._db_dict[
95
+ CryonirspBudName.exposure_conditions.value
96
+ ]
97
+ conditions = [ExposureConditions(*item) for item in raw_conditions]
98
+ return conditions
99
+
100
+ @property
101
+ def dark_exposure_conditions_list(self) -> [ExposureConditions]:
102
+ """Construct a list of dark frame ExposureConditions tuples for the dataset."""
103
+ raw_conditions: list[list[int, str]] = self._db_dict[
104
+ CryonirspBudName.dark_frame_exposure_conditions_list.value
105
+ ]
106
+ conditions = [ExposureConditions(*item) for item in raw_conditions]
107
+ return conditions
108
+
109
+ @property
110
+ def lamp_gain_exposure_conditions_list(self) -> [ExposureConditions]:
111
+ """Construct a list of lamp gain ExposureConditions tuples for the dataset."""
112
+ raw_conditions: list[list[int, str]] = self._db_dict[
113
+ CryonirspBudName.lamp_gain_exposure_conditions_list.value
114
+ ]
115
+ conditions = [ExposureConditions(*item) for item in raw_conditions]
116
+ return conditions
89
117
 
90
118
  @property
91
- def solar_gain_exposure_times(self) -> [float]:
92
- """Construct a list of solar gain exposure times for the dataset."""
93
- return self._db_dict[CryonirspBudName.solar_gain_exposure_times.value]
119
+ def solar_gain_exposure_conditions_list(self) -> [ExposureConditions]:
120
+ """Construct a list of solar gain ExposureConditions tuples for the dataset."""
121
+ raw_conditions: list[list[int, str]] = self._db_dict[
122
+ CryonirspBudName.solar_gain_exposure_conditions_list.value
123
+ ]
124
+ conditions = [ExposureConditions(*item) for item in raw_conditions]
125
+ return conditions
94
126
 
95
127
  @property
96
- def polcal_exposure_times(self) -> [float]:
97
- """Construct a list of polcal exposure times for the dataset."""
128
+ def observe_exposure_conditions_list(self) -> [ExposureConditions]:
129
+ """Construct a list of observe ExposureConditions tuples for the dataset."""
130
+ raw_conditions: list[list[int, str]] = self._db_dict[
131
+ CryonirspBudName.observe_exposure_conditions_list.value
132
+ ]
133
+ conditions = [ExposureConditions(*item) for item in raw_conditions]
134
+ return conditions
135
+
136
+ @property
137
+ def polcal_exposure_conditions_list(self) -> [ExposureConditions]:
138
+ """Construct a list of polcal ExposureConditions tuples for the dataset."""
98
139
  if self.correct_for_polarization:
99
- return self._db_dict[CryonirspBudName.polcal_exposure_times.value]
140
+ raw_conditions: list[list[int, str]] = self._db_dict[
141
+ CryonirspBudName.polcal_exposure_conditions_list.value
142
+ ]
143
+ conditions = [ExposureConditions(*item) for item in raw_conditions]
144
+ return conditions
100
145
  else:
101
146
  return []
102
147
 
103
148
  @property
104
- def observe_exposure_times(self) -> [float]:
105
- """Construct a list of observe exposure times."""
106
- return self._db_dict[CryonirspBudName.observe_exposure_times.value]
107
-
108
- @property
109
- def non_dark_and_non_polcal_task_exposure_times(self) -> [float]:
149
+ def non_dark_and_non_polcal_task_exposure_conditions_list(self) -> [ExposureConditions]:
110
150
  """Return a list of all exposure times required for all tasks other than dark and polcal."""
111
- return self._db_dict[CryonirspBudName.non_dark_and_non_polcal_task_exposure_times.value]
151
+ raw_conditions: list[list[int, str]] = self._db_dict[
152
+ CryonirspBudName.non_dark_and_non_polcal_task_exposure_conditions_list.value
153
+ ]
154
+ conditions = [ExposureConditions(*item) for item in raw_conditions]
155
+ return conditions
112
156
 
113
157
  @property
114
158
  def num_modstates(self) -> int: