dkist-processing-visp 4.0.0__tar.gz → 5.2.5__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 (119) hide show
  1. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/CHANGELOG.rst +160 -0
  2. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/PKG-INFO +101 -95
  3. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/README.rst +10 -6
  4. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/SCIENCE_CHANGELOG.rst +29 -0
  5. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/bitbucket-pipelines.yml +1 -0
  6. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/models/constants.py +50 -9
  7. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/models/fits_access.py +5 -1
  8. dkist_processing_visp-5.2.5/dkist_processing_visp/models/metric_code.py +10 -0
  9. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/models/parameters.py +170 -19
  10. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/models/tags.py +11 -0
  11. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/models/task_name.py +2 -0
  12. dkist_processing_visp-5.2.5/dkist_processing_visp/parsers/spectrograph_configuration.py +75 -0
  13. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/parsers/visp_l0_fits_access.py +6 -0
  14. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/tasks/__init__.py +1 -0
  15. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/tasks/geometric.py +122 -9
  16. dkist_processing_visp-5.2.5/dkist_processing_visp/tasks/l1_output_data.py +216 -0
  17. dkist_processing_visp-5.2.5/dkist_processing_visp/tasks/lamp.py +126 -0
  18. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/tasks/parse.py +19 -0
  19. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/tasks/science.py +102 -25
  20. dkist_processing_visp-5.2.5/dkist_processing_visp/tasks/solar.py +961 -0
  21. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/tasks/visp_base.py +1 -0
  22. dkist_processing_visp-5.2.5/dkist_processing_visp/tasks/wavelength_calibration.py +471 -0
  23. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/tasks/write_l1.py +2 -0
  24. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/tests/conftest.py +118 -35
  25. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/tests/header_models.py +91 -24
  26. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/tests/local_trial_workflows/l0_cals_only.py +21 -0
  27. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/tests/local_trial_workflows/l0_polcals_as_science.py +21 -0
  28. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/tests/local_trial_workflows/l0_solar_gain_as_science.py +20 -0
  29. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/tests/local_trial_workflows/l0_to_l1.py +21 -0
  30. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/tests/local_trial_workflows/local_trial_helpers.py +52 -1
  31. dkist_processing_visp-5.2.5/dkist_processing_visp/tests/test_assemble_quality.py +128 -0
  32. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/tests/test_geometric.py +40 -0
  33. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/tests/test_instrument_polarization.py +2 -1
  34. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/tests/test_lamp.py +17 -22
  35. dkist_processing_visp-5.2.5/dkist_processing_visp/tests/test_parameters.py +227 -0
  36. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/tests/test_parse.py +73 -1
  37. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/tests/test_science.py +64 -10
  38. dkist_processing_visp-5.2.5/dkist_processing_visp/tests/test_solar.py +478 -0
  39. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/tests/test_trial_create_quality_report.py +1 -1
  40. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/tests/test_visp_constants.py +35 -6
  41. dkist_processing_visp-5.2.5/dkist_processing_visp/tests/test_wavelength_calibration.py +291 -0
  42. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/tests/test_write_l1.py +0 -2
  43. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/workflows/l0_processing.py +14 -4
  44. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/workflows/trial_workflows.py +13 -3
  45. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp.egg-info/PKG-INFO +101 -95
  46. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp.egg-info/SOURCES.txt +5 -1
  47. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp.egg-info/requires.txt +90 -88
  48. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/docs/conf.py +4 -1
  49. dkist_processing_visp-5.2.5/docs/gain_correction.rst +121 -0
  50. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/docs/index.rst +1 -0
  51. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/docs/polarization_calibration.rst +25 -6
  52. dkist_processing_visp-5.2.5/docs/wavelength_calibration.rst +64 -0
  53. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/pyproject.toml +92 -90
  54. dkist_processing_visp-4.0.0/dkist_processing_visp/tasks/l1_output_data.py +0 -14
  55. dkist_processing_visp-4.0.0/dkist_processing_visp/tasks/lamp.py +0 -167
  56. dkist_processing_visp-4.0.0/dkist_processing_visp/tasks/mixin/line_zones.py +0 -116
  57. dkist_processing_visp-4.0.0/dkist_processing_visp/tasks/solar.py +0 -742
  58. dkist_processing_visp-4.0.0/dkist_processing_visp/tests/test_assemble_quality.py +0 -41
  59. dkist_processing_visp-4.0.0/dkist_processing_visp/tests/test_parameters.py +0 -119
  60. dkist_processing_visp-4.0.0/dkist_processing_visp/tests/test_solar.py +0 -268
  61. dkist_processing_visp-4.0.0/docs/gain_correction.rst +0 -110
  62. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/.gitignore +0 -0
  63. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/.pre-commit-config.yaml +0 -0
  64. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/.readthedocs.yml +0 -0
  65. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/.snyk +0 -0
  66. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/changelog/.gitempty +0 -0
  67. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/__init__.py +0 -0
  68. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/config.py +0 -0
  69. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/fonts/Lato-Regular.ttf +0 -0
  70. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/models/__init__.py +0 -0
  71. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/parsers/__init__.py +0 -0
  72. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/parsers/map_repeats.py +0 -0
  73. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/parsers/modulator_states.py +0 -0
  74. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/parsers/polarimeter_mode.py +0 -0
  75. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/parsers/raster_step.py +0 -0
  76. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/parsers/time.py +0 -0
  77. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/parsers/visp_l1_fits_access.py +0 -0
  78. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/tasks/assemble_movie.py +0 -0
  79. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/tasks/background_light.py +0 -0
  80. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/tasks/dark.py +0 -0
  81. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/tasks/instrument_polarization.py +0 -0
  82. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/tasks/make_movie_frames.py +0 -0
  83. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/tasks/mixin/__init__.py +0 -0
  84. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/tasks/mixin/beam_access.py +0 -0
  85. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/tasks/mixin/corrections.py +0 -0
  86. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/tasks/mixin/downsample.py +0 -0
  87. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/tasks/quality_metrics.py +0 -0
  88. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/tests/README.rst +0 -0
  89. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/tests/__init__.py +0 -0
  90. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/tests/local_trial_workflows/__init__.py +0 -0
  91. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/tests/test_assemble_movie.py +0 -0
  92. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/tests/test_background_light.py +0 -0
  93. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/tests/test_dark.py +0 -0
  94. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/tests/test_downsample.py +0 -0
  95. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/tests/test_fits_access.py +0 -0
  96. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/tests/test_make_movie_frames.py +0 -0
  97. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/tests/test_map_repeats.py +0 -0
  98. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/tests/test_quality.py +0 -0
  99. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/tests/test_workflows.py +0 -0
  100. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/workflows/__init__.py +0 -0
  101. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp/workflows/single_task_workflows.py +0 -0
  102. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp.egg-info/dependency_links.txt +0 -0
  103. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/dkist_processing_visp.egg-info/top_level.txt +0 -0
  104. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/docs/Makefile +0 -0
  105. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/docs/background_light.rst +0 -0
  106. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/docs/changelog.rst +0 -0
  107. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/docs/geometric.rst +0 -0
  108. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/docs/l0_to_l1_visp.rst +0 -0
  109. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/docs/l0_to_l1_visp_full-trial.rst +0 -0
  110. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/docs/landing_page.rst +0 -0
  111. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/docs/make.bat +0 -0
  112. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/docs/requirements.txt +0 -0
  113. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/docs/requirements_table.rst +0 -0
  114. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/docs/science_calibration.rst +0 -0
  115. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/docs/scientific_changelog.rst +0 -0
  116. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/licenses/LICENSE.rst +0 -0
  117. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/science_towncrier.sh +0 -0
  118. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/setup.cfg +0 -0
  119. {dkist_processing_visp-4.0.0 → dkist_processing_visp-5.2.5}/towncrier_science.toml +0 -0
@@ -1,3 +1,163 @@
1
+ v5.2.5 (2026-01-09)
2
+ ===================
3
+
4
+ Misc
5
+ ----
6
+
7
+ - Update dkist-fits-specifications to add `L1_EXTRA` as a valid value for the `PROCTYPE` header key. (`#260 <https://bitbucket.org/dkistdc/dkist-processing-visp/pull-requests/260>`__)
8
+
9
+
10
+ v5.2.4 (2026-01-07)
11
+ ===================
12
+
13
+ Misc
14
+ ----
15
+
16
+ - Update dkist-processing-common to add a new constant for the dark number of raw frames per FPA. (`#259 <https://bitbucket.org/dkistdc/dkist-processing-visp/pull-requests/259>`__)
17
+
18
+
19
+ Documentation
20
+ -------------
21
+
22
+ - Update documentation to reflect that polcal frames are now reduced using the darks and gains taken as part of the polcal sequence. (`#256 <https://bitbucket.org/dkistdc/dkist-processing-visp/pull-requests/256>`__)
23
+
24
+
25
+ v5.2.3 (2025-12-22)
26
+ ===================
27
+
28
+ Misc
29
+ ----
30
+
31
+ - Change the default URL of the solar and telluric atlases for unit tests. (`#258 <https://bitbucket.org/dkistdc/dkist-processing-visp/pull-requests/258>`__)
32
+
33
+ Bugfixes
34
+ --------
35
+
36
+ - Update dkist-processing-common to raise an error when movie files are missing. (`#257 <https://bitbucket.org/dkistdc/dkist-processing-visp/pull-requests/257>`__)
37
+
38
+
39
+ v5.2.2 (2025-12-17)
40
+ ===================
41
+
42
+ Bugfixes
43
+ --------
44
+
45
+ - Normalize atlas and input spectrum when computing an initial CRVAL guess in the `WavelengthCalibration` task. This fixes
46
+ failing fits caused by very poor initial guesses caused by large continuum offsets. (`#255 <https://bitbucket.org/dkistdc/dkist-processing-visp/pull-requests/255>`__)
47
+
48
+
49
+ Misc
50
+ ----
51
+
52
+ - Move the `estimate_relative_continuum_level` method from `SolarCalibration` class to be a module-level function in
53
+ "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>`__)
54
+ - 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>`__)
55
+
56
+
57
+ Documentation
58
+ -------------
59
+
60
+ - 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>`__)
61
+
62
+
63
+ v5.2.1 (2025-12-16)
64
+ ===================
65
+
66
+ Misc
67
+ ----
68
+
69
+ - Update dkist-fits-specifications to enable use of dataset extras schemas. (`#254 <https://bitbucket.org/dkistdc/dkist-processing-visp/pull-requests/254>`__)
70
+
71
+
72
+ v5.2.0 (2025-12-12)
73
+ ===================
74
+
75
+ Features
76
+ --------
77
+
78
+ - 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>`__)
79
+
80
+
81
+ Bugfixes
82
+ --------
83
+
84
+ - The modification of CRPIX1 and CRPIX2 to account for beam-overlap trimming is now correct for some early (OCP1) ViSP
85
+ data that had their WCS axes switched in the headers. (`#234 <https://bitbucket.org/dkistdc/dkist-processing-visp/pull-requests/234>`__)
86
+
87
+
88
+ Misc
89
+ ----
90
+
91
+ - 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>`__)
92
+
93
+
94
+ Documentation
95
+ -------------
96
+
97
+ - Add online documentation page for new WavelengthCalibration task. (`#234 <https://bitbucket.org/dkistdc/dkist-processing-visp/pull-requests/234>`__)
98
+
99
+
100
+ v5.1.2 (2025-12-08)
101
+ ===================
102
+
103
+ Features
104
+ --------
105
+
106
+ - Store quality data in object store and revise the workflow so that VispAssembleQualityData precedes the TransferL1Data task. (`#251 <https://bitbucket.org/dkistdc/dkist-processing-visp/pull-requests/251>`__)
107
+
108
+
109
+ v5.1.1 (2025-12-05)
110
+ ===================
111
+
112
+ Misc
113
+ ----
114
+
115
+ - Update dkist-processing-common to 11.9.0 to take advantage of globus account pools for inbound and outbound transfers. (`#252 <https://bitbucket.org/dkistdc/dkist-processing-visp/pull-requests/252>`__)
116
+
117
+
118
+ v5.1.0 (2025-12-03)
119
+ ===================
120
+
121
+ Misc
122
+ ----
123
+
124
+ - Update workflows to remove `InstrumentPolarizationCalibration`'s dependency on `SolarCalibration`. These two tasks can
125
+ now run in parallel. (`#248 <https://bitbucket.org/dkistdc/dkist-processing-visp/pull-requests/248>`__)
126
+
127
+
128
+ v5.0.0 (2025-12-02)
129
+ ===================
130
+
131
+ Features
132
+ --------
133
+
134
+ - Only compute a single lamp gain for each beam. In the past a single map gain was also computed for each modulation state. (`#246 <https://bitbucket.org/dkistdc/dkist-processing-visp/pull-requests/246>`__)
135
+ - Add quality report metrics that show the quality of the vignette estimation in the Solar Gain tasks. (`#246 <https://bitbucket.org/dkistdc/dkist-processing-visp/pull-requests/246>`__)
136
+ - Update the Solar Gain task to measure vignetting signal, compute a single gain for each beam (as opposed to for each beam and modulator state),
137
+ and stop applying residual spectral shifts to the characteristic spectra before removing from the input gain array.
138
+ See the `Science Changelog <https://docs.dkist.nso.edu/projects/visp/en/stable/scientific_changelog.html>`_ and
139
+ `gain algorithm docs <https://docs.dkist.nso.edu/projects/visp/en/stable/gain_correction.html>`_ for more information. (`#246 <https://bitbucket.org/dkistdc/dkist-processing-visp/pull-requests/246>`__)
140
+ - Add Buds to parse the spectrograph setup into pipeline constants to be used when fitting a solar atlas. (`#246 <https://bitbucket.org/dkistdc/dkist-processing-visp/pull-requests/246>`__)
141
+
142
+
143
+ Misc
144
+ ----
145
+
146
+ - Remove the `LineZonesMixin` and move its methods directly to the Geometric calibration task, which is now the only task that uses them. (`#246 <https://bitbucket.org/dkistdc/dkist-processing-visp/pull-requests/246>`__)
147
+ - Rename the ``solar_spectral_avg_window`` to ``solar_spatial_median_filter_width_px`` to more accurately capture what it does. (`#246 <https://bitbucket.org/dkistdc/dkist-processing-visp/pull-requests/246>`__)
148
+ - Rename all line-zone parameters to be "geo*" parameters instead of "solar*" parameters. These parameters are now only used in the
149
+ Geometric calibration task. (`#246 <https://bitbucket.org/dkistdc/dkist-processing-visp/pull-requests/246>`__)
150
+
151
+
152
+ Documentation
153
+ -------------
154
+
155
+ - Update the online doc page for `gain calibration <https://docs.dkist.nso.edu/projects/visp/en/stable/gain_correction.html>`_
156
+ to reflect the updates to the Solar Gain task. (`#246 <https://bitbucket.org/dkistdc/dkist-processing-visp/pull-requests/246>`__)
157
+ - Add intersphinx mappings for `lmfit <https://lmfit.github.io/lmfit-py/>`_ and `scikit-learn <https://scikit-learn.org/stable/>`_
158
+ for linking bliss. (`#246 <https://bitbucket.org/dkistdc/dkist-processing-visp/pull-requests/246>`__)
159
+
160
+
1
161
  v4.0.0 (2025-11-12)
2
162
  ===================
3
163
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dkist-processing-visp
3
- Version: 4.0.0
3
+ Version: 5.2.5
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
@@ -13,13 +13,14 @@ Classifier: Programming Language :: Python :: 3
13
13
  Classifier: Programming Language :: Python :: 3.12
14
14
  Requires-Python: >=3.12
15
15
  Description-Content-Type: text/x-rst
16
- Requires-Dist: dkist-processing-common==11.8.0
16
+ Requires-Dist: dkist-processing-common==11.9.3
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
21
- Requires-Dist: dkist-service-configuration==4.1.7
20
+ Requires-Dist: dkist-fits-specifications==4.20.0
21
+ Requires-Dist: dkist-service-configuration==4.1.13
22
22
  Requires-Dist: dkist-spectral-lines==3.0.0
23
+ Requires-Dist: solar-wavelength-calibration==2.0.0
23
24
  Requires-Dist: astropy==7.0.2
24
25
  Requires-Dist: numpy==2.2.5
25
26
  Requires-Dist: sunpy==6.1.1
@@ -29,6 +30,7 @@ Requires-Dist: scikit-learn==1.6.1
29
30
  Requires-Dist: peakutils==1.3.5
30
31
  Requires-Dist: Pillow==10.4.0
31
32
  Requires-Dist: moviepy==2.1.2
33
+ Requires-Dist: solar-wavelength-calibration==2.0.0
32
34
  Provides-Extra: test
33
35
  Requires-Dist: pytest; extra == "test"
34
36
  Requires-Dist: pytest-cov; extra == "test"
@@ -43,10 +45,10 @@ Requires-Dist: dkist-processing-visp[asdf]; extra == "test"
43
45
  Requires-Dist: dkist-processing-visp[quality]; extra == "test"
44
46
  Provides-Extra: inventory
45
47
  Requires-Dist: dkist-processing-common[inventory]; extra == "inventory"
46
- Requires-Dist: dkist-inventory==1.11.1; extra == "inventory"
48
+ Requires-Dist: dkist-inventory==1.11.2; extra == "inventory"
47
49
  Provides-Extra: asdf
48
50
  Requires-Dist: dkist-processing-common[asdf]; extra == "asdf"
49
- Requires-Dist: dkist-inventory[asdf]==1.11.1; extra == "asdf"
51
+ Requires-Dist: dkist-inventory[asdf]==1.11.2; extra == "asdf"
50
52
  Provides-Extra: quality
51
53
  Requires-Dist: dkist-quality==2.0.0; extra == "quality"
52
54
  Provides-Extra: grogu
@@ -86,52 +88,52 @@ Requires-Dist: PyYAML==6.0.3; extra == "frozen"
86
88
  Requires-Dist: Pygments==2.19.2; extra == "frozen"
87
89
  Requires-Dist: SQLAlchemy==1.4.54; extra == "frozen"
88
90
  Requires-Dist: SQLAlchemy-JSONField==1.0.2; extra == "frozen"
89
- Requires-Dist: SQLAlchemy-Utils==0.42.0; extra == "frozen"
91
+ Requires-Dist: SQLAlchemy-Utils==0.42.1; extra == "frozen"
90
92
  Requires-Dist: WTForms==3.2.1; extra == "frozen"
91
93
  Requires-Dist: Werkzeug==2.2.3; extra == "frozen"
92
94
  Requires-Dist: aioftp==0.27.2; extra == "frozen"
93
95
  Requires-Dist: aiohappyeyeballs==2.6.1; extra == "frozen"
94
- Requires-Dist: aiohttp==3.13.2; extra == "frozen"
96
+ Requires-Dist: aiohttp==3.13.3; extra == "frozen"
95
97
  Requires-Dist: aiosignal==1.4.0; extra == "frozen"
96
98
  Requires-Dist: aiosmtplib==5.0.0; extra == "frozen"
97
- Requires-Dist: alembic==1.17.1; extra == "frozen"
99
+ Requires-Dist: alembic==1.17.2; extra == "frozen"
98
100
  Requires-Dist: amqp==5.3.1; extra == "frozen"
99
101
  Requires-Dist: annotated-types==0.7.0; extra == "frozen"
100
- Requires-Dist: anyio==4.11.0; extra == "frozen"
102
+ Requires-Dist: anyio==4.12.1; extra == "frozen"
101
103
  Requires-Dist: apache-airflow==2.11.0; extra == "frozen"
102
- Requires-Dist: apache-airflow-providers-celery==3.10.0; extra == "frozen"
103
- Requires-Dist: apache-airflow-providers-common-compat==1.8.0; extra == "frozen"
104
- Requires-Dist: apache-airflow-providers-common-io==1.6.4; extra == "frozen"
105
- Requires-Dist: apache-airflow-providers-common-sql==1.28.2; extra == "frozen"
104
+ Requires-Dist: apache-airflow-providers-celery==3.15.0; extra == "frozen"
105
+ Requires-Dist: apache-airflow-providers-common-compat==1.11.0; extra == "frozen"
106
+ Requires-Dist: apache-airflow-providers-common-io==1.7.0; extra == "frozen"
107
+ Requires-Dist: apache-airflow-providers-common-sql==1.30.2; extra == "frozen"
106
108
  Requires-Dist: apache-airflow-providers-fab==1.5.3; extra == "frozen"
107
- Requires-Dist: apache-airflow-providers-ftp==3.13.2; extra == "frozen"
108
- Requires-Dist: apache-airflow-providers-http==5.4.0; extra == "frozen"
109
- Requires-Dist: apache-airflow-providers-imap==3.9.3; extra == "frozen"
110
- Requires-Dist: apache-airflow-providers-postgres==6.4.0; extra == "frozen"
111
- Requires-Dist: apache-airflow-providers-smtp==2.3.1; extra == "frozen"
112
- Requires-Dist: apache-airflow-providers-sqlite==4.1.2; extra == "frozen"
113
- Requires-Dist: apispec==6.8.4; extra == "frozen"
109
+ Requires-Dist: apache-airflow-providers-ftp==3.14.0; extra == "frozen"
110
+ Requires-Dist: apache-airflow-providers-http==5.6.2; extra == "frozen"
111
+ Requires-Dist: apache-airflow-providers-imap==3.10.2; 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
+ Requires-Dist: apache-airflow-providers-sqlite==4.2.0; extra == "frozen"
115
+ Requires-Dist: apispec==6.9.0; extra == "frozen"
114
116
  Requires-Dist: argcomplete==3.6.3; extra == "frozen"
115
117
  Requires-Dist: asdf==3.5.0; extra == "frozen"
116
118
  Requires-Dist: asdf_standard==1.4.0; extra == "frozen"
117
119
  Requires-Dist: asdf_transform_schemas==0.6.0; extra == "frozen"
118
- Requires-Dist: asgiref==3.10.0; extra == "frozen"
119
- Requires-Dist: asteval==1.0.7; extra == "frozen"
120
+ Requires-Dist: asgiref==3.11.0; extra == "frozen"
121
+ Requires-Dist: asteval==1.0.8; extra == "frozen"
120
122
  Requires-Dist: astropy==7.0.2; extra == "frozen"
121
- Requires-Dist: astropy-iers-data==0.2025.11.10.0.38.31; extra == "frozen"
122
- Requires-Dist: asyncpg==0.30.0; extra == "frozen"
123
+ Requires-Dist: astropy-iers-data==0.2026.1.5.0.43.43; extra == "frozen"
124
+ Requires-Dist: asyncpg==0.31.0; extra == "frozen"
123
125
  Requires-Dist: attrs==25.4.0; extra == "frozen"
124
126
  Requires-Dist: babel==2.17.0; extra == "frozen"
125
- Requires-Dist: billiard==4.2.2; extra == "frozen"
127
+ Requires-Dist: billiard==4.2.4; extra == "frozen"
126
128
  Requires-Dist: blinker==1.9.0; extra == "frozen"
127
- Requires-Dist: boto3==1.40.71; extra == "frozen"
128
- Requires-Dist: botocore==1.40.71; extra == "frozen"
129
+ Requires-Dist: boto3==1.42.24; extra == "frozen"
130
+ Requires-Dist: botocore==1.42.24; extra == "frozen"
129
131
  Requires-Dist: cachelib==0.13.0; extra == "frozen"
130
- Requires-Dist: celery==5.3.1; extra == "frozen"
131
- Requires-Dist: certifi==2025.11.12; extra == "frozen"
132
+ Requires-Dist: celery==5.6.2; extra == "frozen"
133
+ Requires-Dist: certifi==2026.1.4; extra == "frozen"
132
134
  Requires-Dist: cffi==2.0.0; extra == "frozen"
133
135
  Requires-Dist: charset-normalizer==3.4.4; extra == "frozen"
134
- Requires-Dist: click==8.3.0; extra == "frozen"
136
+ Requires-Dist: click==8.3.1; extra == "frozen"
135
137
  Requires-Dist: click-didyoumean==0.3.1; extra == "frozen"
136
138
  Requires-Dist: click-plugins==1.1.1.2; extra == "frozen"
137
139
  Requires-Dist: click-repl==0.3.0; extra == "frozen"
@@ -148,22 +150,22 @@ Requires-Dist: dacite==1.9.2; extra == "frozen"
148
150
  Requires-Dist: decorator==5.2.1; extra == "frozen"
149
151
  Requires-Dist: dill==0.4.0; extra == "frozen"
150
152
  Requires-Dist: dkist-header-validator==5.2.1; extra == "frozen"
151
- Requires-Dist: dkist-processing-common==11.8.0; extra == "frozen"
152
- Requires-Dist: dkist-processing-core==6.0.0; extra == "frozen"
153
+ Requires-Dist: dkist-processing-common==11.9.3; extra == "frozen"
154
+ Requires-Dist: dkist-processing-core==6.0.1; extra == "frozen"
153
155
  Requires-Dist: dkist-processing-math==2.2.1; extra == "frozen"
154
156
  Requires-Dist: dkist-processing-pac==3.1.1; extra == "frozen"
155
- Requires-Dist: dkist-processing-visp==4.0.0; extra == "frozen"
156
- Requires-Dist: dkist-service-configuration==4.1.7; extra == "frozen"
157
+ Requires-Dist: dkist-processing-visp==5.2.5; extra == "frozen"
158
+ Requires-Dist: dkist-service-configuration==4.1.13; extra == "frozen"
157
159
  Requires-Dist: dkist-spectral-lines==3.0.0; extra == "frozen"
158
- Requires-Dist: dkist_fits_specifications==4.17.0; extra == "frozen"
160
+ Requires-Dist: dkist_fits_specifications==4.20.0; extra == "frozen"
159
161
  Requires-Dist: dnspython==2.8.0; extra == "frozen"
160
162
  Requires-Dist: email-validator==2.3.0; extra == "frozen"
161
163
  Requires-Dist: fastjsonschema==2.21.2; extra == "frozen"
162
164
  Requires-Dist: flower==2.0.1; extra == "frozen"
163
- Requires-Dist: fonttools==4.60.1; extra == "frozen"
165
+ Requires-Dist: fonttools==4.61.1; extra == "frozen"
164
166
  Requires-Dist: frozenlist==1.8.0; extra == "frozen"
165
- Requires-Dist: fsspec==2025.10.0; extra == "frozen"
166
- Requires-Dist: globus-sdk==3.65.0; extra == "frozen"
167
+ Requires-Dist: fsspec==2026.1.0; extra == "frozen"
168
+ Requires-Dist: globus-sdk==4.3.0; extra == "frozen"
167
169
  Requires-Dist: google-re2==1.1.20251105; extra == "frozen"
168
170
  Requires-Dist: googleapis-common-protos==1.72.0; extra == "frozen"
169
171
  Requires-Dist: gqlclient==1.2.3; extra == "frozen"
@@ -172,19 +174,19 @@ Requires-Dist: gunicorn==23.0.0; extra == "frozen"
172
174
  Requires-Dist: h11==0.16.0; extra == "frozen"
173
175
  Requires-Dist: httpcore==1.0.9; extra == "frozen"
174
176
  Requires-Dist: httpx==0.28.1; extra == "frozen"
175
- Requires-Dist: humanize==4.14.0; extra == "frozen"
177
+ Requires-Dist: humanize==4.15.0; extra == "frozen"
176
178
  Requires-Dist: idna==3.11; extra == "frozen"
177
179
  Requires-Dist: imageio-ffmpeg==0.6.0; extra == "frozen"
178
- Requires-Dist: importlib_metadata==8.7.0; extra == "frozen"
180
+ Requires-Dist: importlib_metadata==8.7.1; extra == "frozen"
179
181
  Requires-Dist: inflection==0.5.1; extra == "frozen"
180
182
  Requires-Dist: itsdangerous==2.2.0; extra == "frozen"
181
183
  Requires-Dist: jmespath==1.0.1; extra == "frozen"
182
- Requires-Dist: joblib==1.5.2; extra == "frozen"
183
- Requires-Dist: jsonschema==4.25.1; extra == "frozen"
184
+ Requires-Dist: joblib==1.5.3; extra == "frozen"
185
+ Requires-Dist: jsonschema==4.26.0; extra == "frozen"
184
186
  Requires-Dist: jsonschema-specifications==2025.9.1; extra == "frozen"
185
187
  Requires-Dist: jupyter_core==5.9.1; extra == "frozen"
186
188
  Requires-Dist: kiwisolver==1.4.9; extra == "frozen"
187
- Requires-Dist: kombu==5.6.0; extra == "frozen"
189
+ Requires-Dist: kombu==5.6.2; extra == "frozen"
188
190
  Requires-Dist: lazy-object-proxy==1.12.0; extra == "frozen"
189
191
  Requires-Dist: lazy_loader==0.4; extra == "frozen"
190
192
  Requires-Dist: limits==5.6.0; extra == "frozen"
@@ -193,10 +195,10 @@ Requires-Dist: lmfit==1.3.4; extra == "frozen"
193
195
  Requires-Dist: lockfile==0.12.2; extra == "frozen"
194
196
  Requires-Dist: loguru==0.7.3; extra == "frozen"
195
197
  Requires-Dist: markdown-it-py==4.0.0; extra == "frozen"
196
- Requires-Dist: marshmallow==3.26.1; extra == "frozen"
198
+ Requires-Dist: marshmallow==3.26.2; extra == "frozen"
197
199
  Requires-Dist: marshmallow-oneofschema==3.2.0; extra == "frozen"
198
200
  Requires-Dist: marshmallow-sqlalchemy==0.28.2; extra == "frozen"
199
- Requires-Dist: matplotlib==3.10.7; extra == "frozen"
201
+ Requires-Dist: matplotlib==3.10.8; extra == "frozen"
200
202
  Requires-Dist: mdit-py-plugins==0.5.0; extra == "frozen"
201
203
  Requires-Dist: mdurl==0.1.2; extra == "frozen"
202
204
  Requires-Dist: methodtools==0.4.7; extra == "frozen"
@@ -204,44 +206,44 @@ Requires-Dist: more-itertools==10.8.0; extra == "frozen"
204
206
  Requires-Dist: moviepy==2.1.2; extra == "frozen"
205
207
  Requires-Dist: multidict==6.7.0; extra == "frozen"
206
208
  Requires-Dist: nbformat==5.10.4; extra == "frozen"
207
- Requires-Dist: networkx==3.5; extra == "frozen"
209
+ Requires-Dist: networkx==3.6.1; extra == "frozen"
208
210
  Requires-Dist: numpy==2.2.5; extra == "frozen"
209
211
  Requires-Dist: object-clerk==1.0.0; extra == "frozen"
210
- Requires-Dist: opentelemetry-api==1.38.0; extra == "frozen"
211
- Requires-Dist: opentelemetry-exporter-otlp==1.38.0; extra == "frozen"
212
- Requires-Dist: opentelemetry-exporter-otlp-proto-common==1.38.0; extra == "frozen"
213
- Requires-Dist: opentelemetry-exporter-otlp-proto-grpc==1.38.0; extra == "frozen"
214
- Requires-Dist: opentelemetry-exporter-otlp-proto-http==1.38.0; extra == "frozen"
215
- Requires-Dist: opentelemetry-instrumentation==0.59b0; extra == "frozen"
216
- Requires-Dist: opentelemetry-instrumentation-aiohttp-client==0.59b0; extra == "frozen"
217
- Requires-Dist: opentelemetry-instrumentation-asgi==0.59b0; extra == "frozen"
218
- Requires-Dist: opentelemetry-instrumentation-botocore==0.59b0; extra == "frozen"
219
- Requires-Dist: opentelemetry-instrumentation-celery==0.59b0; extra == "frozen"
220
- Requires-Dist: opentelemetry-instrumentation-dbapi==0.59b0; extra == "frozen"
221
- Requires-Dist: opentelemetry-instrumentation-fastapi==0.59b0; extra == "frozen"
222
- Requires-Dist: opentelemetry-instrumentation-pika==0.59b0; extra == "frozen"
223
- Requires-Dist: opentelemetry-instrumentation-psycopg2==0.59b0; extra == "frozen"
224
- Requires-Dist: opentelemetry-instrumentation-pymongo==0.59b0; extra == "frozen"
225
- Requires-Dist: opentelemetry-instrumentation-redis==0.59b0; extra == "frozen"
226
- Requires-Dist: opentelemetry-instrumentation-requests==0.59b0; extra == "frozen"
227
- Requires-Dist: opentelemetry-instrumentation-sqlalchemy==0.59b0; extra == "frozen"
228
- Requires-Dist: opentelemetry-instrumentation-system-metrics==0.59b0; extra == "frozen"
212
+ Requires-Dist: opentelemetry-api==1.39.1; extra == "frozen"
213
+ Requires-Dist: opentelemetry-exporter-otlp==1.39.1; extra == "frozen"
214
+ Requires-Dist: opentelemetry-exporter-otlp-proto-common==1.39.1; extra == "frozen"
215
+ Requires-Dist: opentelemetry-exporter-otlp-proto-grpc==1.39.1; extra == "frozen"
216
+ Requires-Dist: opentelemetry-exporter-otlp-proto-http==1.39.1; extra == "frozen"
217
+ Requires-Dist: opentelemetry-instrumentation==0.60b1; extra == "frozen"
218
+ Requires-Dist: opentelemetry-instrumentation-aiohttp-client==0.60b1; extra == "frozen"
219
+ Requires-Dist: opentelemetry-instrumentation-asgi==0.60b1; extra == "frozen"
220
+ Requires-Dist: opentelemetry-instrumentation-botocore==0.60b1; extra == "frozen"
221
+ Requires-Dist: opentelemetry-instrumentation-celery==0.60b1; extra == "frozen"
222
+ Requires-Dist: opentelemetry-instrumentation-dbapi==0.60b1; extra == "frozen"
223
+ Requires-Dist: opentelemetry-instrumentation-fastapi==0.60b1; extra == "frozen"
224
+ Requires-Dist: opentelemetry-instrumentation-pika==0.60b1; extra == "frozen"
225
+ Requires-Dist: opentelemetry-instrumentation-psycopg2==0.60b1; extra == "frozen"
226
+ Requires-Dist: opentelemetry-instrumentation-pymongo==0.60b1; extra == "frozen"
227
+ Requires-Dist: opentelemetry-instrumentation-redis==0.60b1; extra == "frozen"
228
+ Requires-Dist: opentelemetry-instrumentation-requests==0.60b1; extra == "frozen"
229
+ Requires-Dist: opentelemetry-instrumentation-sqlalchemy==0.60b1; extra == "frozen"
230
+ Requires-Dist: opentelemetry-instrumentation-system-metrics==0.60b1; extra == "frozen"
229
231
  Requires-Dist: opentelemetry-propagator-aws-xray==1.0.2; extra == "frozen"
230
- Requires-Dist: opentelemetry-proto==1.38.0; extra == "frozen"
231
- Requires-Dist: opentelemetry-sdk==1.38.0; extra == "frozen"
232
- Requires-Dist: opentelemetry-semantic-conventions==0.59b0; extra == "frozen"
233
- Requires-Dist: opentelemetry-util-http==0.59b0; extra == "frozen"
232
+ Requires-Dist: opentelemetry-proto==1.39.1; extra == "frozen"
233
+ Requires-Dist: opentelemetry-sdk==1.39.1; extra == "frozen"
234
+ Requires-Dist: opentelemetry-semantic-conventions==0.60b1; extra == "frozen"
235
+ Requires-Dist: opentelemetry-util-http==0.60b1; extra == "frozen"
234
236
  Requires-Dist: ordered-set==4.1.0; extra == "frozen"
235
237
  Requires-Dist: packaging==25.0; extra == "frozen"
236
238
  Requires-Dist: pandas==2.3.3; extra == "frozen"
237
239
  Requires-Dist: parfive==2.2.0; extra == "frozen"
238
240
  Requires-Dist: pathlib_abc==0.5.2; extra == "frozen"
239
- Requires-Dist: pathspec==0.12.1; extra == "frozen"
241
+ Requires-Dist: pathspec==1.0.3; extra == "frozen"
240
242
  Requires-Dist: pendulum==3.1.0; extra == "frozen"
241
243
  Requires-Dist: pika==1.3.2; extra == "frozen"
242
244
  Requires-Dist: pillow==10.4.0; extra == "frozen"
243
245
  Requires-Dist: pip==25.3; extra == "frozen"
244
- Requires-Dist: platformdirs==4.5.0; extra == "frozen"
246
+ Requires-Dist: platformdirs==4.5.1; extra == "frozen"
245
247
  Requires-Dist: pluggy==1.6.0; extra == "frozen"
246
248
  Requires-Dist: pooch==1.8.2; extra == "frozen"
247
249
  Requires-Dist: prison==0.2.1; extra == "frozen"
@@ -249,15 +251,15 @@ Requires-Dist: proglog==0.1.12; extra == "frozen"
249
251
  Requires-Dist: prometheus_client==0.23.1; extra == "frozen"
250
252
  Requires-Dist: prompt_toolkit==3.0.52; extra == "frozen"
251
253
  Requires-Dist: propcache==0.4.1; extra == "frozen"
252
- Requires-Dist: protobuf==6.33.0; extra == "frozen"
253
- Requires-Dist: psutil==7.1.3; extra == "frozen"
254
+ Requires-Dist: protobuf==6.33.2; extra == "frozen"
255
+ Requires-Dist: psutil==7.2.1; extra == "frozen"
254
256
  Requires-Dist: psycopg2-binary==2.9.11; extra == "frozen"
255
257
  Requires-Dist: pycparser==2.23; extra == "frozen"
256
- Requires-Dist: pydantic==2.12.4; extra == "frozen"
258
+ Requires-Dist: pydantic==2.12.5; extra == "frozen"
257
259
  Requires-Dist: pydantic-settings==2.12.0; extra == "frozen"
258
260
  Requires-Dist: pydantic_core==2.41.5; extra == "frozen"
259
261
  Requires-Dist: pyerfa==2.0.1.5; extra == "frozen"
260
- Requires-Dist: pyparsing==3.2.5; extra == "frozen"
262
+ Requires-Dist: pyparsing==3.3.1; extra == "frozen"
261
263
  Requires-Dist: python-daemon==3.1.2; extra == "frozen"
262
264
  Requires-Dist: python-dateutil==2.9.0.post0; extra == "frozen"
263
265
  Requires-Dist: python-dotenv==1.2.1; extra == "frozen"
@@ -271,42 +273,42 @@ Requires-Dist: requests-toolbelt==1.0.0; extra == "frozen"
271
273
  Requires-Dist: rfc3339-validator==0.1.4; extra == "frozen"
272
274
  Requires-Dist: rich==13.9.4; extra == "frozen"
273
275
  Requires-Dist: rich-argparse==1.7.2; extra == "frozen"
274
- Requires-Dist: rpds-py==0.28.0; extra == "frozen"
275
- Requires-Dist: s3transfer==0.14.0; extra == "frozen"
276
+ Requires-Dist: rpds-py==0.30.0; extra == "frozen"
277
+ Requires-Dist: s3transfer==0.16.0; extra == "frozen"
276
278
  Requires-Dist: scikit-image==0.25.2; extra == "frozen"
277
279
  Requires-Dist: scikit-learn==1.6.1; extra == "frozen"
278
280
  Requires-Dist: scipy==1.15.3; extra == "frozen"
279
281
  Requires-Dist: semantic-version==2.10.0; extra == "frozen"
280
282
  Requires-Dist: setproctitle==1.3.7; extra == "frozen"
281
283
  Requires-Dist: six==1.17.0; extra == "frozen"
282
- Requires-Dist: sniffio==1.3.1; extra == "frozen"
283
- Requires-Dist: solar-wavelength-calibration==1.0.1; extra == "frozen"
284
+ Requires-Dist: solar-wavelength-calibration==2.0.0; extra == "frozen"
284
285
  Requires-Dist: sqids==0.5.1; extra == "frozen"
285
- Requires-Dist: sqlparse==0.5.3; extra == "frozen"
286
+ Requires-Dist: sqlparse==0.5.5; extra == "frozen"
286
287
  Requires-Dist: sunpy==6.1.1; extra == "frozen"
287
288
  Requires-Dist: tabulate==0.9.0; extra == "frozen"
288
289
  Requires-Dist: talus==1.3.4; extra == "frozen"
289
290
  Requires-Dist: tenacity==8.5.0; extra == "frozen"
290
- Requires-Dist: termcolor==3.2.0; extra == "frozen"
291
+ Requires-Dist: termcolor==3.3.0; extra == "frozen"
291
292
  Requires-Dist: text-unidecode==1.3; extra == "frozen"
292
293
  Requires-Dist: threadpoolctl==3.6.0; extra == "frozen"
293
- Requires-Dist: tifffile==2025.10.16; extra == "frozen"
294
- Requires-Dist: tornado==6.5.2; extra == "frozen"
294
+ Requires-Dist: tifffile==2025.12.20; extra == "frozen"
295
+ Requires-Dist: tornado==6.5.4; extra == "frozen"
295
296
  Requires-Dist: tqdm==4.67.1; extra == "frozen"
296
297
  Requires-Dist: traitlets==5.14.3; extra == "frozen"
297
298
  Requires-Dist: typing-inspection==0.4.2; extra == "frozen"
298
299
  Requires-Dist: typing_extensions==4.15.0; extra == "frozen"
299
- Requires-Dist: tzdata==2025.2; extra == "frozen"
300
+ Requires-Dist: tzdata==2025.3; extra == "frozen"
301
+ Requires-Dist: tzlocal==5.3.1; extra == "frozen"
300
302
  Requires-Dist: uc-micro-py==1.0.3; extra == "frozen"
301
303
  Requires-Dist: uncertainties==3.2.3; extra == "frozen"
302
- Requires-Dist: universal_pathlib==0.3.5; extra == "frozen"
303
- Requires-Dist: urllib3==2.5.0; extra == "frozen"
304
+ Requires-Dist: universal_pathlib==0.3.7; extra == "frozen"
305
+ Requires-Dist: urllib3==2.6.3; extra == "frozen"
304
306
  Requires-Dist: vine==5.1.0; extra == "frozen"
305
- Requires-Dist: voluptuous==0.15.2; extra == "frozen"
307
+ Requires-Dist: voluptuous==0.16.0; extra == "frozen"
306
308
  Requires-Dist: wcwidth==0.2.14; extra == "frozen"
307
309
  Requires-Dist: wirerope==1.0.0; extra == "frozen"
308
310
  Requires-Dist: wrapt==1.17.3; extra == "frozen"
309
- Requires-Dist: yamale==6.0.0; extra == "frozen"
311
+ Requires-Dist: yamale==6.1.0; extra == "frozen"
310
312
  Requires-Dist: yarl==1.22.0; extra == "frozen"
311
313
  Requires-Dist: zipp==3.23.0; extra == "frozen"
312
314
 
@@ -345,6 +347,10 @@ Environment Variables
345
347
  - annotation=str required=False default='unknown-service-version' alias_priority=2 validation_alias='DKIST_SERVICE_VERSION' description='Service version for OpenTelemetry'
346
348
  * - NOMAD_ALLOC_ID
347
349
  - annotation=str required=False default='unknown-allocation-id' alias_priority=2 validation_alias='NOMAD_ALLOC_ID' description='Nomad allocation ID for OpenTelemetry'
350
+ * - NOMAD_ALLOC_NAME
351
+ - annotation=str required=False default='unknown-allocation-name' alias='NOMAD_ALLOC_NAME' alias_priority=2 description='Allocation name for the deployed container the task is running on.'
352
+ * - NOMAD_GROUP_NAME
353
+ - annotation=str required=False default='unknown-allocation-group' alias='NOMAD_GROUP_NAME' alias_priority=2 description='Allocation group for the deployed container the task is running on'
348
354
  * - OTEL_EXPORTER_OTLP_TRACES_INSECURE
349
355
  - annotation=bool required=False default=True description='Use insecure connection for OTLP traces'
350
356
  * - OTEL_EXPORTER_OTLP_METRICS_INSECURE
@@ -385,12 +391,12 @@ Environment Variables
385
391
  - annotation=Union[dict, NoneType] required=False default=None description='S3 upload configuration for the object store.'
386
392
  * - S3_DOWNLOAD_CONFIG
387
393
  - annotation=Union[dict, NoneType] required=False default=None description='S3 download configuration for the object store.'
388
- * - GLOBUS_TRANSPORT_PARAMS
389
- - annotation=dict required=False default_factory=dict description='Globus transfer parameters.'
390
- * - GLOBUS_CLIENT_ID
391
- - annotation=Union[str, NoneType] required=False default=None description='Globus client ID for inbound/outbound transfers.'
392
- * - GLOBUS_CLIENT_SECRET
393
- - annotation=Union[str, NoneType] required=False default=None description='Globus client secret for inbound/outbound transfers.'
394
+ * - GLOBUS_MAX_RETRIES
395
+ - annotation=int required=False default=5 description='Max retries for transient errors on calls to the globus api.'
396
+ * - GLOBUS_INBOUND_CLIENT_CREDENTIALS
397
+ - annotation=list[GlobusClientCredential] required=False default_factory=list description='Globus client credentials for inbound transfers.' examples=[[{'client_id': 'id1', 'client_secret': 'secret1'}, {'client_id': 'id2', 'client_secret': 'secret2'}]]
398
+ * - GLOBUS_OUTBOUND_CLIENT_CREDENTIALS
399
+ - annotation=list[GlobusClientCredential] required=False default_factory=list description='Globus client credentials for outbound transfers.' examples=[[{'client_id': 'id3', 'client_secret': 'secret3'}, {'client_id': 'id4', 'client_secret': 'secret4'}]]
394
400
  * - OBJECT_STORE_ENDPOINT
395
401
  - annotation=Union[str, NoneType] required=False default=None description='Object store Globus Endpoint ID.'
396
402
  * - SCRATCH_ENDPOINT
@@ -33,6 +33,10 @@ Environment Variables
33
33
  - annotation=str required=False default='unknown-service-version' alias_priority=2 validation_alias='DKIST_SERVICE_VERSION' description='Service version for OpenTelemetry'
34
34
  * - NOMAD_ALLOC_ID
35
35
  - annotation=str required=False default='unknown-allocation-id' alias_priority=2 validation_alias='NOMAD_ALLOC_ID' description='Nomad allocation ID for OpenTelemetry'
36
+ * - NOMAD_ALLOC_NAME
37
+ - annotation=str required=False default='unknown-allocation-name' alias='NOMAD_ALLOC_NAME' alias_priority=2 description='Allocation name for the deployed container the task is running on.'
38
+ * - NOMAD_GROUP_NAME
39
+ - annotation=str required=False default='unknown-allocation-group' alias='NOMAD_GROUP_NAME' alias_priority=2 description='Allocation group for the deployed container the task is running on'
36
40
  * - OTEL_EXPORTER_OTLP_TRACES_INSECURE
37
41
  - annotation=bool required=False default=True description='Use insecure connection for OTLP traces'
38
42
  * - OTEL_EXPORTER_OTLP_METRICS_INSECURE
@@ -73,12 +77,12 @@ Environment Variables
73
77
  - annotation=Union[dict, NoneType] required=False default=None description='S3 upload configuration for the object store.'
74
78
  * - S3_DOWNLOAD_CONFIG
75
79
  - annotation=Union[dict, NoneType] required=False default=None description='S3 download configuration for the object store.'
76
- * - GLOBUS_TRANSPORT_PARAMS
77
- - annotation=dict required=False default_factory=dict description='Globus transfer parameters.'
78
- * - GLOBUS_CLIENT_ID
79
- - annotation=Union[str, NoneType] required=False default=None description='Globus client ID for inbound/outbound transfers.'
80
- * - GLOBUS_CLIENT_SECRET
81
- - annotation=Union[str, NoneType] required=False default=None description='Globus client secret for inbound/outbound transfers.'
80
+ * - GLOBUS_MAX_RETRIES
81
+ - annotation=int required=False default=5 description='Max retries for transient errors on calls to the globus api.'
82
+ * - GLOBUS_INBOUND_CLIENT_CREDENTIALS
83
+ - annotation=list[GlobusClientCredential] required=False default_factory=list description='Globus client credentials for inbound transfers.' examples=[[{'client_id': 'id1', 'client_secret': 'secret1'}, {'client_id': 'id2', 'client_secret': 'secret2'}]]
84
+ * - GLOBUS_OUTBOUND_CLIENT_CREDENTIALS
85
+ - annotation=list[GlobusClientCredential] required=False default_factory=list description='Globus client credentials for outbound transfers.' examples=[[{'client_id': 'id3', 'client_secret': 'secret3'}, {'client_id': 'id4', 'client_secret': 'secret4'}]]
82
86
  * - OBJECT_STORE_ENDPOINT
83
87
  - annotation=Union[str, NoneType] required=False default=None description='Object store Globus Endpoint ID.'
84
88
  * - SCRATCH_ENDPOINT
@@ -1,3 +1,32 @@
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
+
11
+ v5.0.0 (2025-12-02)
12
+ ===================
13
+
14
+
15
+
16
+
17
+ - Major update to the gain algorithm to mitigate polarization artifacts in L1 science frames. This change can be split into
18
+ three parts. See the `gain correction <https://docs.dkist.nso.edu/projects/visp/en/stable/gain_correction.html>`_ page for more information.
19
+
20
+ #. Compute a single gain correction image for each beam. In the past we had computed a separate gain image for each modstate as well, but this was found to couple residual polarization structure into the final science frames.
21
+
22
+ #. Stop "refining" (i.e., applying small spectral offsets to) the characteristic solar spectrum on a per-spatial-pixel basis. This was initially done to minimize line residuals in Telluric lines but was found to have a more-negative on polarimetric residuals.
23
+
24
+ #. Separate vignetting caused by aperture masks from the solar signal used to remove spectral lines in the final gain image. This is done by fitting a solar atlas and taking the deviation in continuum to be the vignetting signal.
25
+
26
+ Computing a single gain per beam will greatly reduce the polarization artifacts in L1 data. Measuring the vignette
27
+ signal directly will further reduce these artifacts and improve flatness across the array. (`#246 <https://bitbucket.org/dkistdc/dkist-processing-visp/pull-requests/246>`__)
28
+
29
+
1
30
  v4.0.0 (2025-11-12)
2
31
  ===================
3
32
 
@@ -42,6 +42,7 @@ definitions:
42
42
  caches:
43
43
  - pip
44
44
  name: Test
45
+ size: 2x
45
46
  script:
46
47
  - pip install -U pip wheel build setuptools_scm setuptools
47
48
  - pip install .[test]