dkist-processing-cryonirsp 2.1.4__tar.gz → 3.0.0__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.
Files changed (141) hide show
  1. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/.pre-commit-config.yaml +8 -2
  2. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/CHANGELOG.rst +34 -0
  3. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/PKG-INFO +63 -48
  4. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/README.rst +17 -0
  5. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/SCIENCE_CHANGELOG.rst +10 -0
  6. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/codecs/fits.py +3 -3
  7. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/models/beam_boundaries.py +13 -13
  8. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/models/parameters.py +27 -15
  9. dkist_processing_cryonirsp-3.0.0/dkist_processing_cryonirsp/tasks/beam_boundaries_base.py +252 -0
  10. dkist_processing_cryonirsp-3.0.0/dkist_processing_cryonirsp/tasks/ci_beam_boundaries.py +25 -0
  11. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tasks/dark.py +2 -2
  12. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tasks/gain.py +3 -3
  13. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tasks/instrument_polarization.py +4 -4
  14. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tasks/science_base.py +2 -2
  15. dkist_processing_cryonirsp-3.0.0/dkist_processing_cryonirsp/tasks/sp_beam_boundaries.py +52 -0
  16. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tasks/sp_geometric.py +2 -2
  17. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tasks/sp_solar_gain.py +2 -2
  18. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tasks/write_dataset_extras.py +29 -0
  19. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tests/conftest.py +10 -3
  20. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tests/local_trial_workflows/l0_cals_only.py +14 -14
  21. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tests/local_trial_workflows/l0_to_l1.py +14 -14
  22. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tests/local_trial_workflows/local_trial_helpers.py +4 -4
  23. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tests/test_ci_beam_boundaries.py +22 -24
  24. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tests/test_instrument_polarization.py +2 -2
  25. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tests/test_parameters.py +2 -0
  26. dkist_processing_cryonirsp-3.0.0/dkist_processing_cryonirsp/tests/test_sp_beam_boundaries.py +208 -0
  27. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tests/test_write_dataset_extras.py +6 -0
  28. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/workflows/ci_l0_processing.py +3 -3
  29. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/workflows/sp_l0_processing.py +3 -3
  30. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/workflows/trial_workflows.py +6 -6
  31. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp.egg-info/PKG-INFO +63 -48
  32. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp.egg-info/requires.txt +45 -47
  33. dkist_processing_cryonirsp-3.0.0/dkist_processing_cryonirsp.egg-info/scm_version.json +8 -0
  34. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/docs/dataset_extras.rst +9 -0
  35. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/pyproject.toml +56 -49
  36. dkist_processing_cryonirsp-2.1.4/dkist_processing_cryonirsp/tasks/beam_boundaries_base.py +0 -261
  37. dkist_processing_cryonirsp-2.1.4/dkist_processing_cryonirsp/tasks/ci_beam_boundaries.py +0 -56
  38. dkist_processing_cryonirsp-2.1.4/dkist_processing_cryonirsp/tasks/sp_beam_boundaries.py +0 -271
  39. dkist_processing_cryonirsp-2.1.4/dkist_processing_cryonirsp/tests/test_sp_beam_boundaries.py +0 -121
  40. dkist_processing_cryonirsp-2.1.4/dkist_processing_cryonirsp.egg-info/scm_version.json +0 -8
  41. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/.gitignore +0 -0
  42. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/.readthedocs.yml +0 -0
  43. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/.rovodev/.review-agent.md +0 -0
  44. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/.snyk +0 -0
  45. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/bitbucket-pipelines.yml +0 -0
  46. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/changelog/.gitempty +0 -0
  47. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/__init__.py +0 -0
  48. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/codecs/__init__.py +0 -0
  49. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/config.py +0 -0
  50. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/models/__init__.py +0 -0
  51. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/models/constants.py +0 -0
  52. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/models/dataset_extras.py +0 -0
  53. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/models/exposure_conditions.py +0 -0
  54. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/models/fits_access.py +0 -0
  55. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/models/tags.py +0 -0
  56. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/models/task_name.py +0 -0
  57. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/parsers/__init__.py +0 -0
  58. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/parsers/check_for_gains.py +0 -0
  59. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/parsers/cryonirsp_l0_fits_access.py +0 -0
  60. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/parsers/cryonirsp_l1_fits_access.py +0 -0
  61. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/parsers/exposure_conditions.py +0 -0
  62. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/parsers/map_repeats.py +0 -0
  63. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/parsers/measurements.py +0 -0
  64. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/parsers/modstates.py +0 -0
  65. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/parsers/optical_density_filters.py +0 -0
  66. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/parsers/polarimetric_check.py +0 -0
  67. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/parsers/scan_step.py +0 -0
  68. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/parsers/time.py +0 -0
  69. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tasks/__init__.py +0 -0
  70. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tasks/assemble_movie.py +0 -0
  71. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tasks/bad_pixel_map.py +0 -0
  72. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tasks/ci_science.py +0 -0
  73. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tasks/cryonirsp_base.py +0 -0
  74. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tasks/l1_output_data.py +0 -0
  75. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tasks/linearity_correction.py +0 -0
  76. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tasks/make_movie_frames.py +0 -0
  77. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tasks/mixin/__init__.py +0 -0
  78. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tasks/mixin/corrections.py +0 -0
  79. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tasks/mixin/shift_measurements.py +0 -0
  80. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tasks/parse.py +0 -0
  81. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tasks/polcal_as_science.py +0 -0
  82. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tasks/quality_metrics.py +0 -0
  83. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tasks/sp_science.py +0 -0
  84. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tasks/sp_wavelength_calibration.py +0 -0
  85. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tasks/write_l1.py +0 -0
  86. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tests/__init__.py +0 -0
  87. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tests/header_models.py +0 -0
  88. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tests/local_trial_workflows/__init__.py +0 -0
  89. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tests/local_trial_workflows/linearize_only.py +0 -0
  90. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tests/test_assemble_movie.py +0 -0
  91. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tests/test_assemble_qualilty.py +0 -0
  92. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tests/test_bad_pixel_maps.py +0 -0
  93. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tests/test_ci_science.py +0 -0
  94. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tests/test_corrections.py +0 -0
  95. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tests/test_cryo_base.py +0 -0
  96. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tests/test_cryo_constants.py +0 -0
  97. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tests/test_dark.py +0 -0
  98. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tests/test_fits_access.py +0 -0
  99. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tests/test_gain.py +0 -0
  100. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tests/test_linearity_correction.py +0 -0
  101. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tests/test_make_movie_frames.py +0 -0
  102. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tests/test_parse.py +0 -0
  103. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tests/test_polcal_as_science.py +0 -0
  104. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tests/test_quality.py +0 -0
  105. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tests/test_sp_geometric.py +0 -0
  106. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tests/test_sp_make_movie_frames.py +0 -0
  107. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tests/test_sp_science.py +0 -0
  108. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tests/test_sp_solar.py +0 -0
  109. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tests/test_sp_wavelength_calibration.py +0 -0
  110. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tests/test_trial_create_quality_report.py +0 -0
  111. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tests/test_workflows.py +0 -0
  112. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/tests/test_write_l1.py +0 -0
  113. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp/workflows/__init__.py +0 -0
  114. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp.egg-info/SOURCES.txt +0 -0
  115. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp.egg-info/dependency_links.txt +0 -0
  116. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp.egg-info/scm_file_list.json +0 -0
  117. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/dkist_processing_cryonirsp.egg-info/top_level.txt +0 -0
  118. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/docs/Makefile +0 -0
  119. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/docs/bad_pixel_calibration.rst +0 -0
  120. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/docs/beam_angle_calculation.rst +0 -0
  121. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/docs/beam_boundary_computation.rst +0 -0
  122. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/docs/changelog.rst +0 -0
  123. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/docs/ci_science_calibration.rst +0 -0
  124. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/docs/conf.py +0 -0
  125. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/docs/index.rst +0 -0
  126. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/docs/l0_to_l1_cryonirsp_ci-full-trial.rst +0 -0
  127. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/docs/l0_to_l1_cryonirsp_ci.rst +0 -0
  128. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/docs/l0_to_l1_cryonirsp_sp-full-trial.rst +0 -0
  129. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/docs/l0_to_l1_cryonirsp_sp.rst +0 -0
  130. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/docs/landing_page.rst +0 -0
  131. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/docs/linearization.rst +0 -0
  132. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/docs/make.bat +0 -0
  133. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/docs/requirements.txt +0 -0
  134. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/docs/requirements_table.rst +0 -0
  135. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/docs/scientific_changelog.rst +0 -0
  136. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/docs/sp_science_calibration.rst +0 -0
  137. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/docs/wavelength_calibration.rst +0 -0
  138. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/licenses/LICENSE.rst +0 -0
  139. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/science_towncrier.sh +0 -0
  140. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/setup.cfg +0 -0
  141. {dkist_processing_cryonirsp-2.1.4 → dkist_processing_cryonirsp-3.0.0}/towncrier_science.toml +0 -0
@@ -27,7 +27,13 @@ repos:
27
27
  args:
28
28
  - --convention=numpy
29
29
  - --add-ignore=D105
30
- - repo: https://bitbucket.org/dkistdc/pre-commit-hooks
31
- rev: v1.0.2
30
+ - repo: https://bitbucket.org/dkistdc/pre-commit-hooks.git
31
+ rev: v1.1.0
32
32
  hooks:
33
33
  - id: calibration-workflow-name
34
+ - id: dkist-env-table
35
+ language_version: python3.13
36
+ require_serial: true
37
+ additional_dependencies:
38
+ - dkist-processing-common
39
+ - dkist-service-configuration
@@ -1,3 +1,37 @@
1
+ v3.0.0 (2026-10-08)
2
+ ===================
3
+
4
+ Features
5
+ --------
6
+
7
+ - Replace `BeamBoundariesCalibration` task with `SpatialBeamBoundaries`, which only computes the boundaries of the illuminated region along the spatial axis.
8
+ The spectral axis (or second spatial axis, for CI) boundaries are hard-coded as a pipeline parameter. (`#306 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/306>`__)
9
+ - Save the full set of beam boundaries used to extract illuminated regions from the raw data as a dataset extra (called "BEAM_BOUNDARIES"). (`#306 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/306>`__)
10
+
11
+
12
+ Misc
13
+ ----
14
+
15
+ - Replace "y" and "x" language with "axis_0" and "axis_1", respectively, in the `BeamBoundaries` model. (`#306 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/306>`__)
16
+
17
+
18
+ Documentation
19
+ -------------
20
+
21
+ - Update online documentation "Dataset Extras" page to include information about the beam boundaries extra. (`#306 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/306>`__)
22
+
23
+
24
+ v2.1.5 (2026-10-08)
25
+ ===================
26
+
27
+ Misc
28
+ ----
29
+
30
+ - Integrated the ``dkist-env-table`` pre-commit hook and updated the README environment-variable table to match the current configuration. (`#303 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/303>`__)
31
+ - Bump `dkist-fits-specifications` to v4.30.0, which adds support for the BEAM BOUNDARIES dataset extra. (`#308 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/308>`__)
32
+ - Bump `dkist-processing-common` to v14.6.0. No major changes. (`#308 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/308>`__)
33
+
34
+
1
35
  v2.1.4 (2026-10-06)
2
36
  ===================
3
37
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dkist-processing-cryonirsp
3
- Version: 2.1.4
3
+ Version: 3.0.0
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
@@ -15,14 +15,13 @@ Requires-Python: >=3.13
15
15
  Description-Content-Type: text/x-rst
16
16
  Requires-Dist: Pillow==10.4.0
17
17
  Requires-Dist: astropy==7.0.2
18
- Requires-Dist: dkist-fits-specifications==4.29.0
18
+ Requires-Dist: dkist-fits-specifications==4.30.0
19
19
  Requires-Dist: dkist-header-validator==6.0.0
20
- Requires-Dist: dkist-processing-common==14.5.2
20
+ Requires-Dist: dkist-processing-common==14.6.0
21
21
  Requires-Dist: dkist-processing-math==2.2.3
22
22
  Requires-Dist: dkist-processing-pac==3.1.2
23
23
  Requires-Dist: dkist-spectral-lines==3.0.1
24
24
  Requires-Dist: solar-wavelength-calibration==2.0.4
25
- Requires-Dist: largestinteriorrectangle==0.2.1
26
25
  Requires-Dist: dkist-service-configuration==4.3.0
27
26
  Requires-Dist: moviepy==2.1.2
28
27
  Requires-Dist: numba==0.61.2
@@ -63,7 +62,7 @@ Requires-Dist: pytest; extra == "docs"
63
62
  Requires-Dist: dkist-sphinx-theme; extra == "docs"
64
63
  Provides-Extra: frozen
65
64
  Requires-Dist: Deprecated==3.0.0; extra == "frozen"
66
- Requires-Dist: ImageIO==2.38.0; extra == "frozen"
65
+ Requires-Dist: ImageIO==2.38.1; extra == "frozen"
67
66
  Requires-Dist: Jinja2==3.1.6; extra == "frozen"
68
67
  Requires-Dist: Mako==1.4.3; extra == "frozen"
69
68
  Requires-Dist: MarkupSafe==3.0.4; extra == "frozen"
@@ -72,7 +71,7 @@ Requires-Dist: PyJWT==2.15.1; extra == "frozen"
72
71
  Requires-Dist: PyYAML==6.0.3; extra == "frozen"
73
72
  Requires-Dist: PyYAML-ft==8.0.0; extra == "frozen"
74
73
  Requires-Dist: Pygments==2.21.0; extra == "frozen"
75
- Requires-Dist: SQLAlchemy==2.1.3; extra == "frozen"
74
+ Requires-Dist: SQLAlchemy==2.1.4; extra == "frozen"
76
75
  Requires-Dist: Send2Trash==2.1.0; extra == "frozen"
77
76
  Requires-Dist: a2wsgi==1.10.10; extra == "frozen"
78
77
  Requires-Dist: aioftp==0.28.3; extra == "frozen"
@@ -108,14 +107,14 @@ Requires-Dist: astropy==7.0.2; extra == "frozen"
108
107
  Requires-Dist: astropy-iers-data==0.2026.10.5.1.0.7; extra == "frozen"
109
108
  Requires-Dist: asttokens==3.0.2; extra == "frozen"
110
109
  Requires-Dist: async-lru==2.3.0; extra == "frozen"
111
- Requires-Dist: asyncpg==0.31.0; extra == "frozen"
110
+ Requires-Dist: asyncpg==0.32.0; extra == "frozen"
112
111
  Requires-Dist: attrs==26.1.0; extra == "frozen"
113
112
  Requires-Dist: babel==2.18.0; extra == "frozen"
114
113
  Requires-Dist: beautifulsoup4==4.15.0; extra == "frozen"
115
114
  Requires-Dist: billiard==4.3.1; extra == "frozen"
116
115
  Requires-Dist: bleach==6.4.0; extra == "frozen"
117
- Requires-Dist: boto3==1.43.108; extra == "frozen"
118
- Requires-Dist: botocore==1.43.108; extra == "frozen"
116
+ Requires-Dist: boto3==1.43.110; extra == "frozen"
117
+ Requires-Dist: botocore==1.43.110; extra == "frozen"
119
118
  Requires-Dist: cachetools==7.2.1; extra == "frozen"
120
119
  Requires-Dist: cadwyn==7.0.0; extra == "frozen"
121
120
  Requires-Dist: celery==5.6.3; extra == "frozen"
@@ -139,14 +138,14 @@ Requires-Dist: decorator==5.3.1; extra == "frozen"
139
138
  Requires-Dist: defusedxml==0.7.1; extra == "frozen"
140
139
  Requires-Dist: dill==0.4.1; extra == "frozen"
141
140
  Requires-Dist: dkist-header-validator==6.0.0; extra == "frozen"
142
- Requires-Dist: dkist-processing-common==14.5.2; extra == "frozen"
141
+ Requires-Dist: dkist-processing-common==14.6.0; extra == "frozen"
143
142
  Requires-Dist: dkist-processing-core==7.5.0; extra == "frozen"
144
- Requires-Dist: dkist-processing-cryonirsp==2.1.4; extra == "frozen"
143
+ Requires-Dist: dkist-processing-cryonirsp==3.0.0; extra == "frozen"
145
144
  Requires-Dist: dkist-processing-math==2.2.3; extra == "frozen"
146
145
  Requires-Dist: dkist-processing-pac==3.1.2; extra == "frozen"
147
146
  Requires-Dist: dkist-service-configuration==4.3.0; extra == "frozen"
148
147
  Requires-Dist: dkist-spectral-lines==3.0.1; extra == "frozen"
149
- Requires-Dist: dkist_fits_specifications==4.29.0; extra == "frozen"
148
+ Requires-Dist: dkist_fits_specifications==4.30.0; extra == "frozen"
150
149
  Requires-Dist: dnspython==2.8.0; extra == "frozen"
151
150
  Requires-Dist: email-validator==2.3.0; extra == "frozen"
152
151
  Requires-Dist: executing==2.2.1; extra == "frozen"
@@ -180,8 +179,8 @@ Requires-Dist: itsdangerous==2.2.0; extra == "frozen"
180
179
  Requires-Dist: jedi==0.20.0; extra == "frozen"
181
180
  Requires-Dist: jmespath==1.1.0; extra == "frozen"
182
181
  Requires-Dist: joblib==1.6.0; extra == "frozen"
183
- Requires-Dist: json5==0.15.0; extra == "frozen"
184
- Requires-Dist: jsonpointer==3.1.1; extra == "frozen"
182
+ Requires-Dist: json5==0.16.0; extra == "frozen"
183
+ Requires-Dist: jsonpointer==3.2.0; extra == "frozen"
185
184
  Requires-Dist: jsonschema==4.26.0; extra == "frozen"
186
185
  Requires-Dist: jsonschema-specifications==2025.9.1; extra == "frozen"
187
186
  Requires-Dist: jupyter-events==0.12.1; extra == "frozen"
@@ -196,7 +195,6 @@ Requires-Dist: jupyterlab_pygments==0.3.0; extra == "frozen"
196
195
  Requires-Dist: jupyterlab_server==2.28.1; extra == "frozen"
197
196
  Requires-Dist: kiwisolver==1.5.1; extra == "frozen"
198
197
  Requires-Dist: kombu==5.6.2; extra == "frozen"
199
- Requires-Dist: largestinteriorrectangle==0.2.1; extra == "frozen"
200
198
  Requires-Dist: lark==1.3.1; extra == "frozen"
201
199
  Requires-Dist: lazy-loader==0.6; extra == "frozen"
202
200
  Requires-Dist: lazy-object-proxy==1.12.0; extra == "frozen"
@@ -221,39 +219,39 @@ Requires-Dist: natsort==8.4.0; extra == "frozen"
221
219
  Requires-Dist: nbclient==0.11.0; extra == "frozen"
222
220
  Requires-Dist: nbconvert==7.17.1; extra == "frozen"
223
221
  Requires-Dist: nbformat==5.11.1; extra == "frozen"
224
- Requires-Dist: nest-asyncio2==1.7.3; extra == "frozen"
222
+ Requires-Dist: nest-asyncio2==1.7.4; extra == "frozen"
225
223
  Requires-Dist: networkx==3.7; extra == "frozen"
226
224
  Requires-Dist: notebook==7.6.3; extra == "frozen"
227
225
  Requires-Dist: notebook_shim==0.2.4; extra == "frozen"
228
226
  Requires-Dist: numba==0.61.2; extra == "frozen"
229
227
  Requires-Dist: numpy==2.2.5; extra == "frozen"
230
228
  Requires-Dist: object-clerk==1.0.0; extra == "frozen"
231
- Requires-Dist: opentelemetry-api==1.45.0; extra == "frozen"
232
- Requires-Dist: opentelemetry-exporter-http-transport==0.66b0; extra == "frozen"
233
- Requires-Dist: opentelemetry-exporter-otlp==1.45.0; extra == "frozen"
234
- Requires-Dist: opentelemetry-exporter-otlp-common==0.66b0; extra == "frozen"
235
- Requires-Dist: opentelemetry-exporter-otlp-proto-common==1.45.0; extra == "frozen"
236
- Requires-Dist: opentelemetry-exporter-otlp-proto-grpc==1.45.0; extra == "frozen"
237
- Requires-Dist: opentelemetry-exporter-otlp-proto-http==1.45.0; extra == "frozen"
238
- Requires-Dist: opentelemetry-instrumentation==0.66b0; extra == "frozen"
239
- Requires-Dist: opentelemetry-instrumentation-aiohttp-client==0.66b0; extra == "frozen"
240
- Requires-Dist: opentelemetry-instrumentation-asgi==0.66b0; extra == "frozen"
241
- Requires-Dist: opentelemetry-instrumentation-botocore==0.66b0; extra == "frozen"
242
- Requires-Dist: opentelemetry-instrumentation-celery==0.66b0; extra == "frozen"
243
- Requires-Dist: opentelemetry-instrumentation-dbapi==0.66b0; extra == "frozen"
244
- Requires-Dist: opentelemetry-instrumentation-fastapi==0.66b0; extra == "frozen"
245
- Requires-Dist: opentelemetry-instrumentation-pika==0.66b0; extra == "frozen"
246
- Requires-Dist: opentelemetry-instrumentation-psycopg2==0.66b0; extra == "frozen"
247
- Requires-Dist: opentelemetry-instrumentation-pymongo==0.66b0; extra == "frozen"
248
- Requires-Dist: opentelemetry-instrumentation-redis==0.66b0; extra == "frozen"
249
- Requires-Dist: opentelemetry-instrumentation-requests==0.66b0; extra == "frozen"
250
- Requires-Dist: opentelemetry-instrumentation-sqlalchemy==0.66b0; extra == "frozen"
251
- Requires-Dist: opentelemetry-instrumentation-system-metrics==0.66b0; extra == "frozen"
229
+ Requires-Dist: opentelemetry-api==1.45.1; extra == "frozen"
230
+ Requires-Dist: opentelemetry-exporter-http-transport==0.66b1; extra == "frozen"
231
+ Requires-Dist: opentelemetry-exporter-otlp==1.45.1; extra == "frozen"
232
+ Requires-Dist: opentelemetry-exporter-otlp-common==0.66b1; extra == "frozen"
233
+ Requires-Dist: opentelemetry-exporter-otlp-proto-common==1.45.1; extra == "frozen"
234
+ Requires-Dist: opentelemetry-exporter-otlp-proto-grpc==1.45.1; extra == "frozen"
235
+ Requires-Dist: opentelemetry-exporter-otlp-proto-http==1.45.1; extra == "frozen"
236
+ Requires-Dist: opentelemetry-instrumentation==0.66b1; extra == "frozen"
237
+ Requires-Dist: opentelemetry-instrumentation-aiohttp-client==0.66b1; extra == "frozen"
238
+ Requires-Dist: opentelemetry-instrumentation-asgi==0.66b1; extra == "frozen"
239
+ Requires-Dist: opentelemetry-instrumentation-botocore==0.66b1; extra == "frozen"
240
+ Requires-Dist: opentelemetry-instrumentation-celery==0.66b1; extra == "frozen"
241
+ Requires-Dist: opentelemetry-instrumentation-dbapi==0.66b1; extra == "frozen"
242
+ Requires-Dist: opentelemetry-instrumentation-fastapi==0.66b1; extra == "frozen"
243
+ Requires-Dist: opentelemetry-instrumentation-pika==0.66b1; extra == "frozen"
244
+ Requires-Dist: opentelemetry-instrumentation-psycopg2==0.66b1; extra == "frozen"
245
+ Requires-Dist: opentelemetry-instrumentation-pymongo==0.66b1; extra == "frozen"
246
+ Requires-Dist: opentelemetry-instrumentation-redis==0.66b1; extra == "frozen"
247
+ Requires-Dist: opentelemetry-instrumentation-requests==0.66b1; extra == "frozen"
248
+ Requires-Dist: opentelemetry-instrumentation-sqlalchemy==0.66b1; extra == "frozen"
249
+ Requires-Dist: opentelemetry-instrumentation-system-metrics==0.66b1; extra == "frozen"
252
250
  Requires-Dist: opentelemetry-propagator-aws-xray==1.0.2; extra == "frozen"
253
- Requires-Dist: opentelemetry-proto==1.45.0; extra == "frozen"
254
- Requires-Dist: opentelemetry-sdk==1.45.0; extra == "frozen"
255
- Requires-Dist: opentelemetry-semantic-conventions==0.66b0; extra == "frozen"
256
- Requires-Dist: opentelemetry-util-http==0.66b0; extra == "frozen"
251
+ Requires-Dist: opentelemetry-proto==1.45.1; extra == "frozen"
252
+ Requires-Dist: opentelemetry-sdk==1.45.1; extra == "frozen"
253
+ Requires-Dist: opentelemetry-semantic-conventions==0.66b1; extra == "frozen"
254
+ Requires-Dist: opentelemetry-util-http==0.66b1; extra == "frozen"
257
255
  Requires-Dist: outcome==1.3.0.post0; extra == "frozen"
258
256
  Requires-Dist: packaging==26.3; extra == "frozen"
259
257
  Requires-Dist: pandas==3.0.6; extra == "frozen"
@@ -267,7 +265,7 @@ Requires-Dist: pexpect==4.9.0; extra == "frozen"
267
265
  Requires-Dist: pika==1.4.4; extra == "frozen"
268
266
  Requires-Dist: pillow==10.4.0; extra == "frozen"
269
267
  Requires-Dist: pip==26.2.1; extra == "frozen"
270
- Requires-Dist: platformdirs==4.12.3; extra == "frozen"
268
+ Requires-Dist: platformdirs==4.12.4; extra == "frozen"
271
269
  Requires-Dist: pluggy==1.6.0; extra == "frozen"
272
270
  Requires-Dist: pooch==1.9.0; extra == "frozen"
273
271
  Requires-Dist: proglog==0.1.12; extra == "frozen"
@@ -281,11 +279,11 @@ Requires-Dist: psycopg-binary==3.3.6; extra == "frozen"
281
279
  Requires-Dist: psycopg2-binary==2.9.13; extra == "frozen"
282
280
  Requires-Dist: ptyprocess==0.7.0; extra == "frozen"
283
281
  Requires-Dist: pure_eval==0.2.4; extra == "frozen"
284
- Requires-Dist: pycparser==3.0; extra == "frozen"
285
- Requires-Dist: pydantic==2.13.5; extra == "frozen"
282
+ Requires-Dist: pycparser==3.1; extra == "frozen"
283
+ Requires-Dist: pydantic==2.14.0; extra == "frozen"
286
284
  Requires-Dist: pydantic-extra-types==2.11.1; extra == "frozen"
287
285
  Requires-Dist: pydantic-settings==2.15.0; extra == "frozen"
288
- Requires-Dist: pydantic_core==2.46.5; extra == "frozen"
286
+ Requires-Dist: pydantic_core==2.50.0; extra == "frozen"
289
287
  Requires-Dist: pyerfa==2.0.1.5; extra == "frozen"
290
288
  Requires-Dist: pygtrie==2.6.2; extra == "frozen"
291
289
  Requires-Dist: pyparsing==3.3.3; extra == "frozen"
@@ -294,7 +292,7 @@ Requires-Dist: python-dateutil==2.9.0.post0; extra == "frozen"
294
292
  Requires-Dist: python-dotenv==1.2.4; extra == "frozen"
295
293
  Requires-Dist: python-json-logger==4.2.0; extra == "frozen"
296
294
  Requires-Dist: python-multipart==0.0.32; extra == "frozen"
297
- Requires-Dist: python-slugify==9.1.2; extra == "frozen"
295
+ Requires-Dist: python-slugify==9.1.3; extra == "frozen"
298
296
  Requires-Dist: pytz==2026.5; extra == "frozen"
299
297
  Requires-Dist: pyzmq==27.2.0; extra == "frozen"
300
298
  Requires-Dist: redis==6.4.0; extra == "frozen"
@@ -305,7 +303,7 @@ Requires-Dist: rfc3986-validator==0.1.1; extra == "frozen"
305
303
  Requires-Dist: rfc3987-syntax==1.1.0; extra == "frozen"
306
304
  Requires-Dist: rich==15.0.0; extra == "frozen"
307
305
  Requires-Dist: rich-argparse==1.8.0; extra == "frozen"
308
- Requires-Dist: rich-toolkit==0.20.5; extra == "frozen"
306
+ Requires-Dist: rich-toolkit==0.20.6; extra == "frozen"
309
307
  Requires-Dist: rpds-py==2026.9.1; extra == "frozen"
310
308
  Requires-Dist: s3transfer==0.19.2; extra == "frozen"
311
309
  Requires-Dist: scikit-image==0.25.2; extra == "frozen"
@@ -337,7 +335,7 @@ Requires-Dist: tinycss2==1.5.1; extra == "frozen"
337
335
  Requires-Dist: tornado==6.5.10; extra == "frozen"
338
336
  Requires-Dist: tqdm==4.70.1; extra == "frozen"
339
337
  Requires-Dist: traitlets==5.16.1; extra == "frozen"
340
- Requires-Dist: typer==0.27.2; extra == "frozen"
338
+ Requires-Dist: typer==0.27.3; extra == "frozen"
341
339
  Requires-Dist: typing-inspection==0.4.4; extra == "frozen"
342
340
  Requires-Dist: typing_extensions==4.16.0; extra == "frozen"
343
341
  Requires-Dist: tzdata==2026.5; extra == "frozen"
@@ -380,6 +378,8 @@ in their own package facilitates using the build_utils to test the integrity of
380
378
  Environment Variables
381
379
  ---------------------
382
380
 
381
+ .. dkist-env-table: start
382
+
383
383
  .. list-table::
384
384
  :widths: 10 90
385
385
  :header-rows: 1
@@ -471,6 +471,21 @@ Environment Variables
471
471
  * - FTS_ATLAS_DATA_DIR
472
472
  - annotation=Union[str, NoneType] required=False default=None description='Common cached directory for a downloaded FTS Atlas.'
473
473
 
474
+ .. dkist-env-table: end
475
+
476
+ Maintaining the generated table
477
+ ###############################
478
+
479
+ The hook's additional dependencies are intentionally unpinned to avoid duplicating
480
+ versions maintained in ``pyproject.toml``. Consequently, the generated table may
481
+ temporarily reflect a newer published parent configuration than the version pinned
482
+ by this project.
483
+
484
+ When developing against an upstream release candidate that changes configuration
485
+ fields, temporarily pin the relevant hook dependency in
486
+ ``.pre-commit-config.yaml`` to that RC. Remove the temporary pin after the final
487
+ upstream release is available.
488
+
474
489
  Development
475
490
  -----------
476
491
  .. code-block:: bash
@@ -15,6 +15,8 @@ in their own package facilitates using the build_utils to test the integrity of
15
15
  Environment Variables
16
16
  ---------------------
17
17
 
18
+ .. dkist-env-table: start
19
+
18
20
  .. list-table::
19
21
  :widths: 10 90
20
22
  :header-rows: 1
@@ -106,6 +108,21 @@ Environment Variables
106
108
  * - FTS_ATLAS_DATA_DIR
107
109
  - annotation=Union[str, NoneType] required=False default=None description='Common cached directory for a downloaded FTS Atlas.'
108
110
 
111
+ .. dkist-env-table: end
112
+
113
+ Maintaining the generated table
114
+ ###############################
115
+
116
+ The hook's additional dependencies are intentionally unpinned to avoid duplicating
117
+ versions maintained in ``pyproject.toml``. Consequently, the generated table may
118
+ temporarily reflect a newer published parent configuration than the version pinned
119
+ by this project.
120
+
121
+ When developing against an upstream release candidate that changes configuration
122
+ fields, temporarily pin the relevant hook dependency in
123
+ ``.pre-commit-config.yaml`` to that RC. Remove the temporary pin after the final
124
+ upstream release is available.
125
+
109
126
  Development
110
127
  -----------
111
128
  .. code-block:: bash
@@ -1,3 +1,13 @@
1
+ v3.0.0 (2026-10-08)
2
+ ===================
3
+
4
+
5
+
6
+
7
+ - The task that computes the boundaries of the useful, illuminated regions of the INPUT data has been simplified and made more robust to data with very high
8
+ dynamic range. This improvement will most affect data taken at 1430nm, but will slightly change the final array shape for all data. (`#306 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/306>`__)
9
+
10
+
1
11
  v2.0.0 (2026-07-17)
2
12
  ===================
3
13
 
@@ -6,13 +6,13 @@ import numpy as np
6
6
  from dkist_processing_common.codecs.fits import fits_access_decoder as common_fits_access_decoder
7
7
  from dkist_processing_common.models.fits_access import FitsAccessBase
8
8
 
9
- from dkist_processing_cryonirsp.models.beam_boundaries import BeamBoundary
9
+ from dkist_processing_cryonirsp.models.beam_boundaries import BeamBoundaries
10
10
 
11
11
 
12
12
  def cryo_fits_access_decoder(
13
13
  path: Path,
14
14
  fits_access_class: FitsAccessBase = FitsAccessBase,
15
- beam_boundary: BeamBoundary | None = None,
15
+ beam_boundary: BeamBoundaries | None = None,
16
16
  **fits_access_kwargs,
17
17
  ) -> FitsAccessBase:
18
18
  """
@@ -33,7 +33,7 @@ def cryo_fits_access_decoder(
33
33
  def cryo_fits_array_decoder(
34
34
  path: Path,
35
35
  fits_access_class: FitsAccessBase = FitsAccessBase,
36
- beam_boundary: BeamBoundary | None = None,
36
+ beam_boundary: BeamBoundaries | None = None,
37
37
  auto_squeeze: bool = True,
38
38
  **fits_access_kwargs,
39
39
  ) -> np.array:
@@ -6,33 +6,33 @@ import numpy as np
6
6
 
7
7
 
8
8
  @dataclass
9
- class BeamBoundary:
9
+ class BeamBoundaries:
10
10
  """Simple dataclass to hold boundary information for the illuminated portion of the beam array."""
11
11
 
12
- y_min: int
13
- y_max: int
14
- x_min: int
15
- x_max: int
12
+ axis_0_min: int
13
+ axis_0_max: int
14
+ axis_1_min: int
15
+ axis_1_max: int
16
16
 
17
17
  @property
18
- def y_slice(self):
19
- """Return a slice object representing the illumination along the y-axis (numpy 0 axis)."""
20
- return slice(self.y_min, self.y_max)
18
+ def axis_0_slice(self):
19
+ """Return a slice object representing the illumination along the 0th axis."""
20
+ return slice(self.axis_0_min, self.axis_0_max)
21
21
 
22
22
  @property
23
- def x_slice(self):
24
- """Return a slice object representing the illumination along the x-axis (numpy 1 axis)."""
25
- return slice(self.x_min, self.x_max)
23
+ def axis_1_slice(self):
24
+ """Return a slice object representing the illumination along the 1st axis."""
25
+ return slice(self.axis_1_min, self.axis_1_max)
26
26
 
27
27
  @property
28
28
  def slices(self):
29
29
  """Return a tuple of slices in numpy order representing the illuminated portion of the beam array."""
30
- return self.y_slice, self.x_slice
30
+ return self.axis_0_slice, self.axis_1_slice
31
31
 
32
32
  @property
33
33
  def beam_boundaries(self):
34
34
  """Return a tuple containing the beam boundaries."""
35
- return self.y_min, self.y_max, self.x_min, self.x_max
35
+ return self.axis_0_min, self.axis_0_max, self.axis_1_min, self.axis_1_max
36
36
 
37
37
  @property
38
38
  def beam_boundaries_array(self):
@@ -110,27 +110,39 @@ class CryonirspParameters(ParameterBase, ParameterWavelengthMixin, ParameterArmI
110
110
  return self._find_most_recent_past_value("cryonirsp_polcal_pac_fit_mode")
111
111
 
112
112
  @property
113
- def beam_boundaries_smoothing_disk_size(self) -> int:
114
- """Return the size of the smoothing disk (in pixels) to be used in the beam boundaries computation."""
115
- return self._find_most_recent_past_value("cryonirsp_beam_boundaries_smoothing_disk_size")
116
-
117
- @property
118
- def beam_boundaries_upsample_factor(self) -> int:
119
- """Return the upsample factor to be used in the beam boundaries cross correlation computation."""
120
- return self._find_most_recent_past_value("cryonirsp_beam_boundaries_upsample_factor")
121
-
122
- @property
123
- def beam_boundaries_sp_beam_transition_region_size_fraction(self) -> float:
113
+ def beam_boundaries_spectral_beam_slices(self) -> list[slice]:
124
114
  """
125
- Fraction of full spectral size to use as the size of the transition region between the two SP beams.
115
+ Return a list of `slice` objects that extract beams in the spectral dimension.
126
116
 
127
- A region with size = (this parameter * full spectral size) and centered at the center of the spectral dimension
128
- will be ignored when extracting the beams.
117
+ For CI the "spectral" dimension is just the same axis of the chip that is spectral in SP data.
129
118
  """
119
+ raw_boundaries = self._find_parameter_for_arm(
120
+ "cryonirsp_beam_boundaries_spectral_beam_slices"
121
+ )
122
+ return [slice(b[0], b[1]) for b in raw_boundaries]
123
+
124
+ @property
125
+ def beam_boundaries_normalization_percentile(self) -> float:
126
+ """Return the percentile (0, 100) used when collapsing the wavelength dimension into a single spatial profile."""
130
127
  return self._find_most_recent_past_value(
131
- "cryonirsp_beam_boundaries_sp_beam_transition_region_size_fraction"
128
+ "cryonirsp_beam_boundaries_normalization_percentile"
132
129
  )
133
130
 
131
+ @property
132
+ def beam_boundaries_edge_profile_window_px(self) -> int:
133
+ """Return the size of the moving window used to compute an edge profile."""
134
+ return self._find_most_recent_past_value("cryonirsp_beam_boundaries_edge_profile_window_px")
135
+
136
+ @property
137
+ def beam_boundaries_edge_threshold_sigma(self) -> float:
138
+ """Return the threshold for determining if an illumination edge is strong enough to consider, in units of edge profile sigma."""
139
+ return self._find_most_recent_past_value("cryonirsp_beam_boundaries_edge_threshold_sigma")
140
+
141
+ @property
142
+ def beam_boundaries_detector_margin_px(self) -> int:
143
+ """Return the padding amount from the detector edge that sets a hard limit on the illumination regions."""
144
+ return self._find_most_recent_past_value("cryonirsp_beam_boundaries_detector_margin_px")
145
+
134
146
  @property
135
147
  def bad_pixel_map_median_filter_size(self) -> list[int, int]:
136
148
  """Return the smoothing disk size to be used in the bad pixel map computation."""