dkist-processing-visp 5.2.0rc1__tar.gz → 5.2.2__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 (116) hide show
  1. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/CHANGELOG.rst +61 -0
  2. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/PKG-INFO +21 -20
  3. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/SCIENCE_CHANGELOG.rst +10 -0
  4. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tasks/__init__.py +1 -0
  5. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tasks/solar.py +3 -34
  6. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tasks/wavelength_calibration.py +44 -3
  7. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/workflows/l0_processing.py +1 -1
  8. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/workflows/trial_workflows.py +1 -1
  9. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp.egg-info/PKG-INFO +21 -20
  10. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp.egg-info/SOURCES.txt +0 -5
  11. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp.egg-info/requires.txt +20 -19
  12. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/pyproject.toml +22 -21
  13. dkist_processing_visp-5.2.0rc1/changelog/234.bugfix.rst +0 -2
  14. dkist_processing_visp-5.2.0rc1/changelog/234.doc.rst +0 -1
  15. dkist_processing_visp-5.2.0rc1/changelog/234.feature.rst +0 -1
  16. dkist_processing_visp-5.2.0rc1/changelog/234.science.rst +0 -2
  17. dkist_processing_visp-5.2.0rc1/changelog/253.misc.rst +0 -1
  18. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/.gitignore +0 -0
  19. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/.pre-commit-config.yaml +0 -0
  20. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/.readthedocs.yml +0 -0
  21. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/.snyk +0 -0
  22. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/README.rst +0 -0
  23. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/bitbucket-pipelines.yml +0 -0
  24. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/changelog/.gitempty +0 -0
  25. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/__init__.py +0 -0
  26. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/config.py +0 -0
  27. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/fonts/Lato-Regular.ttf +0 -0
  28. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/models/__init__.py +0 -0
  29. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/models/constants.py +0 -0
  30. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/models/fits_access.py +0 -0
  31. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/models/metric_code.py +0 -0
  32. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/models/parameters.py +0 -0
  33. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/models/tags.py +0 -0
  34. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/models/task_name.py +0 -0
  35. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/parsers/__init__.py +0 -0
  36. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/parsers/map_repeats.py +0 -0
  37. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/parsers/modulator_states.py +0 -0
  38. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/parsers/polarimeter_mode.py +0 -0
  39. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/parsers/raster_step.py +0 -0
  40. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/parsers/spectrograph_configuration.py +0 -0
  41. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/parsers/time.py +0 -0
  42. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/parsers/visp_l0_fits_access.py +0 -0
  43. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/parsers/visp_l1_fits_access.py +0 -0
  44. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tasks/assemble_movie.py +0 -0
  45. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tasks/background_light.py +0 -0
  46. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tasks/dark.py +0 -0
  47. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tasks/geometric.py +0 -0
  48. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tasks/instrument_polarization.py +0 -0
  49. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tasks/l1_output_data.py +0 -0
  50. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tasks/lamp.py +0 -0
  51. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tasks/make_movie_frames.py +0 -0
  52. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tasks/mixin/__init__.py +0 -0
  53. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tasks/mixin/beam_access.py +0 -0
  54. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tasks/mixin/corrections.py +0 -0
  55. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tasks/mixin/downsample.py +0 -0
  56. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tasks/parse.py +0 -0
  57. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tasks/quality_metrics.py +0 -0
  58. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tasks/science.py +0 -0
  59. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tasks/visp_base.py +0 -0
  60. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tasks/write_l1.py +0 -0
  61. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tests/README.rst +0 -0
  62. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tests/__init__.py +0 -0
  63. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tests/conftest.py +0 -0
  64. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tests/header_models.py +0 -0
  65. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tests/local_trial_workflows/__init__.py +0 -0
  66. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tests/local_trial_workflows/l0_cals_only.py +0 -0
  67. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tests/local_trial_workflows/l0_polcals_as_science.py +0 -0
  68. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tests/local_trial_workflows/l0_solar_gain_as_science.py +0 -0
  69. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tests/local_trial_workflows/l0_to_l1.py +0 -0
  70. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tests/local_trial_workflows/local_trial_helpers.py +0 -0
  71. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tests/test_assemble_movie.py +0 -0
  72. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tests/test_assemble_quality.py +0 -0
  73. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tests/test_background_light.py +0 -0
  74. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tests/test_dark.py +0 -0
  75. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tests/test_downsample.py +0 -0
  76. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tests/test_fits_access.py +0 -0
  77. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tests/test_geometric.py +0 -0
  78. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tests/test_instrument_polarization.py +0 -0
  79. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tests/test_lamp.py +0 -0
  80. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tests/test_make_movie_frames.py +0 -0
  81. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tests/test_map_repeats.py +0 -0
  82. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tests/test_parameters.py +0 -0
  83. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tests/test_parse.py +0 -0
  84. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tests/test_quality.py +0 -0
  85. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tests/test_science.py +0 -0
  86. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tests/test_solar.py +0 -0
  87. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tests/test_trial_create_quality_report.py +0 -0
  88. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tests/test_visp_constants.py +0 -0
  89. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tests/test_wavelength_calibration.py +0 -0
  90. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tests/test_workflows.py +0 -0
  91. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/tests/test_write_l1.py +0 -0
  92. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/workflows/__init__.py +0 -0
  93. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp/workflows/single_task_workflows.py +0 -0
  94. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp.egg-info/dependency_links.txt +0 -0
  95. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/dkist_processing_visp.egg-info/top_level.txt +0 -0
  96. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/docs/Makefile +0 -0
  97. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/docs/background_light.rst +0 -0
  98. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/docs/changelog.rst +0 -0
  99. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/docs/conf.py +0 -0
  100. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/docs/gain_correction.rst +0 -0
  101. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/docs/geometric.rst +0 -0
  102. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/docs/index.rst +0 -0
  103. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/docs/l0_to_l1_visp.rst +0 -0
  104. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/docs/l0_to_l1_visp_full-trial.rst +0 -0
  105. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/docs/landing_page.rst +0 -0
  106. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/docs/make.bat +0 -0
  107. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/docs/polarization_calibration.rst +0 -0
  108. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/docs/requirements.txt +0 -0
  109. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/docs/requirements_table.rst +0 -0
  110. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/docs/science_calibration.rst +0 -0
  111. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/docs/scientific_changelog.rst +0 -0
  112. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/docs/wavelength_calibration.rst +0 -0
  113. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/licenses/LICENSE.rst +0 -0
  114. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/science_towncrier.sh +0 -0
  115. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/setup.cfg +0 -0
  116. {dkist_processing_visp-5.2.0rc1 → dkist_processing_visp-5.2.2}/towncrier_science.toml +0 -0
@@ -1,3 +1,64 @@
1
+ v5.2.2 (2025-12-17)
2
+ ===================
3
+
4
+ Bugfixes
5
+ --------
6
+
7
+ - Normalize atlas and input spectrum when computing an initial CRVAL guess in the `WavelengthCalibration` task. This fixes
8
+ failing fits caused by very poor initial guesses caused by large continuum offsets. (`#255 <https://bitbucket.org/dkistdc/dkist-processing-visp/pull-requests/255>`__)
9
+
10
+
11
+ Misc
12
+ ----
13
+
14
+ - Move the `estimate_relative_continuum_level` method from `SolarCalibration` class to be a module-level function in
15
+ "wavelength_calibration.py" so it can be used by both the `SolarCalibration` and `WavelengthCalibration` tasks. (`#255 <https://bitbucket.org/dkistdc/dkist-processing-visp/pull-requests/255>`__)
16
+ - Import the `WavelengthCalibration` task into the top-level `tasks` package and use that import path in workflow definitions. (`#255 <https://bitbucket.org/dkistdc/dkist-processing-visp/pull-requests/255>`__)
17
+
18
+
19
+ Documentation
20
+ -------------
21
+
22
+ - Fix issue that prevented module-level functions in the wavelength calibration module from rendering in API docs. (`#255 <https://bitbucket.org/dkistdc/dkist-processing-visp/pull-requests/255>`__)
23
+
24
+
25
+ v5.2.1 (2025-12-16)
26
+ ===================
27
+
28
+ Misc
29
+ ----
30
+
31
+ - Update dkist-fits-specifications to enable use of dataset extras schemas. (`#254 <https://bitbucket.org/dkistdc/dkist-processing-visp/pull-requests/254>`__)
32
+
33
+
34
+ v5.2.0 (2025-12-12)
35
+ ===================
36
+
37
+ Features
38
+ --------
39
+
40
+ - Add the WavelengthCalibration task, which computes an absolute wavelength solution that is encoded in L1 headers. (`#234 <https://bitbucket.org/dkistdc/dkist-processing-visp/pull-requests/234>`__)
41
+
42
+
43
+ Bugfixes
44
+ --------
45
+
46
+ - The modification of CRPIX1 and CRPIX2 to account for beam-overlap trimming is now correct for some early (OCP1) ViSP
47
+ data that had their WCS axes switched in the headers. (`#234 <https://bitbucket.org/dkistdc/dkist-processing-visp/pull-requests/234>`__)
48
+
49
+
50
+ Misc
51
+ ----
52
+
53
+ - Update logging lines to print `np.int*` types as plain ints instead of the `__repr__`, which shows the full type. (`#253 <https://bitbucket.org/dkistdc/dkist-processing-visp/pull-requests/253>`__)
54
+
55
+
56
+ Documentation
57
+ -------------
58
+
59
+ - Add online documentation page for new WavelengthCalibration task. (`#234 <https://bitbucket.org/dkistdc/dkist-processing-visp/pull-requests/234>`__)
60
+
61
+
1
62
  v5.1.2 (2025-12-08)
2
63
  ===================
3
64
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dkist-processing-visp
3
- Version: 5.2.0rc1
3
+ Version: 5.2.2
4
4
  Summary: Science processing code for the ViSP instrument on DKIST
5
5
  Author-email: NSO / AURA <dkistdc@nso.edu>
6
6
  License: BSD-3-Clause
@@ -17,7 +17,7 @@ Requires-Dist: dkist-processing-common==11.9.1
17
17
  Requires-Dist: dkist-processing-math==2.2.1
18
18
  Requires-Dist: dkist-processing-pac==3.1.1
19
19
  Requires-Dist: dkist-header-validator==5.2.1
20
- Requires-Dist: dkist-fits-specifications==4.17.0
20
+ Requires-Dist: dkist-fits-specifications==4.19.0
21
21
  Requires-Dist: dkist-service-configuration==4.1.13
22
22
  Requires-Dist: dkist-spectral-lines==3.0.0
23
23
  Requires-Dist: solar-wavelength-calibration==2.0.0
@@ -88,7 +88,7 @@ Requires-Dist: PyYAML==6.0.3; extra == "frozen"
88
88
  Requires-Dist: Pygments==2.19.2; extra == "frozen"
89
89
  Requires-Dist: SQLAlchemy==1.4.54; extra == "frozen"
90
90
  Requires-Dist: SQLAlchemy-JSONField==1.0.2; extra == "frozen"
91
- Requires-Dist: SQLAlchemy-Utils==0.42.0; extra == "frozen"
91
+ Requires-Dist: SQLAlchemy-Utils==0.42.1; extra == "frozen"
92
92
  Requires-Dist: WTForms==3.2.1; extra == "frozen"
93
93
  Requires-Dist: Werkzeug==2.2.3; extra == "frozen"
94
94
  Requires-Dist: aioftp==0.27.2; extra == "frozen"
@@ -101,16 +101,16 @@ Requires-Dist: amqp==5.3.1; extra == "frozen"
101
101
  Requires-Dist: annotated-types==0.7.0; extra == "frozen"
102
102
  Requires-Dist: anyio==4.12.0; extra == "frozen"
103
103
  Requires-Dist: apache-airflow==2.11.0; extra == "frozen"
104
- Requires-Dist: apache-airflow-providers-celery==3.14.0; extra == "frozen"
105
- Requires-Dist: apache-airflow-providers-common-compat==1.10.0; extra == "frozen"
104
+ Requires-Dist: apache-airflow-providers-celery==3.14.1; extra == "frozen"
105
+ Requires-Dist: apache-airflow-providers-common-compat==1.10.1; extra == "frozen"
106
106
  Requires-Dist: apache-airflow-providers-common-io==1.7.0; extra == "frozen"
107
- Requires-Dist: apache-airflow-providers-common-sql==1.30.0; extra == "frozen"
107
+ Requires-Dist: apache-airflow-providers-common-sql==1.30.1; extra == "frozen"
108
108
  Requires-Dist: apache-airflow-providers-fab==1.5.3; extra == "frozen"
109
109
  Requires-Dist: apache-airflow-providers-ftp==3.14.0; extra == "frozen"
110
- Requires-Dist: apache-airflow-providers-http==5.6.0; extra == "frozen"
111
- Requires-Dist: apache-airflow-providers-imap==3.10.0; extra == "frozen"
112
- Requires-Dist: apache-airflow-providers-postgres==6.5.0; extra == "frozen"
113
- Requires-Dist: apache-airflow-providers-smtp==2.4.0; extra == "frozen"
110
+ Requires-Dist: apache-airflow-providers-http==5.6.1; extra == "frozen"
111
+ Requires-Dist: apache-airflow-providers-imap==3.10.1; extra == "frozen"
112
+ Requires-Dist: apache-airflow-providers-postgres==6.5.1; extra == "frozen"
113
+ Requires-Dist: apache-airflow-providers-smtp==2.4.1; extra == "frozen"
114
114
  Requires-Dist: apache-airflow-providers-sqlite==4.2.0; extra == "frozen"
115
115
  Requires-Dist: apispec==6.9.0; extra == "frozen"
116
116
  Requires-Dist: argcomplete==3.6.3; extra == "frozen"
@@ -120,14 +120,14 @@ Requires-Dist: asdf_transform_schemas==0.6.0; extra == "frozen"
120
120
  Requires-Dist: asgiref==3.11.0; extra == "frozen"
121
121
  Requires-Dist: asteval==1.0.7; extra == "frozen"
122
122
  Requires-Dist: astropy==7.0.2; extra == "frozen"
123
- Requires-Dist: astropy-iers-data==0.2025.12.8.0.38.44; extra == "frozen"
123
+ Requires-Dist: astropy-iers-data==0.2025.12.15.0.40.51; extra == "frozen"
124
124
  Requires-Dist: asyncpg==0.31.0; extra == "frozen"
125
125
  Requires-Dist: attrs==25.4.0; extra == "frozen"
126
126
  Requires-Dist: babel==2.17.0; extra == "frozen"
127
127
  Requires-Dist: billiard==4.2.4; extra == "frozen"
128
128
  Requires-Dist: blinker==1.9.0; extra == "frozen"
129
- Requires-Dist: boto3==1.42.8; extra == "frozen"
130
- Requires-Dist: botocore==1.42.8; extra == "frozen"
129
+ Requires-Dist: boto3==1.42.11; extra == "frozen"
130
+ Requires-Dist: botocore==1.42.11; extra == "frozen"
131
131
  Requires-Dist: cachelib==0.13.0; extra == "frozen"
132
132
  Requires-Dist: celery==5.6.0; extra == "frozen"
133
133
  Requires-Dist: certifi==2025.11.12; extra == "frozen"
@@ -154,22 +154,23 @@ Requires-Dist: dkist-processing-common==11.9.1; extra == "frozen"
154
154
  Requires-Dist: dkist-processing-core==6.0.1; extra == "frozen"
155
155
  Requires-Dist: dkist-processing-math==2.2.1; extra == "frozen"
156
156
  Requires-Dist: dkist-processing-pac==3.1.1; extra == "frozen"
157
- Requires-Dist: dkist-processing-visp==5.2.0rc1; extra == "frozen"
157
+ Requires-Dist: dkist-processing-visp==5.2.2; extra == "frozen"
158
158
  Requires-Dist: dkist-service-configuration==4.1.13; extra == "frozen"
159
159
  Requires-Dist: dkist-spectral-lines==3.0.0; extra == "frozen"
160
- Requires-Dist: dkist_fits_specifications==4.17.0; extra == "frozen"
160
+ Requires-Dist: dkist_fits_specifications==4.19.0; extra == "frozen"
161
161
  Requires-Dist: dnspython==2.8.0; extra == "frozen"
162
162
  Requires-Dist: email-validator==2.3.0; extra == "frozen"
163
163
  Requires-Dist: exceptiongroup==1.3.1; extra == "frozen"
164
164
  Requires-Dist: fastjsonschema==2.21.2; extra == "frozen"
165
165
  Requires-Dist: flower==2.0.1; extra == "frozen"
166
- Requires-Dist: fonttools==4.61.0; extra == "frozen"
166
+ Requires-Dist: fonttools==4.61.1; extra == "frozen"
167
167
  Requires-Dist: frozenlist==1.8.0; extra == "frozen"
168
168
  Requires-Dist: fsspec==2025.12.0; extra == "frozen"
169
169
  Requires-Dist: globus-sdk==4.2.0; extra == "frozen"
170
170
  Requires-Dist: google-re2==1.1.20251105; extra == "frozen"
171
171
  Requires-Dist: googleapis-common-protos==1.72.0; extra == "frozen"
172
172
  Requires-Dist: gqlclient==1.2.3; extra == "frozen"
173
+ Requires-Dist: greenlet==3.3.0; extra == "frozen"
173
174
  Requires-Dist: grpcio==1.76.0; extra == "frozen"
174
175
  Requires-Dist: gunicorn==23.0.0; extra == "frozen"
175
176
  Requires-Dist: h11==0.16.0; extra == "frozen"
@@ -182,7 +183,7 @@ Requires-Dist: importlib_metadata==8.7.0; extra == "frozen"
182
183
  Requires-Dist: inflection==0.5.1; extra == "frozen"
183
184
  Requires-Dist: itsdangerous==2.2.0; extra == "frozen"
184
185
  Requires-Dist: jmespath==1.0.1; extra == "frozen"
185
- Requires-Dist: joblib==1.5.2; extra == "frozen"
186
+ Requires-Dist: joblib==1.5.3; extra == "frozen"
186
187
  Requires-Dist: jsonschema==4.25.1; extra == "frozen"
187
188
  Requires-Dist: jsonschema-specifications==2025.9.1; extra == "frozen"
188
189
  Requires-Dist: jupyter_core==5.9.1; extra == "frozen"
@@ -292,13 +293,13 @@ Requires-Dist: tenacity==8.5.0; extra == "frozen"
292
293
  Requires-Dist: termcolor==3.2.0; extra == "frozen"
293
294
  Requires-Dist: text-unidecode==1.3; extra == "frozen"
294
295
  Requires-Dist: threadpoolctl==3.6.0; extra == "frozen"
295
- Requires-Dist: tifffile==2025.10.16; extra == "frozen"
296
- Requires-Dist: tornado==6.5.3; extra == "frozen"
296
+ Requires-Dist: tifffile==2025.12.12; extra == "frozen"
297
+ Requires-Dist: tornado==6.5.4; extra == "frozen"
297
298
  Requires-Dist: tqdm==4.67.1; extra == "frozen"
298
299
  Requires-Dist: traitlets==5.14.3; extra == "frozen"
299
300
  Requires-Dist: typing-inspection==0.4.2; extra == "frozen"
300
301
  Requires-Dist: typing_extensions==4.15.0; extra == "frozen"
301
- Requires-Dist: tzdata==2025.2; extra == "frozen"
302
+ Requires-Dist: tzdata==2025.3; extra == "frozen"
302
303
  Requires-Dist: tzlocal==5.3.1; extra == "frozen"
303
304
  Requires-Dist: uc-micro-py==1.0.3; extra == "frozen"
304
305
  Requires-Dist: uncertainties==3.2.3; extra == "frozen"
@@ -1,3 +1,13 @@
1
+ v5.2.0 (2025-12-12)
2
+ ===================
3
+
4
+
5
+
6
+
7
+ - L1 data now have a correct wavelength solution encoded in their headers. See :doc:`here </wavelength_calibration>`
8
+ for more information. (`#234 <https://bitbucket.org/dkistdc/dkist-processing-visp/pull-requests/234>`__)
9
+
10
+
1
11
  v5.0.0 (2025-12-02)
2
12
  ===================
3
13
 
@@ -12,4 +12,5 @@ from dkist_processing_visp.tasks.parse import *
12
12
  from dkist_processing_visp.tasks.quality_metrics import *
13
13
  from dkist_processing_visp.tasks.science import *
14
14
  from dkist_processing_visp.tasks.solar import *
15
+ from dkist_processing_visp.tasks.wavelength_calibration import WavelengthCalibration
15
16
  from dkist_processing_visp.tasks.write_l1 import *
@@ -46,6 +46,7 @@ from dkist_processing_visp.tasks.visp_base import VispTaskBase
46
46
  from dkist_processing_visp.tasks.wavelength_calibration import compute_initial_dispersion
47
47
  from dkist_processing_visp.tasks.wavelength_calibration import compute_input_wavelength_vector
48
48
  from dkist_processing_visp.tasks.wavelength_calibration import compute_order
49
+ from dkist_processing_visp.tasks.wavelength_calibration import estimate_relative_continuum_level
49
50
  from dkist_processing_visp.tasks.wavelength_calibration import get_doppler_velocity
50
51
 
51
52
  __all__ = [
@@ -638,11 +639,12 @@ class SolarCalibration(
638
639
  resolving_power = self.parameters.wavecal_init_resolving_power
639
640
  opacity_factor = self.parameters.wavecal_init_opacity_factor
640
641
  straylight_faction = self.parameters.wavecal_init_straylight_fraction
641
- relative_atlas_scaling = self.estimate_relative_continuum_level(
642
+ relative_atlas_scaling = estimate_relative_continuum_level(
642
643
  crval_init=crval_init,
643
644
  wavelength_range=wavelength_range,
644
645
  atlas=atlas,
645
646
  representative_spectrum=representative_spectrum,
647
+ normalization_percentile=self.parameters.wavecal_init_crval_guess_normalization_percentile,
646
648
  )
647
649
  logger.info(f"0th order coefficient initial guess: {relative_atlas_scaling}")
648
650
 
@@ -683,39 +685,6 @@ class SolarCalibration(
683
685
 
684
686
  return init_params
685
687
 
686
- def estimate_relative_continuum_level(
687
- self,
688
- *,
689
- crval_init: Quantity,
690
- wavelength_range: Quantity,
691
- atlas: Atlas,
692
- representative_spectrum: np.ndarray,
693
- ) -> float:
694
- """
695
- Estimate the multiplicative scaling between the representative spectrum and atlas solar transmission.
696
-
697
- This scaling is used to set the initial guess of 0th-order polynomial fit coefficient. We estimate the scaling
698
- factor by comparing the values of the two spectra at a given percent of the CDF. This percent is taken from
699
- the `~dkist_processing_visp.models.parameters.VispParameters.wavecal_init_crval_guess_normalization_percentile`
700
- pipeline parameter.
701
- """
702
- wave_min = crval_init - wavelength_range / 2
703
- wave_max = crval_init + wavelength_range / 2
704
-
705
- atlas_idx = np.where(
706
- (atlas.solar_atlas_wavelength >= wave_min) & (atlas.solar_atlas_wavelength <= wave_max)
707
- )
708
- atlas_norm = np.nanpercentile(
709
- atlas.solar_atlas_transmission[atlas_idx],
710
- self.parameters.wavecal_init_crval_guess_normalization_percentile,
711
- )
712
- spec_norm = np.nanpercentile(
713
- representative_spectrum,
714
- self.parameters.wavecal_init_crval_guess_normalization_percentile,
715
- )
716
-
717
- return spec_norm / atlas_norm
718
-
719
688
  def compute_final_vignette_estimate(self, init_vignette_correction: np.ndarray) -> np.ndarray:
720
689
  """
721
690
  Fit the spectral shape of continuum residuals for each spatial pixel.
@@ -26,8 +26,6 @@ from sunpy.coordinates import HeliocentricInertial
26
26
  from dkist_processing_visp.models.tags import VispTag
27
27
  from dkist_processing_visp.tasks.visp_base import VispTaskBase
28
28
 
29
- __all__ = ["WavelengthCalibration"]
30
-
31
29
 
32
30
  class WavelengthCalibration(VispTaskBase, QualityMixin):
33
31
  """Task class for correcting the dispersion axis wavelength values.
@@ -125,6 +123,7 @@ class WavelengthCalibration(VispTaskBase, QualityMixin):
125
123
  negative_limit=-wavelength_range / 2,
126
124
  positive_limit=wavelength_range / 2,
127
125
  num_steps=550,
126
+ normalization_percentile=self.parameters.wavecal_init_crval_guess_normalization_percentile,
128
127
  )
129
128
  logger.info(f"{crval_initial_guess = !s}")
130
129
 
@@ -135,6 +134,15 @@ class WavelengthCalibration(VispTaskBase, QualityMixin):
135
134
  resolving_power = self.parameters.wavecal_init_resolving_power
136
135
  logger.info(f"{resolving_power = }")
137
136
 
137
+ init_continuum_level = estimate_relative_continuum_level(
138
+ crval_init=crval_initial_guess,
139
+ wavelength_range=wavelength_range,
140
+ atlas=atlas,
141
+ representative_spectrum=input_spectrum,
142
+ normalization_percentile=self.parameters.wavecal_init_crval_guess_normalization_percentile,
143
+ )
144
+ logger.info(f"{init_continuum_level = !s}")
145
+
138
146
  logger.info("Setting bounds")
139
147
  wavelength_search_width = dispersion * self.parameters.wavecal_crval_bounds_px
140
148
  bounds = BoundsModel(
@@ -158,7 +166,9 @@ class WavelengthCalibration(VispTaskBase, QualityMixin):
158
166
  ),
159
167
  opacity_factor=UnitlessBoundRange(min=0.0, max=10.0),
160
168
  straylight_fraction=UnitlessBoundRange(min=0.0, max=0.4),
161
- continuum_level=UnitlessBoundRange(min=0.5, max=2.0),
169
+ continuum_level=UnitlessBoundRange(
170
+ min=init_continuum_level * 0.7, max=init_continuum_level * 1.3
171
+ ),
162
172
  )
163
173
 
164
174
  fit_flags = FitFlagsModel(
@@ -180,6 +190,7 @@ class WavelengthCalibration(VispTaskBase, QualityMixin):
180
190
  opacity_factor=self.parameters.wavecal_init_opacity_factor,
181
191
  straylight_fraction=self.parameters.wavecal_init_straylight_fraction,
182
192
  grating_constant=self.constants.grating_constant_inverse_mm,
193
+ continuum_level=init_continuum_level,
183
194
  doppler_velocity=doppler_velocity,
184
195
  order=order,
185
196
  bounds=bounds,
@@ -428,3 +439,33 @@ def compute_initial_dispersion(
428
439
  dispersion = pixel_pitch / linear_dispersion
429
440
 
430
441
  return dispersion.to(u.nm / u.pix)
442
+
443
+
444
+ def estimate_relative_continuum_level(
445
+ *,
446
+ crval_init: Quantity,
447
+ wavelength_range: Quantity,
448
+ atlas: Atlas,
449
+ representative_spectrum: np.ndarray,
450
+ normalization_percentile: float,
451
+ ) -> float:
452
+ """
453
+ Estimate the multiplicative scaling between the representative spectrum and atlas solar transmission.
454
+
455
+ This scaling is used to set the initial guess of 0th-order continuum scaling. We estimate the scaling factor by
456
+ comparing the values of the two spectra at a given percent of the CDF. This percent is taken from the
457
+ `~dkist_processing_visp.models.parameters.VispParameters.wavecal_init_crval_guess_normalization_percentile`
458
+ pipeline parameter.
459
+ """
460
+ wave_min = crval_init - wavelength_range / 2
461
+ wave_max = crval_init + wavelength_range / 2
462
+
463
+ atlas_idx = np.where(
464
+ (atlas.solar_atlas_wavelength >= wave_min) & (atlas.solar_atlas_wavelength <= wave_max)
465
+ )
466
+ atlas_norm = np.nanpercentile(
467
+ atlas.solar_atlas_transmission[atlas_idx], normalization_percentile
468
+ )
469
+ spec_norm = np.nanpercentile(representative_spectrum, normalization_percentile)
470
+
471
+ return spec_norm / atlas_norm
@@ -22,7 +22,7 @@ from dkist_processing_visp.tasks import VispAssembleQualityData
22
22
  from dkist_processing_visp.tasks import VispL0QualityMetrics
23
23
  from dkist_processing_visp.tasks import VispL1QualityMetrics
24
24
  from dkist_processing_visp.tasks import VispWriteL1Frame
25
- from dkist_processing_visp.tasks.wavelength_calibration import WavelengthCalibration
25
+ from dkist_processing_visp.tasks import WavelengthCalibration
26
26
 
27
27
  l0_pipeline = Workflow(
28
28
  category="visp",
@@ -23,7 +23,7 @@ from dkist_processing_visp.tasks import VispAssembleQualityData
23
23
  from dkist_processing_visp.tasks import VispL0QualityMetrics
24
24
  from dkist_processing_visp.tasks import VispL1QualityMetrics
25
25
  from dkist_processing_visp.tasks import VispWriteL1Frame
26
- from dkist_processing_visp.tasks.wavelength_calibration import WavelengthCalibration
26
+ from dkist_processing_visp.tasks import WavelengthCalibration
27
27
 
28
28
  full_trial_pipeline = Workflow(
29
29
  category="visp",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dkist-processing-visp
3
- Version: 5.2.0rc1
3
+ Version: 5.2.2
4
4
  Summary: Science processing code for the ViSP instrument on DKIST
5
5
  Author-email: NSO / AURA <dkistdc@nso.edu>
6
6
  License: BSD-3-Clause
@@ -17,7 +17,7 @@ Requires-Dist: dkist-processing-common==11.9.1
17
17
  Requires-Dist: dkist-processing-math==2.2.1
18
18
  Requires-Dist: dkist-processing-pac==3.1.1
19
19
  Requires-Dist: dkist-header-validator==5.2.1
20
- Requires-Dist: dkist-fits-specifications==4.17.0
20
+ Requires-Dist: dkist-fits-specifications==4.19.0
21
21
  Requires-Dist: dkist-service-configuration==4.1.13
22
22
  Requires-Dist: dkist-spectral-lines==3.0.0
23
23
  Requires-Dist: solar-wavelength-calibration==2.0.0
@@ -88,7 +88,7 @@ Requires-Dist: PyYAML==6.0.3; extra == "frozen"
88
88
  Requires-Dist: Pygments==2.19.2; extra == "frozen"
89
89
  Requires-Dist: SQLAlchemy==1.4.54; extra == "frozen"
90
90
  Requires-Dist: SQLAlchemy-JSONField==1.0.2; extra == "frozen"
91
- Requires-Dist: SQLAlchemy-Utils==0.42.0; extra == "frozen"
91
+ Requires-Dist: SQLAlchemy-Utils==0.42.1; extra == "frozen"
92
92
  Requires-Dist: WTForms==3.2.1; extra == "frozen"
93
93
  Requires-Dist: Werkzeug==2.2.3; extra == "frozen"
94
94
  Requires-Dist: aioftp==0.27.2; extra == "frozen"
@@ -101,16 +101,16 @@ Requires-Dist: amqp==5.3.1; extra == "frozen"
101
101
  Requires-Dist: annotated-types==0.7.0; extra == "frozen"
102
102
  Requires-Dist: anyio==4.12.0; extra == "frozen"
103
103
  Requires-Dist: apache-airflow==2.11.0; extra == "frozen"
104
- Requires-Dist: apache-airflow-providers-celery==3.14.0; extra == "frozen"
105
- Requires-Dist: apache-airflow-providers-common-compat==1.10.0; extra == "frozen"
104
+ Requires-Dist: apache-airflow-providers-celery==3.14.1; extra == "frozen"
105
+ Requires-Dist: apache-airflow-providers-common-compat==1.10.1; extra == "frozen"
106
106
  Requires-Dist: apache-airflow-providers-common-io==1.7.0; extra == "frozen"
107
- Requires-Dist: apache-airflow-providers-common-sql==1.30.0; extra == "frozen"
107
+ Requires-Dist: apache-airflow-providers-common-sql==1.30.1; extra == "frozen"
108
108
  Requires-Dist: apache-airflow-providers-fab==1.5.3; extra == "frozen"
109
109
  Requires-Dist: apache-airflow-providers-ftp==3.14.0; extra == "frozen"
110
- Requires-Dist: apache-airflow-providers-http==5.6.0; extra == "frozen"
111
- Requires-Dist: apache-airflow-providers-imap==3.10.0; extra == "frozen"
112
- Requires-Dist: apache-airflow-providers-postgres==6.5.0; extra == "frozen"
113
- Requires-Dist: apache-airflow-providers-smtp==2.4.0; extra == "frozen"
110
+ Requires-Dist: apache-airflow-providers-http==5.6.1; extra == "frozen"
111
+ Requires-Dist: apache-airflow-providers-imap==3.10.1; extra == "frozen"
112
+ Requires-Dist: apache-airflow-providers-postgres==6.5.1; extra == "frozen"
113
+ Requires-Dist: apache-airflow-providers-smtp==2.4.1; extra == "frozen"
114
114
  Requires-Dist: apache-airflow-providers-sqlite==4.2.0; extra == "frozen"
115
115
  Requires-Dist: apispec==6.9.0; extra == "frozen"
116
116
  Requires-Dist: argcomplete==3.6.3; extra == "frozen"
@@ -120,14 +120,14 @@ Requires-Dist: asdf_transform_schemas==0.6.0; extra == "frozen"
120
120
  Requires-Dist: asgiref==3.11.0; extra == "frozen"
121
121
  Requires-Dist: asteval==1.0.7; extra == "frozen"
122
122
  Requires-Dist: astropy==7.0.2; extra == "frozen"
123
- Requires-Dist: astropy-iers-data==0.2025.12.8.0.38.44; extra == "frozen"
123
+ Requires-Dist: astropy-iers-data==0.2025.12.15.0.40.51; extra == "frozen"
124
124
  Requires-Dist: asyncpg==0.31.0; extra == "frozen"
125
125
  Requires-Dist: attrs==25.4.0; extra == "frozen"
126
126
  Requires-Dist: babel==2.17.0; extra == "frozen"
127
127
  Requires-Dist: billiard==4.2.4; extra == "frozen"
128
128
  Requires-Dist: blinker==1.9.0; extra == "frozen"
129
- Requires-Dist: boto3==1.42.8; extra == "frozen"
130
- Requires-Dist: botocore==1.42.8; extra == "frozen"
129
+ Requires-Dist: boto3==1.42.11; extra == "frozen"
130
+ Requires-Dist: botocore==1.42.11; extra == "frozen"
131
131
  Requires-Dist: cachelib==0.13.0; extra == "frozen"
132
132
  Requires-Dist: celery==5.6.0; extra == "frozen"
133
133
  Requires-Dist: certifi==2025.11.12; extra == "frozen"
@@ -154,22 +154,23 @@ Requires-Dist: dkist-processing-common==11.9.1; extra == "frozen"
154
154
  Requires-Dist: dkist-processing-core==6.0.1; extra == "frozen"
155
155
  Requires-Dist: dkist-processing-math==2.2.1; extra == "frozen"
156
156
  Requires-Dist: dkist-processing-pac==3.1.1; extra == "frozen"
157
- Requires-Dist: dkist-processing-visp==5.2.0rc1; extra == "frozen"
157
+ Requires-Dist: dkist-processing-visp==5.2.2; extra == "frozen"
158
158
  Requires-Dist: dkist-service-configuration==4.1.13; extra == "frozen"
159
159
  Requires-Dist: dkist-spectral-lines==3.0.0; extra == "frozen"
160
- Requires-Dist: dkist_fits_specifications==4.17.0; extra == "frozen"
160
+ Requires-Dist: dkist_fits_specifications==4.19.0; extra == "frozen"
161
161
  Requires-Dist: dnspython==2.8.0; extra == "frozen"
162
162
  Requires-Dist: email-validator==2.3.0; extra == "frozen"
163
163
  Requires-Dist: exceptiongroup==1.3.1; extra == "frozen"
164
164
  Requires-Dist: fastjsonschema==2.21.2; extra == "frozen"
165
165
  Requires-Dist: flower==2.0.1; extra == "frozen"
166
- Requires-Dist: fonttools==4.61.0; extra == "frozen"
166
+ Requires-Dist: fonttools==4.61.1; extra == "frozen"
167
167
  Requires-Dist: frozenlist==1.8.0; extra == "frozen"
168
168
  Requires-Dist: fsspec==2025.12.0; extra == "frozen"
169
169
  Requires-Dist: globus-sdk==4.2.0; extra == "frozen"
170
170
  Requires-Dist: google-re2==1.1.20251105; extra == "frozen"
171
171
  Requires-Dist: googleapis-common-protos==1.72.0; extra == "frozen"
172
172
  Requires-Dist: gqlclient==1.2.3; extra == "frozen"
173
+ Requires-Dist: greenlet==3.3.0; extra == "frozen"
173
174
  Requires-Dist: grpcio==1.76.0; extra == "frozen"
174
175
  Requires-Dist: gunicorn==23.0.0; extra == "frozen"
175
176
  Requires-Dist: h11==0.16.0; extra == "frozen"
@@ -182,7 +183,7 @@ Requires-Dist: importlib_metadata==8.7.0; extra == "frozen"
182
183
  Requires-Dist: inflection==0.5.1; extra == "frozen"
183
184
  Requires-Dist: itsdangerous==2.2.0; extra == "frozen"
184
185
  Requires-Dist: jmespath==1.0.1; extra == "frozen"
185
- Requires-Dist: joblib==1.5.2; extra == "frozen"
186
+ Requires-Dist: joblib==1.5.3; extra == "frozen"
186
187
  Requires-Dist: jsonschema==4.25.1; extra == "frozen"
187
188
  Requires-Dist: jsonschema-specifications==2025.9.1; extra == "frozen"
188
189
  Requires-Dist: jupyter_core==5.9.1; extra == "frozen"
@@ -292,13 +293,13 @@ Requires-Dist: tenacity==8.5.0; extra == "frozen"
292
293
  Requires-Dist: termcolor==3.2.0; extra == "frozen"
293
294
  Requires-Dist: text-unidecode==1.3; extra == "frozen"
294
295
  Requires-Dist: threadpoolctl==3.6.0; extra == "frozen"
295
- Requires-Dist: tifffile==2025.10.16; extra == "frozen"
296
- Requires-Dist: tornado==6.5.3; extra == "frozen"
296
+ Requires-Dist: tifffile==2025.12.12; extra == "frozen"
297
+ Requires-Dist: tornado==6.5.4; extra == "frozen"
297
298
  Requires-Dist: tqdm==4.67.1; extra == "frozen"
298
299
  Requires-Dist: traitlets==5.14.3; extra == "frozen"
299
300
  Requires-Dist: typing-inspection==0.4.2; extra == "frozen"
300
301
  Requires-Dist: typing_extensions==4.15.0; extra == "frozen"
301
- Requires-Dist: tzdata==2025.2; extra == "frozen"
302
+ Requires-Dist: tzdata==2025.3; extra == "frozen"
302
303
  Requires-Dist: tzlocal==5.3.1; extra == "frozen"
303
304
  Requires-Dist: uc-micro-py==1.0.3; extra == "frozen"
304
305
  Requires-Dist: uncertainties==3.2.3; extra == "frozen"
@@ -10,11 +10,6 @@ pyproject.toml
10
10
  science_towncrier.sh
11
11
  towncrier_science.toml
12
12
  changelog/.gitempty
13
- changelog/234.bugfix.rst
14
- changelog/234.doc.rst
15
- changelog/234.feature.rst
16
- changelog/234.science.rst
17
- changelog/253.misc.rst
18
13
  dkist_processing_visp/__init__.py
19
14
  dkist_processing_visp/config.py
20
15
  dkist_processing_visp.egg-info/PKG-INFO
@@ -2,7 +2,7 @@ dkist-processing-common==11.9.1
2
2
  dkist-processing-math==2.2.1
3
3
  dkist-processing-pac==3.1.1
4
4
  dkist-header-validator==5.2.1
5
- dkist-fits-specifications==4.17.0
5
+ dkist-fits-specifications==4.19.0
6
6
  dkist-service-configuration==4.1.13
7
7
  dkist-spectral-lines==3.0.0
8
8
  solar-wavelength-calibration==2.0.0
@@ -54,7 +54,7 @@ PyYAML==6.0.3
54
54
  Pygments==2.19.2
55
55
  SQLAlchemy==1.4.54
56
56
  SQLAlchemy-JSONField==1.0.2
57
- SQLAlchemy-Utils==0.42.0
57
+ SQLAlchemy-Utils==0.42.1
58
58
  WTForms==3.2.1
59
59
  Werkzeug==2.2.3
60
60
  aioftp==0.27.2
@@ -67,16 +67,16 @@ amqp==5.3.1
67
67
  annotated-types==0.7.0
68
68
  anyio==4.12.0
69
69
  apache-airflow==2.11.0
70
- apache-airflow-providers-celery==3.14.0
71
- apache-airflow-providers-common-compat==1.10.0
70
+ apache-airflow-providers-celery==3.14.1
71
+ apache-airflow-providers-common-compat==1.10.1
72
72
  apache-airflow-providers-common-io==1.7.0
73
- apache-airflow-providers-common-sql==1.30.0
73
+ apache-airflow-providers-common-sql==1.30.1
74
74
  apache-airflow-providers-fab==1.5.3
75
75
  apache-airflow-providers-ftp==3.14.0
76
- apache-airflow-providers-http==5.6.0
77
- apache-airflow-providers-imap==3.10.0
78
- apache-airflow-providers-postgres==6.5.0
79
- apache-airflow-providers-smtp==2.4.0
76
+ apache-airflow-providers-http==5.6.1
77
+ apache-airflow-providers-imap==3.10.1
78
+ apache-airflow-providers-postgres==6.5.1
79
+ apache-airflow-providers-smtp==2.4.1
80
80
  apache-airflow-providers-sqlite==4.2.0
81
81
  apispec==6.9.0
82
82
  argcomplete==3.6.3
@@ -86,14 +86,14 @@ asdf_transform_schemas==0.6.0
86
86
  asgiref==3.11.0
87
87
  asteval==1.0.7
88
88
  astropy==7.0.2
89
- astropy-iers-data==0.2025.12.8.0.38.44
89
+ astropy-iers-data==0.2025.12.15.0.40.51
90
90
  asyncpg==0.31.0
91
91
  attrs==25.4.0
92
92
  babel==2.17.0
93
93
  billiard==4.2.4
94
94
  blinker==1.9.0
95
- boto3==1.42.8
96
- botocore==1.42.8
95
+ boto3==1.42.11
96
+ botocore==1.42.11
97
97
  cachelib==0.13.0
98
98
  celery==5.6.0
99
99
  certifi==2025.11.12
@@ -120,22 +120,23 @@ dkist-processing-common==11.9.1
120
120
  dkist-processing-core==6.0.1
121
121
  dkist-processing-math==2.2.1
122
122
  dkist-processing-pac==3.1.1
123
- dkist-processing-visp==5.2.0rc1
123
+ dkist-processing-visp==5.2.2
124
124
  dkist-service-configuration==4.1.13
125
125
  dkist-spectral-lines==3.0.0
126
- dkist_fits_specifications==4.17.0
126
+ dkist_fits_specifications==4.19.0
127
127
  dnspython==2.8.0
128
128
  email-validator==2.3.0
129
129
  exceptiongroup==1.3.1
130
130
  fastjsonschema==2.21.2
131
131
  flower==2.0.1
132
- fonttools==4.61.0
132
+ fonttools==4.61.1
133
133
  frozenlist==1.8.0
134
134
  fsspec==2025.12.0
135
135
  globus-sdk==4.2.0
136
136
  google-re2==1.1.20251105
137
137
  googleapis-common-protos==1.72.0
138
138
  gqlclient==1.2.3
139
+ greenlet==3.3.0
139
140
  grpcio==1.76.0
140
141
  gunicorn==23.0.0
141
142
  h11==0.16.0
@@ -148,7 +149,7 @@ importlib_metadata==8.7.0
148
149
  inflection==0.5.1
149
150
  itsdangerous==2.2.0
150
151
  jmespath==1.0.1
151
- joblib==1.5.2
152
+ joblib==1.5.3
152
153
  jsonschema==4.25.1
153
154
  jsonschema-specifications==2025.9.1
154
155
  jupyter_core==5.9.1
@@ -258,13 +259,13 @@ tenacity==8.5.0
258
259
  termcolor==3.2.0
259
260
  text-unidecode==1.3
260
261
  threadpoolctl==3.6.0
261
- tifffile==2025.10.16
262
- tornado==6.5.3
262
+ tifffile==2025.12.12
263
+ tornado==6.5.4
263
264
  tqdm==4.67.1
264
265
  traitlets==5.14.3
265
266
  typing-inspection==0.4.2
266
267
  typing_extensions==4.15.0
267
- tzdata==2025.2
268
+ tzdata==2025.3
268
269
  tzlocal==5.3.1
269
270
  uc-micro-py==1.0.3
270
271
  uncertainties==3.2.3
@@ -9,8 +9,8 @@ find = {}
9
9
 
10
10
  [tool.dkist-dev-tools]
11
11
  # Most recently frozen version by dkist-dev-tools
12
- version = "5.2.0rc1"
13
- date = 2025-12-12T09:52:45.782343
12
+ version = "5.2.2"
13
+ date = 2025-12-17T09:12:25.459200
14
14
 
15
15
  [project]
16
16
  dynamic = ["version"]
@@ -30,7 +30,7 @@ dependencies = [
30
30
  "dkist-processing-math == 2.2.1",
31
31
  "dkist-processing-pac == 3.1.1",
32
32
  "dkist-header-validator == 5.2.1",
33
- "dkist-fits-specifications == 4.17.0",
33
+ "dkist-fits-specifications == 4.19.0",
34
34
  "dkist-service-configuration == 4.1.13",
35
35
  "dkist-spectral-lines == 3.0.0",
36
36
  "solar-wavelength-calibration == 2.0.0",
@@ -116,7 +116,7 @@ frozen = [
116
116
  "Pygments == 2.19.2",
117
117
  "SQLAlchemy == 1.4.54",
118
118
  "SQLAlchemy-JSONField == 1.0.2",
119
- "SQLAlchemy-Utils == 0.42.0",
119
+ "SQLAlchemy-Utils == 0.42.1",
120
120
  "WTForms == 3.2.1",
121
121
  "Werkzeug == 2.2.3",
122
122
  "aioftp == 0.27.2",
@@ -129,16 +129,16 @@ frozen = [
129
129
  "annotated-types == 0.7.0",
130
130
  "anyio == 4.12.0",
131
131
  "apache-airflow == 2.11.0",
132
- "apache-airflow-providers-celery == 3.14.0",
133
- "apache-airflow-providers-common-compat == 1.10.0",
132
+ "apache-airflow-providers-celery == 3.14.1",
133
+ "apache-airflow-providers-common-compat == 1.10.1",
134
134
  "apache-airflow-providers-common-io == 1.7.0",
135
- "apache-airflow-providers-common-sql == 1.30.0",
135
+ "apache-airflow-providers-common-sql == 1.30.1",
136
136
  "apache-airflow-providers-fab == 1.5.3",
137
137
  "apache-airflow-providers-ftp == 3.14.0",
138
- "apache-airflow-providers-http == 5.6.0",
139
- "apache-airflow-providers-imap == 3.10.0",
140
- "apache-airflow-providers-postgres == 6.5.0",
141
- "apache-airflow-providers-smtp == 2.4.0",
138
+ "apache-airflow-providers-http == 5.6.1",
139
+ "apache-airflow-providers-imap == 3.10.1",
140
+ "apache-airflow-providers-postgres == 6.5.1",
141
+ "apache-airflow-providers-smtp == 2.4.1",
142
142
  "apache-airflow-providers-sqlite == 4.2.0",
143
143
  "apispec == 6.9.0",
144
144
  "argcomplete == 3.6.3",
@@ -148,14 +148,14 @@ frozen = [
148
148
  "asgiref == 3.11.0",
149
149
  "asteval == 1.0.7",
150
150
  "astropy == 7.0.2",
151
- "astropy-iers-data == 0.2025.12.8.0.38.44",
151
+ "astropy-iers-data == 0.2025.12.15.0.40.51",
152
152
  "asyncpg == 0.31.0",
153
153
  "attrs == 25.4.0",
154
154
  "babel == 2.17.0",
155
155
  "billiard == 4.2.4",
156
156
  "blinker == 1.9.0",
157
- "boto3 == 1.42.8",
158
- "botocore == 1.42.8",
157
+ "boto3 == 1.42.11",
158
+ "botocore == 1.42.11",
159
159
  "cachelib == 0.13.0",
160
160
  "celery == 5.6.0",
161
161
  "certifi == 2025.11.12",
@@ -182,22 +182,23 @@ frozen = [
182
182
  "dkist-processing-core == 6.0.1",
183
183
  "dkist-processing-math == 2.2.1",
184
184
  "dkist-processing-pac == 3.1.1",
185
- "dkist-processing-visp == 5.2.0rc1",
185
+ "dkist-processing-visp == 5.2.2",
186
186
  "dkist-service-configuration == 4.1.13",
187
187
  "dkist-spectral-lines == 3.0.0",
188
- "dkist_fits_specifications == 4.17.0",
188
+ "dkist_fits_specifications == 4.19.0",
189
189
  "dnspython == 2.8.0",
190
190
  "email-validator == 2.3.0",
191
191
  "exceptiongroup == 1.3.1",
192
192
  "fastjsonschema == 2.21.2",
193
193
  "flower == 2.0.1",
194
- "fonttools == 4.61.0",
194
+ "fonttools == 4.61.1",
195
195
  "frozenlist == 1.8.0",
196
196
  "fsspec == 2025.12.0",
197
197
  "globus-sdk == 4.2.0",
198
198
  "google-re2 == 1.1.20251105",
199
199
  "googleapis-common-protos == 1.72.0",
200
200
  "gqlclient == 1.2.3",
201
+ "greenlet == 3.3.0",
201
202
  "grpcio == 1.76.0",
202
203
  "gunicorn == 23.0.0",
203
204
  "h11 == 0.16.0",
@@ -210,7 +211,7 @@ frozen = [
210
211
  "inflection == 0.5.1",
211
212
  "itsdangerous == 2.2.0",
212
213
  "jmespath == 1.0.1",
213
- "joblib == 1.5.2",
214
+ "joblib == 1.5.3",
214
215
  "jsonschema == 4.25.1",
215
216
  "jsonschema-specifications == 2025.9.1",
216
217
  "jupyter_core == 5.9.1",
@@ -320,13 +321,13 @@ frozen = [
320
321
  "termcolor == 3.2.0",
321
322
  "text-unidecode == 1.3",
322
323
  "threadpoolctl == 3.6.0",
323
- "tifffile == 2025.10.16",
324
- "tornado == 6.5.3",
324
+ "tifffile == 2025.12.12",
325
+ "tornado == 6.5.4",
325
326
  "tqdm == 4.67.1",
326
327
  "traitlets == 5.14.3",
327
328
  "typing-inspection == 0.4.2",
328
329
  "typing_extensions == 4.15.0",
329
- "tzdata == 2025.2",
330
+ "tzdata == 2025.3",
330
331
  "tzlocal == 5.3.1",
331
332
  "uc-micro-py == 1.0.3",
332
333
  "uncertainties == 3.2.3",
@@ -1,2 +0,0 @@
1
- The modification of CRPIX1 and CRPIX2 to account for beam-overlap trimming is now correct for some early (OCP1) ViSP
2
- data that had their WCS axes switched in the headers.
@@ -1 +0,0 @@
1
- Add online documentation page for new WavelengthCalibration task.
@@ -1 +0,0 @@
1
- Add the WavelengthCalibration task, which computes an absolute wavelength solution that is encoded in L1 headers.
@@ -1,2 +0,0 @@
1
- L1 data now have a correct wavelength solution encoded in their headers. See :doc:`here </wavelength_calibration>`
2
- for more information.
@@ -1 +0,0 @@
1
- Update logging lines to print `np.int*` types as plain ints instead of the `__repr__`, which shows the full type.