dkist-processing-cryonirsp 2.0.0rc2__tar.gz → 2.0.1__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 (144) hide show
  1. dkist_processing_cryonirsp-2.0.1/.snyk +13 -0
  2. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/CHANGELOG.rst +37 -0
  3. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/PKG-INFO +77 -77
  4. dkist_processing_cryonirsp-2.0.1/SCIENCE_CHANGELOG.rst +39 -0
  5. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tasks/instrument_polarization.py +14 -2
  6. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tasks/sp_geometric.py +9 -6
  7. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tests/conftest.py +32 -3
  8. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tests/test_instrument_polarization.py +8 -8
  9. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tests/test_parameters.py +17 -3
  10. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp.egg-info/PKG-INFO +77 -77
  11. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp.egg-info/SOURCES.txt +0 -5
  12. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp.egg-info/requires.txt +76 -76
  13. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp.egg-info/scm_file_list.json +103 -108
  14. dkist_processing_cryonirsp-2.0.1/dkist_processing_cryonirsp.egg-info/scm_version.json +8 -0
  15. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/pyproject.toml +78 -78
  16. dkist_processing_cryonirsp-2.0.0rc2/.snyk +0 -2
  17. dkist_processing_cryonirsp-2.0.0rc2/SCIENCE_CHANGELOG.rst +0 -25
  18. dkist_processing_cryonirsp-2.0.0rc2/changelog/289.bugfix.rst +0 -2
  19. dkist_processing_cryonirsp-2.0.0rc2/changelog/292.feature.2.rst +0 -3
  20. dkist_processing_cryonirsp-2.0.0rc2/changelog/292.feature.rst +0 -2
  21. dkist_processing_cryonirsp-2.0.0rc2/changelog/292.misc.rst +0 -3
  22. dkist_processing_cryonirsp-2.0.0rc2/changelog/292.science.rst +0 -4
  23. dkist_processing_cryonirsp-2.0.0rc2/dkist_processing_cryonirsp.egg-info/scm_version.json +0 -8
  24. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/.gitignore +0 -0
  25. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/.pre-commit-config.yaml +0 -0
  26. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/.readthedocs.yml +0 -0
  27. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/.rovodev/.review-agent.md +0 -0
  28. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/README.rst +0 -0
  29. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/bitbucket-pipelines.yml +0 -0
  30. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/changelog/.gitempty +0 -0
  31. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/__init__.py +0 -0
  32. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/codecs/__init__.py +0 -0
  33. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/codecs/fits.py +0 -0
  34. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/config.py +0 -0
  35. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/models/__init__.py +0 -0
  36. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/models/beam_boundaries.py +0 -0
  37. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/models/constants.py +0 -0
  38. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/models/dataset_extras.py +0 -0
  39. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/models/exposure_conditions.py +0 -0
  40. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/models/fits_access.py +0 -0
  41. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/models/parameters.py +0 -0
  42. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/models/tags.py +0 -0
  43. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/models/task_name.py +0 -0
  44. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/parsers/__init__.py +0 -0
  45. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/parsers/check_for_gains.py +0 -0
  46. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/parsers/cryonirsp_l0_fits_access.py +0 -0
  47. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/parsers/cryonirsp_l1_fits_access.py +0 -0
  48. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/parsers/exposure_conditions.py +0 -0
  49. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/parsers/map_repeats.py +0 -0
  50. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/parsers/measurements.py +0 -0
  51. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/parsers/modstates.py +0 -0
  52. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/parsers/optical_density_filters.py +0 -0
  53. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/parsers/polarimetric_check.py +0 -0
  54. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/parsers/scan_step.py +0 -0
  55. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/parsers/time.py +0 -0
  56. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tasks/__init__.py +0 -0
  57. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tasks/assemble_movie.py +0 -0
  58. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tasks/bad_pixel_map.py +0 -0
  59. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tasks/beam_boundaries_base.py +0 -0
  60. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tasks/ci_beam_boundaries.py +0 -0
  61. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tasks/ci_science.py +0 -0
  62. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tasks/cryonirsp_base.py +0 -0
  63. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tasks/dark.py +0 -0
  64. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tasks/gain.py +0 -0
  65. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tasks/l1_output_data.py +0 -0
  66. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tasks/linearity_correction.py +0 -0
  67. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tasks/make_movie_frames.py +0 -0
  68. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tasks/mixin/__init__.py +0 -0
  69. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tasks/mixin/corrections.py +0 -0
  70. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tasks/mixin/shift_measurements.py +0 -0
  71. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tasks/parse.py +0 -0
  72. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tasks/polcal_as_science.py +0 -0
  73. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tasks/quality_metrics.py +0 -0
  74. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tasks/science_base.py +0 -0
  75. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tasks/sp_beam_boundaries.py +0 -0
  76. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tasks/sp_science.py +0 -0
  77. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tasks/sp_solar_gain.py +0 -0
  78. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tasks/sp_wavelength_calibration.py +0 -0
  79. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tasks/write_dataset_extras.py +0 -0
  80. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tasks/write_l1.py +0 -0
  81. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tests/__init__.py +0 -0
  82. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tests/header_models.py +0 -0
  83. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tests/local_trial_workflows/__init__.py +0 -0
  84. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tests/local_trial_workflows/l0_cals_only.py +0 -0
  85. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tests/local_trial_workflows/l0_to_l1.py +0 -0
  86. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tests/local_trial_workflows/linearize_only.py +0 -0
  87. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tests/local_trial_workflows/local_trial_helpers.py +0 -0
  88. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tests/test_assemble_movie.py +0 -0
  89. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tests/test_assemble_qualilty.py +0 -0
  90. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tests/test_bad_pixel_maps.py +0 -0
  91. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tests/test_ci_beam_boundaries.py +0 -0
  92. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tests/test_ci_science.py +0 -0
  93. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tests/test_corrections.py +0 -0
  94. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tests/test_cryo_base.py +0 -0
  95. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tests/test_cryo_constants.py +0 -0
  96. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tests/test_dark.py +0 -0
  97. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tests/test_fits_access.py +0 -0
  98. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tests/test_gain.py +0 -0
  99. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tests/test_linearity_correction.py +0 -0
  100. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tests/test_make_movie_frames.py +0 -0
  101. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tests/test_parse.py +0 -0
  102. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tests/test_polcal_as_science.py +0 -0
  103. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tests/test_quality.py +0 -0
  104. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tests/test_sp_beam_boundaries.py +0 -0
  105. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tests/test_sp_geometric.py +0 -0
  106. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tests/test_sp_make_movie_frames.py +0 -0
  107. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tests/test_sp_science.py +0 -0
  108. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tests/test_sp_solar.py +0 -0
  109. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tests/test_sp_wavelength_calibration.py +0 -0
  110. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tests/test_trial_create_quality_report.py +0 -0
  111. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tests/test_workflows.py +0 -0
  112. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tests/test_write_dataset_extras.py +0 -0
  113. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/tests/test_write_l1.py +0 -0
  114. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/workflows/__init__.py +0 -0
  115. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/workflows/ci_l0_processing.py +0 -0
  116. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/workflows/sp_l0_processing.py +0 -0
  117. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp/workflows/trial_workflows.py +0 -0
  118. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp.egg-info/dependency_links.txt +0 -0
  119. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/dkist_processing_cryonirsp.egg-info/top_level.txt +0 -0
  120. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/docs/Makefile +0 -0
  121. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/docs/bad_pixel_calibration.rst +0 -0
  122. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/docs/beam_angle_calculation.rst +0 -0
  123. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/docs/beam_boundary_computation.rst +0 -0
  124. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/docs/changelog.rst +0 -0
  125. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/docs/ci_science_calibration.rst +0 -0
  126. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/docs/conf.py +0 -0
  127. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/docs/dataset_extras.rst +0 -0
  128. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/docs/index.rst +0 -0
  129. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/docs/l0_to_l1_cryonirsp_ci-full-trial.rst +0 -0
  130. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/docs/l0_to_l1_cryonirsp_ci.rst +0 -0
  131. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/docs/l0_to_l1_cryonirsp_sp-full-trial.rst +0 -0
  132. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/docs/l0_to_l1_cryonirsp_sp.rst +0 -0
  133. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/docs/landing_page.rst +0 -0
  134. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/docs/linearization.rst +0 -0
  135. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/docs/make.bat +0 -0
  136. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/docs/requirements.txt +0 -0
  137. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/docs/requirements_table.rst +0 -0
  138. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/docs/scientific_changelog.rst +0 -0
  139. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/docs/sp_science_calibration.rst +0 -0
  140. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/docs/wavelength_calibration.rst +0 -0
  141. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/licenses/LICENSE.rst +0 -0
  142. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/science_towncrier.sh +0 -0
  143. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/setup.cfg +0 -0
  144. {dkist_processing_cryonirsp-2.0.0rc2 → dkist_processing_cryonirsp-2.0.1}/towncrier_science.toml +0 -0
@@ -0,0 +1,13 @@
1
+ # Snyk (https://snyk.io) policy file, patches or ignores known vulnerabilities
2
+ # https://docs.snyk.io/manage-risk/policies/the-.snyk-file#syntax-of-the-.snyk-file
3
+ version: v1.25.0
4
+ ignore:
5
+ SNYK-PYTHON-APACHEAIRFLOWCORE-17879182:
6
+ - "*" :
7
+ reason: 'Patched in Airflow 3.3.0, but we are not ready to upgrade till 3.3.1 or later'
8
+ expires: '2027-07-07T00:00:00.000Z'
9
+ SNYK-PYTHON-APACHEAIRFLOWCORE-17933331:
10
+ - '*':
11
+ reason: 'Ignored by bulk CI/CD Snyk policy update'
12
+ expires: '2099-12-31T23:59:59.999Z'
13
+ created: '2026-07-10T15:53:27.931Z'
@@ -1,3 +1,40 @@
1
+ v2.0.1 (2026-07-22)
2
+ ===================
3
+
4
+ Misc
5
+ ----
6
+
7
+ - Update dkist-inventory to 1.11.9 which populates tile count for trial runs. (`#296 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/296>`__)
8
+
9
+
10
+ v2.0.0 (2026-07-17)
11
+ ===================
12
+
13
+ Features
14
+ --------
15
+
16
+ - Compute spectral shift calculations on smoothed/filtered spectral derivatives of the reference and target spectra. This
17
+ amplifies the spectral signal and greatly improves the accuracy of the individual shift measurements. (`#292 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/292>`__)
18
+ - The calculation of a single spectral shift is now *only* via interpolation of the correlation signal between the reference
19
+ and target spectra. Previously a second refinement of this value was done via a chi-squared minimization, but this was shown
20
+ to increase noise with no increase in accuracy. (`#292 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/292>`__)
21
+
22
+
23
+ Bugfixes
24
+ --------
25
+
26
+ - Filter out non-finite values and use `resize_arrays_local_mean` to average arrays in the instrument polarization
27
+ task instead of `resize_arrays`. With an output shape of `(1,1)`, `resize_arrays` returns the center pixel. (`#290 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/290>`__)
28
+
29
+
30
+ Misc
31
+ ----
32
+
33
+ - Add option to all local trial workflows (``--parameter-doc``) that uses an existing input dataset parameter-part document
34
+ to populate the parameters during a local run. This is an easy way for a user to run a pipeline locally using the exact
35
+ parameters used in production. (`#292 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/292>`__)
36
+
37
+
1
38
  v1.19.19 (2026-06-22)
2
39
  =====================
3
40
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dkist-processing-cryonirsp
3
- Version: 2.0.0rc2
3
+ Version: 2.0.1
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
@@ -44,10 +44,10 @@ Requires-Dist: dkist-processing-cryonirsp[asdf]; extra == "test"
44
44
  Requires-Dist: dkist-processing-cryonirsp[quality]; extra == "test"
45
45
  Provides-Extra: inventory
46
46
  Requires-Dist: dkist-processing-common[inventory]; extra == "inventory"
47
- Requires-Dist: dkist-inventory==1.11.8; extra == "inventory"
47
+ Requires-Dist: dkist-inventory==1.11.9; extra == "inventory"
48
48
  Provides-Extra: asdf
49
49
  Requires-Dist: dkist-processing-common[asdf]; extra == "asdf"
50
- Requires-Dist: dkist-inventory[asdf]==1.11.8; extra == "asdf"
50
+ Requires-Dist: dkist-inventory[asdf]==1.11.9; extra == "asdf"
51
51
  Provides-Extra: quality
52
52
  Requires-Dist: dkist-quality==2.0.1; extra == "quality"
53
53
  Provides-Extra: grogu
@@ -63,7 +63,7 @@ Requires-Dist: pytest; extra == "docs"
63
63
  Requires-Dist: dkist-sphinx-theme; extra == "docs"
64
64
  Provides-Extra: frozen
65
65
  Requires-Dist: Deprecated==1.3.1; extra == "frozen"
66
- Requires-Dist: ImageIO==2.37.3; extra == "frozen"
66
+ Requires-Dist: ImageIO==2.37.4; extra == "frozen"
67
67
  Requires-Dist: Jinja2==3.1.6; extra == "frozen"
68
68
  Requires-Dist: Mako==1.3.12; extra == "frozen"
69
69
  Requires-Dist: MarkupSafe==3.0.3; extra == "frozen"
@@ -76,8 +76,8 @@ Requires-Dist: SQLAlchemy==2.0.51; extra == "frozen"
76
76
  Requires-Dist: Send2Trash==2.1.0; extra == "frozen"
77
77
  Requires-Dist: a2wsgi==1.10.10; extra == "frozen"
78
78
  Requires-Dist: aioftp==0.27.2; extra == "frozen"
79
- Requires-Dist: aiohappyeyeballs==2.6.2; extra == "frozen"
80
- Requires-Dist: aiohttp==3.14.1; extra == "frozen"
79
+ Requires-Dist: aiohappyeyeballs==2.7.1; extra == "frozen"
80
+ Requires-Dist: aiohttp==3.14.2; extra == "frozen"
81
81
  Requires-Dist: aiosignal==1.4.0; extra == "frozen"
82
82
  Requires-Dist: aiosmtplib==5.1.2; extra == "frozen"
83
83
  Requires-Dist: aiosqlite==0.21.0; extra == "frozen"
@@ -85,28 +85,28 @@ Requires-Dist: alembic==1.18.5; extra == "frozen"
85
85
  Requires-Dist: amqp==5.3.1; extra == "frozen"
86
86
  Requires-Dist: annotated-doc==0.0.4; extra == "frozen"
87
87
  Requires-Dist: annotated-types==0.7.0; extra == "frozen"
88
- Requires-Dist: anyio==4.14.1; extra == "frozen"
88
+ Requires-Dist: anyio==4.14.2; extra == "frozen"
89
89
  Requires-Dist: apache-airflow==3.2.1; extra == "frozen"
90
90
  Requires-Dist: apache-airflow-core==3.2.1; extra == "frozen"
91
- Requires-Dist: apache-airflow-providers-celery==3.20.0; extra == "frozen"
92
- Requires-Dist: apache-airflow-providers-common-compat==1.15.0; extra == "frozen"
93
- Requires-Dist: apache-airflow-providers-common-io==1.7.3; extra == "frozen"
94
- Requires-Dist: apache-airflow-providers-common-sql==2.0.1; extra == "frozen"
91
+ Requires-Dist: apache-airflow-providers-celery==3.22.0; extra == "frozen"
92
+ Requires-Dist: apache-airflow-providers-common-compat==1.16.0; extra == "frozen"
93
+ Requires-Dist: apache-airflow-providers-common-io==1.8.0; extra == "frozen"
94
+ Requires-Dist: apache-airflow-providers-common-sql==2.0.2; extra == "frozen"
95
95
  Requires-Dist: apache-airflow-providers-postgres==6.8.0; extra == "frozen"
96
- Requires-Dist: apache-airflow-providers-smtp==3.0.1; extra == "frozen"
97
- Requires-Dist: apache-airflow-providers-standard==1.15.0; extra == "frozen"
96
+ Requires-Dist: apache-airflow-providers-smtp==3.0.2; extra == "frozen"
97
+ Requires-Dist: apache-airflow-providers-standard==1.16.0; extra == "frozen"
98
98
  Requires-Dist: apache-airflow-task-sdk==1.2.1; extra == "frozen"
99
- Requires-Dist: argcomplete==3.6.3; extra == "frozen"
99
+ Requires-Dist: argcomplete==3.7.0; extra == "frozen"
100
100
  Requires-Dist: argon2-cffi==25.1.0; extra == "frozen"
101
101
  Requires-Dist: argon2-cffi-bindings==25.1.0; extra == "frozen"
102
102
  Requires-Dist: arrow==1.4.0; extra == "frozen"
103
103
  Requires-Dist: asdf==5.3.1; extra == "frozen"
104
104
  Requires-Dist: asdf_standard==1.5.0; extra == "frozen"
105
- Requires-Dist: asgiref==3.11.1; extra == "frozen"
105
+ Requires-Dist: asgiref==3.12.1; extra == "frozen"
106
106
  Requires-Dist: asteval==1.0.9; extra == "frozen"
107
107
  Requires-Dist: astropy==7.0.2; extra == "frozen"
108
- Requires-Dist: astropy-iers-data==0.2026.6.22.1.23.34; extra == "frozen"
109
- Requires-Dist: asttokens==3.0.1; extra == "frozen"
108
+ Requires-Dist: astropy-iers-data==0.2026.7.20.15.31.18; extra == "frozen"
109
+ Requires-Dist: asttokens==3.0.2; extra == "frozen"
110
110
  Requires-Dist: async-lru==2.3.0; extra == "frozen"
111
111
  Requires-Dist: asyncpg==0.31.0; extra == "frozen"
112
112
  Requires-Dist: attrs==26.1.0; extra == "frozen"
@@ -114,22 +114,22 @@ Requires-Dist: babel==2.18.0; extra == "frozen"
114
114
  Requires-Dist: beautifulsoup4==4.15.0; extra == "frozen"
115
115
  Requires-Dist: billiard==4.2.4; extra == "frozen"
116
116
  Requires-Dist: bleach==6.4.0; extra == "frozen"
117
- Requires-Dist: boto3==1.43.36; extra == "frozen"
118
- Requires-Dist: botocore==1.43.36; extra == "frozen"
119
- Requires-Dist: cadwyn==7.1.0; extra == "frozen"
117
+ Requires-Dist: boto3==1.43.53; extra == "frozen"
118
+ Requires-Dist: botocore==1.43.53; extra == "frozen"
119
+ Requires-Dist: cadwyn==7.1.1; extra == "frozen"
120
120
  Requires-Dist: celery==5.6.3; extra == "frozen"
121
- Requires-Dist: certifi==2026.6.17; extra == "frozen"
122
- Requires-Dist: cffi==2.0.0; extra == "frozen"
123
- Requires-Dist: charset-normalizer==3.4.7; extra == "frozen"
121
+ Requires-Dist: certifi==2026.7.22; extra == "frozen"
122
+ Requires-Dist: cffi==2.1.0; extra == "frozen"
123
+ Requires-Dist: charset-normalizer==3.4.9; extra == "frozen"
124
124
  Requires-Dist: click==8.4.2; extra == "frozen"
125
125
  Requires-Dist: click-didyoumean==0.3.1; extra == "frozen"
126
126
  Requires-Dist: click-plugins==1.1.1.2; extra == "frozen"
127
127
  Requires-Dist: click-repl==0.3.0; extra == "frozen"
128
- Requires-Dist: colorlog==6.10.1; extra == "frozen"
128
+ Requires-Dist: colorlog==6.11.0; extra == "frozen"
129
129
  Requires-Dist: comm==0.2.3; extra == "frozen"
130
130
  Requires-Dist: contourpy==1.3.3; extra == "frozen"
131
131
  Requires-Dist: cron_descriptor==2.1.0; extra == "frozen"
132
- Requires-Dist: croniter==6.2.2; extra == "frozen"
132
+ Requires-Dist: croniter==6.2.4; extra == "frozen"
133
133
  Requires-Dist: cryptography==49.0.0; extra == "frozen"
134
134
  Requires-Dist: cycler==0.12.1; extra == "frozen"
135
135
  Requires-Dist: debugpy==1.8.21; extra == "frozen"
@@ -139,7 +139,7 @@ Requires-Dist: dill==0.4.1; extra == "frozen"
139
139
  Requires-Dist: dkist-header-validator==5.4.0; extra == "frozen"
140
140
  Requires-Dist: dkist-processing-common==14.3.4; extra == "frozen"
141
141
  Requires-Dist: dkist-processing-core==7.3.0; extra == "frozen"
142
- Requires-Dist: dkist-processing-cryonirsp==2.0.0rc2; extra == "frozen"
142
+ Requires-Dist: dkist-processing-cryonirsp==2.0.1; extra == "frozen"
143
143
  Requires-Dist: dkist-processing-math==2.2.3; extra == "frozen"
144
144
  Requires-Dist: dkist-processing-pac==3.1.2; extra == "frozen"
145
145
  Requires-Dist: dkist-service-configuration==4.3.0; extra == "frozen"
@@ -148,8 +148,8 @@ Requires-Dist: dkist_fits_specifications==4.28.0; extra == "frozen"
148
148
  Requires-Dist: dnspython==2.8.0; extra == "frozen"
149
149
  Requires-Dist: email-validator==2.3.0; extra == "frozen"
150
150
  Requires-Dist: executing==2.2.1; extra == "frozen"
151
- Requires-Dist: fastapi==0.138.1; extra == "frozen"
152
- Requires-Dist: fastapi-cli==0.0.27; extra == "frozen"
151
+ Requires-Dist: fastapi==0.139.2; extra == "frozen"
152
+ Requires-Dist: fastapi-cli==0.0.32; extra == "frozen"
153
153
  Requires-Dist: fastjsonschema==2.21.2; extra == "frozen"
154
154
  Requires-Dist: flower==2.0.1; extra == "frozen"
155
155
  Requires-Dist: fonttools==4.63.0; extra == "frozen"
@@ -160,18 +160,18 @@ Requires-Dist: globus-sdk==4.8.1; extra == "frozen"
160
160
  Requires-Dist: googleapis-common-protos==1.75.0; extra == "frozen"
161
161
  Requires-Dist: gqlclient==2.0.0; extra == "frozen"
162
162
  Requires-Dist: greenback==1.3.0; extra == "frozen"
163
- Requires-Dist: greenlet==3.5.2; extra == "frozen"
164
- Requires-Dist: grpcio==1.81.1; extra == "frozen"
163
+ Requires-Dist: greenlet==3.5.4; extra == "frozen"
164
+ Requires-Dist: grpcio==1.82.1; extra == "frozen"
165
165
  Requires-Dist: h11==0.16.0; extra == "frozen"
166
166
  Requires-Dist: httpcore==1.0.9; extra == "frozen"
167
167
  Requires-Dist: httptools==0.8.0; extra == "frozen"
168
168
  Requires-Dist: httpx==0.28.1; extra == "frozen"
169
- Requires-Dist: humanize==4.15.0; extra == "frozen"
169
+ Requires-Dist: humanize==4.16.0; extra == "frozen"
170
170
  Requires-Dist: idna==3.18; extra == "frozen"
171
171
  Requires-Dist: imageio-ffmpeg==0.6.0; extra == "frozen"
172
172
  Requires-Dist: importlib_metadata==9.0.0; extra == "frozen"
173
173
  Requires-Dist: ipykernel==7.3.0; extra == "frozen"
174
- Requires-Dist: ipython==9.14.1; extra == "frozen"
174
+ Requires-Dist: ipython==9.15.0; extra == "frozen"
175
175
  Requires-Dist: ipython_pygments_lexers==1.1.1; extra == "frozen"
176
176
  Requires-Dist: isoduration==20.11.0; extra == "frozen"
177
177
  Requires-Dist: itsdangerous==2.2.0; extra == "frozen"
@@ -184,12 +184,12 @@ Requires-Dist: jsonschema==4.26.0; extra == "frozen"
184
184
  Requires-Dist: jsonschema-specifications==2025.9.1; extra == "frozen"
185
185
  Requires-Dist: jupyter-events==0.12.1; extra == "frozen"
186
186
  Requires-Dist: jupyter-lsp==2.3.1; extra == "frozen"
187
- Requires-Dist: jupyter_builder==1.0.2; extra == "frozen"
187
+ Requires-Dist: jupyter_builder==1.1.1; extra == "frozen"
188
188
  Requires-Dist: jupyter_client==8.9.1; extra == "frozen"
189
189
  Requires-Dist: jupyter_core==5.9.1; extra == "frozen"
190
190
  Requires-Dist: jupyter_server==2.20.0; extra == "frozen"
191
191
  Requires-Dist: jupyter_server_terminals==0.5.4; extra == "frozen"
192
- Requires-Dist: jupyterlab==4.6.0; extra == "frozen"
192
+ Requires-Dist: jupyterlab==4.6.2; extra == "frozen"
193
193
  Requires-Dist: jupyterlab_pygments==0.3.0; extra == "frozen"
194
194
  Requires-Dist: jupyterlab_server==2.28.0; extra == "frozen"
195
195
  Requires-Dist: kiwisolver==1.5.0; extra == "frozen"
@@ -205,51 +205,51 @@ Requires-Dist: lmfit==1.3.4; extra == "frozen"
205
205
  Requires-Dist: lockfile==0.12.2; extra == "frozen"
206
206
  Requires-Dist: loguru==0.7.3; extra == "frozen"
207
207
  Requires-Dist: markdown-it-py==4.2.0; extra == "frozen"
208
- Requires-Dist: matplotlib==3.11.0; extra == "frozen"
208
+ Requires-Dist: matplotlib==3.11.1; extra == "frozen"
209
209
  Requires-Dist: matplotlib-inline==0.2.2; extra == "frozen"
210
210
  Requires-Dist: mdurl==0.1.2; extra == "frozen"
211
211
  Requires-Dist: methodtools==0.4.7; extra == "frozen"
212
- Requires-Dist: mistune==3.3.2; extra == "frozen"
212
+ Requires-Dist: mistune==3.3.4; extra == "frozen"
213
213
  Requires-Dist: more-itertools==11.1.0; extra == "frozen"
214
214
  Requires-Dist: moviepy==2.1.2; extra == "frozen"
215
215
  Requires-Dist: msgspec==0.21.1; extra == "frozen"
216
216
  Requires-Dist: multidict==6.7.1; extra == "frozen"
217
- Requires-Dist: narwhals==2.22.1; extra == "frozen"
217
+ Requires-Dist: narwhals==2.24.0; extra == "frozen"
218
218
  Requires-Dist: natsort==8.4.0; extra == "frozen"
219
219
  Requires-Dist: nbclient==0.11.0; extra == "frozen"
220
220
  Requires-Dist: nbconvert==7.17.1; extra == "frozen"
221
221
  Requires-Dist: nbformat==5.10.4; extra == "frozen"
222
222
  Requires-Dist: nest-asyncio2==1.7.2; extra == "frozen"
223
223
  Requires-Dist: networkx==3.6.1; extra == "frozen"
224
- Requires-Dist: notebook==7.6.0; extra == "frozen"
224
+ Requires-Dist: notebook==7.6.1; extra == "frozen"
225
225
  Requires-Dist: notebook_shim==0.2.4; extra == "frozen"
226
226
  Requires-Dist: numba==0.61.2; extra == "frozen"
227
227
  Requires-Dist: numpy==2.2.5; extra == "frozen"
228
228
  Requires-Dist: object-clerk==1.0.0; extra == "frozen"
229
- Requires-Dist: opentelemetry-api==1.43.0; extra == "frozen"
230
- Requires-Dist: opentelemetry-exporter-otlp==1.43.0; extra == "frozen"
231
- Requires-Dist: opentelemetry-exporter-otlp-proto-common==1.43.0; extra == "frozen"
232
- Requires-Dist: opentelemetry-exporter-otlp-proto-grpc==1.43.0; extra == "frozen"
233
- Requires-Dist: opentelemetry-exporter-otlp-proto-http==1.43.0; extra == "frozen"
234
- Requires-Dist: opentelemetry-instrumentation==0.64b0; extra == "frozen"
235
- Requires-Dist: opentelemetry-instrumentation-aiohttp-client==0.64b0; extra == "frozen"
236
- Requires-Dist: opentelemetry-instrumentation-asgi==0.64b0; extra == "frozen"
237
- Requires-Dist: opentelemetry-instrumentation-botocore==0.64b0; extra == "frozen"
238
- Requires-Dist: opentelemetry-instrumentation-celery==0.64b0; extra == "frozen"
239
- Requires-Dist: opentelemetry-instrumentation-dbapi==0.64b0; extra == "frozen"
240
- Requires-Dist: opentelemetry-instrumentation-fastapi==0.64b0; extra == "frozen"
241
- Requires-Dist: opentelemetry-instrumentation-pika==0.64b0; extra == "frozen"
242
- Requires-Dist: opentelemetry-instrumentation-psycopg2==0.64b0; extra == "frozen"
243
- Requires-Dist: opentelemetry-instrumentation-pymongo==0.64b0; extra == "frozen"
244
- Requires-Dist: opentelemetry-instrumentation-redis==0.64b0; extra == "frozen"
245
- Requires-Dist: opentelemetry-instrumentation-requests==0.64b0; extra == "frozen"
246
- Requires-Dist: opentelemetry-instrumentation-sqlalchemy==0.64b0; extra == "frozen"
247
- Requires-Dist: opentelemetry-instrumentation-system-metrics==0.64b0; extra == "frozen"
229
+ Requires-Dist: opentelemetry-api==1.44.0; extra == "frozen"
230
+ Requires-Dist: opentelemetry-exporter-otlp==1.44.0; extra == "frozen"
231
+ Requires-Dist: opentelemetry-exporter-otlp-proto-common==1.44.0; extra == "frozen"
232
+ Requires-Dist: opentelemetry-exporter-otlp-proto-grpc==1.44.0; extra == "frozen"
233
+ Requires-Dist: opentelemetry-exporter-otlp-proto-http==1.44.0; extra == "frozen"
234
+ Requires-Dist: opentelemetry-instrumentation==0.65b0; extra == "frozen"
235
+ Requires-Dist: opentelemetry-instrumentation-aiohttp-client==0.65b0; extra == "frozen"
236
+ Requires-Dist: opentelemetry-instrumentation-asgi==0.65b0; extra == "frozen"
237
+ Requires-Dist: opentelemetry-instrumentation-botocore==0.65b0; extra == "frozen"
238
+ Requires-Dist: opentelemetry-instrumentation-celery==0.65b0; extra == "frozen"
239
+ Requires-Dist: opentelemetry-instrumentation-dbapi==0.65b0; extra == "frozen"
240
+ Requires-Dist: opentelemetry-instrumentation-fastapi==0.65b0; extra == "frozen"
241
+ Requires-Dist: opentelemetry-instrumentation-pika==0.65b0; extra == "frozen"
242
+ Requires-Dist: opentelemetry-instrumentation-psycopg2==0.65b0; extra == "frozen"
243
+ Requires-Dist: opentelemetry-instrumentation-pymongo==0.65b0; extra == "frozen"
244
+ Requires-Dist: opentelemetry-instrumentation-redis==0.65b0; extra == "frozen"
245
+ Requires-Dist: opentelemetry-instrumentation-requests==0.65b0; extra == "frozen"
246
+ Requires-Dist: opentelemetry-instrumentation-sqlalchemy==0.65b0; extra == "frozen"
247
+ Requires-Dist: opentelemetry-instrumentation-system-metrics==0.65b0; extra == "frozen"
248
248
  Requires-Dist: opentelemetry-propagator-aws-xray==1.0.2; extra == "frozen"
249
- Requires-Dist: opentelemetry-proto==1.43.0; extra == "frozen"
250
- Requires-Dist: opentelemetry-sdk==1.43.0; extra == "frozen"
251
- Requires-Dist: opentelemetry-semantic-conventions==0.64b0; extra == "frozen"
252
- Requires-Dist: opentelemetry-util-http==0.64b0; extra == "frozen"
249
+ Requires-Dist: opentelemetry-proto==1.44.0; extra == "frozen"
250
+ Requires-Dist: opentelemetry-sdk==1.44.0; extra == "frozen"
251
+ Requires-Dist: opentelemetry-semantic-conventions==0.65b0; extra == "frozen"
252
+ Requires-Dist: opentelemetry-util-http==0.65b0; extra == "frozen"
253
253
  Requires-Dist: outcome==1.3.0.post0; extra == "frozen"
254
254
  Requires-Dist: packaging==26.2; extra == "frozen"
255
255
  Requires-Dist: pandas==3.0.3; extra == "frozen"
@@ -263,7 +263,7 @@ Requires-Dist: pexpect==4.9.0; extra == "frozen"
263
263
  Requires-Dist: pika==1.4.1; extra == "frozen"
264
264
  Requires-Dist: pillow==10.4.0; extra == "frozen"
265
265
  Requires-Dist: pip==26.1.2; extra == "frozen"
266
- Requires-Dist: platformdirs==4.10.0; extra == "frozen"
266
+ Requires-Dist: platformdirs==4.11.0; extra == "frozen"
267
267
  Requires-Dist: pluggy==1.6.0; extra == "frozen"
268
268
  Requires-Dist: pooch==1.9.0; extra == "frozen"
269
269
  Requires-Dist: proglog==0.1.12; extra == "frozen"
@@ -299,9 +299,9 @@ Requires-Dist: rfc3986-validator==0.1.1; extra == "frozen"
299
299
  Requires-Dist: rfc3987-syntax==1.1.0; extra == "frozen"
300
300
  Requires-Dist: rich==15.0.0; extra == "frozen"
301
301
  Requires-Dist: rich-argparse==1.8.0; extra == "frozen"
302
- Requires-Dist: rich-toolkit==0.20.1; extra == "frozen"
303
- Requires-Dist: rpds-py==2026.5.1; extra == "frozen"
304
- Requires-Dist: s3transfer==0.19.0; extra == "frozen"
302
+ Requires-Dist: rich-toolkit==0.20.3; extra == "frozen"
303
+ Requires-Dist: rpds-py==2026.6.3; extra == "frozen"
304
+ Requires-Dist: s3transfer==0.19.1; extra == "frozen"
305
305
  Requires-Dist: scikit-image==0.25.2; extra == "frozen"
306
306
  Requires-Dist: scikit-learn==1.9.0; extra == "frozen"
307
307
  Requires-Dist: scipy==1.15.3; extra == "frozen"
@@ -311,14 +311,14 @@ Requires-Dist: shellingham==1.5.4; extra == "frozen"
311
311
  Requires-Dist: six==1.17.0; extra == "frozen"
312
312
  Requires-Dist: sniffio==1.3.1; extra == "frozen"
313
313
  Requires-Dist: solar-wavelength-calibration==2.0.3; extra == "frozen"
314
- Requires-Dist: soupsieve==2.8.4; extra == "frozen"
314
+ Requires-Dist: soupsieve==2.9.1; extra == "frozen"
315
315
  Requires-Dist: sqids==0.5.1; extra == "frozen"
316
316
  Requires-Dist: sqlparse==0.5.5; extra == "frozen"
317
317
  Requires-Dist: stack-data==0.6.3; extra == "frozen"
318
318
  Requires-Dist: starlette==0.52.1; extra == "frozen"
319
319
  Requires-Dist: structlog==26.1.0; extra == "frozen"
320
320
  Requires-Dist: sunpy==6.1.1; extra == "frozen"
321
- Requires-Dist: svcs==25.1.0; extra == "frozen"
321
+ Requires-Dist: svcs==26.1.0; extra == "frozen"
322
322
  Requires-Dist: tabulate==0.10.0; extra == "frozen"
323
323
  Requires-Dist: talus==1.3.4; extra == "frozen"
324
324
  Requires-Dist: tenacity==8.5.0; extra == "frozen"
@@ -326,36 +326,36 @@ Requires-Dist: termcolor==3.3.0; extra == "frozen"
326
326
  Requires-Dist: terminado==0.18.1; extra == "frozen"
327
327
  Requires-Dist: text-unidecode==1.3; extra == "frozen"
328
328
  Requires-Dist: threadpoolctl==3.6.0; extra == "frozen"
329
- Requires-Dist: tifffile==2026.6.1; extra == "frozen"
329
+ Requires-Dist: tifffile==2026.7.14; extra == "frozen"
330
330
  Requires-Dist: tinycss2==1.5.1; extra == "frozen"
331
331
  Requires-Dist: tornado==6.5.7; extra == "frozen"
332
- Requires-Dist: tqdm==4.68.3; extra == "frozen"
332
+ Requires-Dist: tqdm==4.69.0; extra == "frozen"
333
333
  Requires-Dist: traitlets==5.15.1; extra == "frozen"
334
- Requires-Dist: typer==0.26.7; extra == "frozen"
334
+ Requires-Dist: typer==0.27.0; extra == "frozen"
335
335
  Requires-Dist: typing-inspection==0.4.2; extra == "frozen"
336
- Requires-Dist: typing_extensions==4.15.0; extra == "frozen"
337
- Requires-Dist: tzdata==2026.2; extra == "frozen"
338
- Requires-Dist: tzlocal==5.4.3; extra == "frozen"
336
+ Requires-Dist: typing_extensions==4.16.0; extra == "frozen"
337
+ Requires-Dist: tzdata==2026.3; extra == "frozen"
338
+ Requires-Dist: tzlocal==5.4.4; extra == "frozen"
339
339
  Requires-Dist: uc-micro-py==2.0.0; extra == "frozen"
340
340
  Requires-Dist: uncertainties==3.2.3; extra == "frozen"
341
341
  Requires-Dist: universal_pathlib==0.3.10; extra == "frozen"
342
342
  Requires-Dist: uri-template==1.3.0; extra == "frozen"
343
343
  Requires-Dist: urllib3==2.7.0; extra == "frozen"
344
344
  Requires-Dist: uuid6==2025.0.1; extra == "frozen"
345
- Requires-Dist: uvicorn==0.49.0; extra == "frozen"
345
+ Requires-Dist: uvicorn==0.51.0; extra == "frozen"
346
346
  Requires-Dist: uvloop==0.22.1; extra == "frozen"
347
347
  Requires-Dist: vine==5.1.0; extra == "frozen"
348
348
  Requires-Dist: voluptuous==0.16.0; extra == "frozen"
349
349
  Requires-Dist: watchfiles==1.2.0; extra == "frozen"
350
- Requires-Dist: wcwidth==0.8.1; extra == "frozen"
350
+ Requires-Dist: wcwidth==0.8.2; extra == "frozen"
351
351
  Requires-Dist: webcolors==25.10.0; extra == "frozen"
352
352
  Requires-Dist: webencodings==0.5.1; extra == "frozen"
353
353
  Requires-Dist: websocket-client==1.9.0; extra == "frozen"
354
- Requires-Dist: websockets==16.0; extra == "frozen"
354
+ Requires-Dist: websockets==16.1.1; extra == "frozen"
355
355
  Requires-Dist: wirerope==1.0.0; extra == "frozen"
356
356
  Requires-Dist: wrapt==2.2.2; extra == "frozen"
357
357
  Requires-Dist: yamale==6.1.0; extra == "frozen"
358
- Requires-Dist: yarl==1.24.2; extra == "frozen"
358
+ Requires-Dist: yarl==1.24.5; extra == "frozen"
359
359
  Requires-Dist: zipp==4.1.0; extra == "frozen"
360
360
 
361
361
  dkist-processing-cryonirsp
@@ -0,0 +1,39 @@
1
+ v2.0.0 (2026-07-17)
2
+ ===================
3
+
4
+
5
+
6
+
7
+ - Improvements to the calculation of the spectral curvature to make them more robust against noisy input data. This change
8
+ only affects science data for datasets where the spectral curvature was previously mis-identified. For these datasets this
9
+ change will correct un-aligned spectral axes in L1 data and improve the quality of gain correction because the solar gain
10
+ frames will have better removal of solar absorption lines. (`#292 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/292>`__)
11
+ - Demodulation matrices are now derived from a correctly computed average over the full array. Previously, a bug had resulted
12
+ in the "average" actually just being the value of the central pixel. This change does result in small changes to the derived
13
+ demodulation matrices, but has been shown to not change L1 data in a substantial way. (`#290 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/290>`__)
14
+
15
+ v1.8.0 (2025-06-16)
16
+ ===================
17
+
18
+ Misc
19
+ ----
20
+
21
+ - Update the beam alignment code to handle edge effects in determining the shift required to align beams one and two. The final spectra passed to the cross correlation method are now cropped by removing the outside 10% of pixels on each edge. (`#195 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/195>`__)
22
+
23
+
24
+ v1.0.0 (2024-08-21)
25
+ ===================
26
+
27
+ Misc
28
+ ----
29
+
30
+ - CRYO-NIRSP processing pipeline data accepted for release to the community.
31
+
32
+
33
+ v0.0.1 (2023-08-25)
34
+ ===================
35
+
36
+ Misc
37
+ ----
38
+
39
+ - Initial release of pipeline for science review
@@ -282,8 +282,20 @@ class InstrumentPolarizationCalibrationBase(CryonirspTaskBase, ABC):
282
282
  self.parameters.polcal_num_spatial_bins,
283
283
  self.parameters.polcal_num_spectral_bins,
284
284
  )
285
- local_binned_array = next(resize_arrays_local_mean(gain_corrected_array, output_shape))
286
- global_binned_array = next(resize_arrays_local_mean(gain_corrected_array, (1, 1)))
285
+ finite_gain_corrected_array_mean = np.mean(
286
+ gain_corrected_array[np.isfinite(gain_corrected_array)]
287
+ )
288
+ finite_gain_corrected_array = np.where(
289
+ np.isfinite(gain_corrected_array),
290
+ gain_corrected_array,
291
+ finite_gain_corrected_array_mean,
292
+ )
293
+ local_binned_array = next(
294
+ resize_arrays_local_mean(finite_gain_corrected_array, output_shape)
295
+ )
296
+ global_binned_array = next(
297
+ resize_arrays_local_mean(finite_gain_corrected_array, (1, 1))
298
+ )
287
299
 
288
300
  with self.telemetry_span(f"Create reduced CryonirspL0FitsAccess for {apm_str}"):
289
301
  local_result = CryonirspL0FitsAccess(
@@ -477,15 +477,18 @@ class SPGeometricCalibration(CryonirspTaskBase, ShiftMeasurementsMixin):
477
477
  ref_spec=self.ref_spec, target_spec=target_spec, beam=beam, pos=i
478
478
  )
479
479
 
480
+ # Applying a negative `shift` is correct: `CorrectionsMixin.corrections_remove_spec_shifts` takes positive
481
+ # `shift` values, but ultimately shifts all rows by the negative shift. That behavior is recreated for a
482
+ # single spectral pixel on the following line.
480
483
  shifted_target = spnd.shift(target_spec, -shift, cval=np.nan)
481
484
  rms = np.nanstd(self.ref_spec - shifted_target)
482
485
 
483
486
  beam_shifts[i] = shift
484
487
  beam_rms[i] = rms
485
488
 
486
- # Mask spatial positions with large residuals even after applying the measured shift
487
- # Setting the threshold as 4 times the second quartile amount is a good way to estimate are large
488
- # fraction of the CDF from a region that won't be polluted with outliers.
489
+ # Mask spatial positions with large residuals even after applying the measured shift.
490
+ # Setting the threshold as 4 times the second quartile amount is a good way to estimate what the 100% CDF level
491
+ # would be in the absence of outliers. This is then a good threshold to use to reject outliers.
489
492
  rms_median, rms_25_percentile = np.nanpercentile(beam_rms, [50, 25])
490
493
  rms_threshold = rms_median + 4 * (rms_median - rms_25_percentile)
491
494
  logger.info(f"Raw shift RMS threshold for beam {beam} is {rms_threshold}")
@@ -524,11 +527,11 @@ class SPGeometricCalibration(CryonirspTaskBase, ShiftMeasurementsMixin):
524
527
 
525
528
  The filtering steps are:
526
529
 
527
- #. Normalize each spectral pixel by a fixed value of its CDF. This removes scaling differences between the reference and target spectra.
530
+ #. Normalize each spectral pixel by a fixed level of its CDF. This removes scaling differences between the reference and target spectra. The CDF level used is the `~dkist_processing_cryonirsp.models.parameters.CryonirspParameters.solar_characteristic_spatial_normalization_percentile`.
528
531
 
529
532
  a. At this stage we also clip values outside the range [0, 2]
530
533
 
531
- #. Computed a smoothed spectral derivative for each spatial pixel. This step greatly increases the strength of the true spectral signal.
534
+ #. Compute a smoothed spectral derivative for each spatial pixel. This step greatly increases the strength of the true spectral signal.
532
535
 
533
536
  #. Apply a spectral windowing function to protect the correlation of the reference and target spectra from weird and wild edge-effects.
534
537
  """
@@ -635,7 +638,7 @@ class SPGeometricCalibration(CryonirspTaskBase, ShiftMeasurementsMixin):
635
638
  )
636
639
  peak_interp = peak_idx[0]
637
640
 
638
- shift = 1 * (peak_interp - truncated_corr.size // 2)
641
+ shift = peak_interp - truncated_corr.size // 2
639
642
 
640
643
  return shift.item(0)
641
644
 
@@ -441,13 +441,42 @@ def cryonirsp_testing_parameters_factory(
441
441
  )
442
442
  cryonirsp_linearization_max_memory_gb: float = 4.0
443
443
  cryonirsp_linearization_optical_density_filter_attenuation_g278: WavelengthParameter = (
444
- WavelengthParameter(values=(-1.64, -1.64, -1.64, -1.64))
444
+ WavelengthParameter(
445
+ # fmt: off
446
+ values=(-0.998, -0.892, -0.838, -0.843, -1.066, -1.200, -1.224, -1.362,
447
+ -1.452, -1.640, -1.655, -1.657, -1.658, -1.706, -1.708, -1.715,
448
+ -1.721, -1.790, -1.920, -2.020, -2.130, -2.330, -2.490, -2.640,
449
+ -2.830),
450
+ wavelength=(530.0, 600.0, 630.0, 673.0, 750.0, 792.0, 800.0, 854.0,
451
+ 900.0, 1049.5, 1074.7, 1079.0, 1083.0, 1251.0, 1282.0, 1430.0,
452
+ 1695.0, 1950.0, 2218.0, 2400.0, 2600.0, 3028.0, 3445.0, 3936.0,
453
+ 4662.5)
454
+ )
455
+ # fmt: on
445
456
  )
446
457
  cryonirsp_linearization_optical_density_filter_attenuation_g358: WavelengthParameter = (
447
- WavelengthParameter(values=(-3.75, -3.75, -3.75, -3.75))
458
+ WavelengthParameter(
459
+ # fmt: off
460
+ values=(-2.498, -2.730, -2.937, -3.027, -3.056, -3.015, -3.018, -3.020,
461
+ -3.114, -3.204, -3.422, -3.580, -3.626, -3.633, -3.640, -3.749,
462
+ -3.839, -3.862, -3.940, -3.983, -4.167),
463
+ wavelength=(530.0, 560.0, 600.0, 630.0, 673.0, 750.0, 792.0, 800.0,
464
+ 854.0, 890.0, 980.0, 1049.5, 1074.7, 1079.0, 1083.0, 1160.0,
465
+ 1251.0, 1282.0, 1430.0, 1565.0, 2200.0)
466
+ )
467
+ # fmt: on
448
468
  )
449
469
  cryonirsp_linearization_optical_density_filter_attenuation_g408: WavelengthParameter = (
450
- WavelengthParameter(values=(-4.26, -4.26, -4.26, -4.26))
470
+ WavelengthParameter(
471
+ # fmt: off
472
+ values=(-2.968, -3.224, -3.447, -3.532, -3.571, -3.543, -3.561, -3.571,
473
+ -3.658, -3.848, -4.066, -4.225, -4.279, -4.285, -4.290, -4.394,
474
+ -4.462, -4.496, -4.554, -4.598, -4.810),
475
+ wavelength=(530.0, 560.0, 600.0, 630.0, 673.0, 750.0, 792.0, 800.0,
476
+ 843.0, 900.0, 973.0, 1049.5, 1074.7, 1079.0, 1083.0, 1160.0,
477
+ 1231.0, 1282.0, 1430.0, 1565.0, 2200.0)
478
+ )
479
+ # fmt: on
451
480
  )
452
481
  cryonirsp_camera_mirror_focal_length_mm: float = 932.0
453
482
  cryonirsp_pixel_pitch_micron: float = 18.0
@@ -386,7 +386,7 @@ def test_single_step(
386
386
  fake_gql_client,
387
387
  ):
388
388
  """
389
- Given: An InstrumentPolarizationCalibration task with all ancillary files
389
+ Given: An InstrumentPolarizationCalibration task with all ancillary files including nans
390
390
  When: Calling just the reduce_single_step method of the task
391
391
  Then: The output of the method is the average of the corrected array (not the center)
392
392
  """
@@ -420,6 +420,7 @@ def test_single_step(
420
420
  decoder=cryo_fits_array_decoder,
421
421
  )
422
422
  )
423
+ polcal_gain_array[0, 0] = np.nan # replace value
423
424
  local_result, global_result = task.reduce_single_step(
424
425
  beam=beam,
425
426
  exposure_conditions=exposure_conditions,
@@ -451,19 +452,18 @@ def test_single_step(
451
452
  beam_boundary=beam_boundary,
452
453
  )
453
454
  )
454
- pol_cal_arrays = (obj.data for obj in polcal_list)
455
- avg_inst_pol_cal_array = average_numpy_arrays(pol_cal_arrays)
456
- corrected_polcal_array = (avg_inst_pol_cal_array - polcal_dark_array) / polcal_gain_array
455
+ polcal_arrays = (obj.data for obj in polcal_list)
456
+ avg_inst_polcal_array = average_numpy_arrays(polcal_arrays)
457
+ corrected_polcal_array = (avg_inst_polcal_array - polcal_dark_array) / polcal_gain_array
457
458
 
458
459
  assert local_result.data.shape == (
459
460
  task.parameters.polcal_num_spatial_bins,
460
461
  task.parameters.polcal_num_spectral_bins,
461
462
  )
463
+ if local_result.data.shape == (1, 1):
464
+ np.testing.assert_allclose(local_result.data, np.nanmean(corrected_polcal_array))
462
465
  assert global_result.data.shape == (1, 1, 1)
463
- center = tuple(s // 2 for s in corrected_polcal_array.shape)
464
- for result in [local_result, global_result]:
465
- assert not np.allclose(result.data, corrected_polcal_array[center], rtol=1e-08) # BUG FIX
466
- np.testing.assert_allclose(result.data, corrected_polcal_array.mean())
466
+ np.testing.assert_allclose(global_result.data, np.nanmean(corrected_polcal_array))
467
467
 
468
468
 
469
469
  def test_ci_instrument_polarization_calibration_task(
@@ -87,15 +87,29 @@ def test_filter_parameters(basic_science_task_with_parameter_mixin, wave):
87
87
  task_params = task.parameters
88
88
  task_params._wavelength = wave
89
89
  expected = {
90
- "_linearization_optical_density_filter_attenuation_g278": -1.64,
91
- "_linearization_optical_density_filter_attenuation_g358": -3.75,
92
- "_linearization_optical_density_filter_attenuation_g408": -4.26,
90
+ "_linearization_optical_density_filter_attenuation_g278": closest_value_to_wave(
91
+ task_params, "cryonirsp_linearization_optical_density_filter_attenuation_g278", wave
92
+ ),
93
+ "_linearization_optical_density_filter_attenuation_g358": closest_value_to_wave(
94
+ task_params, "cryonirsp_linearization_optical_density_filter_attenuation_g358", wave
95
+ ),
96
+ "_linearization_optical_density_filter_attenuation_g408": closest_value_to_wave(
97
+ task_params, "cryonirsp_linearization_optical_density_filter_attenuation_g408", wave
98
+ ),
93
99
  }
94
100
  for param in expected:
95
101
  assert getattr(task_params, param) == expected[param]
96
102
  task._purge()
97
103
 
98
104
 
105
+ def closest_value_to_wave(
106
+ parameter_obj: CryonirspParsingParameters, paramter_name: str, wave: float
107
+ ):
108
+ value_dict = parameter_obj.input_dataset_parameters[paramter_name][0].parameter_value
109
+ idx = np.argmin(np.abs(np.array(value_dict["wavelength"]) - wave))
110
+ return value_dict["values"][idx]
111
+
112
+
99
113
  def _is_file_param(param_value: Any) -> bool:
100
114
  return isinstance(param_value, InputDatasetFilePointer)
101
115