dkist-processing-visp 5.0.0rc3__tar.gz → 5.1.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/CHANGELOG.rst +52 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/PKG-INFO +74 -70
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/README.rst +10 -6
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/SCIENCE_CHANGELOG.rst +19 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/bitbucket-pipelines.yml +1 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/models/parameters.py +11 -1
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tasks/geometric.py +6 -1
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tasks/solar.py +1 -9
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tests/test_parameters.py +49 -1
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tests/test_solar.py +3 -14
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/workflows/l0_processing.py +7 -2
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/workflows/trial_workflows.py +7 -2
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp.egg-info/PKG-INFO +74 -70
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp.egg-info/SOURCES.txt +0 -10
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp.egg-info/requires.txt +63 -63
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/pyproject.toml +65 -65
- dkist_processing_visp-5.0.0rc3/changelog/246.doc.2.rst +0 -2
- dkist_processing_visp-5.0.0rc3/changelog/246.doc.rst +0 -2
- dkist_processing_visp-5.0.0rc3/changelog/246.feature.2.rst +0 -1
- dkist_processing_visp-5.0.0rc3/changelog/246.feature.3.rst +0 -1
- dkist_processing_visp-5.0.0rc3/changelog/246.feature.4.rst +0 -1
- dkist_processing_visp-5.0.0rc3/changelog/246.feature.rst +0 -4
- dkist_processing_visp-5.0.0rc3/changelog/246.misc.2.rst +0 -1
- dkist_processing_visp-5.0.0rc3/changelog/246.misc.3.rst +0 -1
- dkist_processing_visp-5.0.0rc3/changelog/246.misc.rst +0 -2
- dkist_processing_visp-5.0.0rc3/changelog/246.science.rst +0 -11
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/.gitignore +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/.pre-commit-config.yaml +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/.readthedocs.yml +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/.snyk +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/changelog/.gitempty +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/__init__.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/config.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/fonts/Lato-Regular.ttf +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/models/__init__.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/models/constants.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/models/fits_access.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/models/metric_code.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/models/tags.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/models/task_name.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/parsers/__init__.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/parsers/map_repeats.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/parsers/modulator_states.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/parsers/polarimeter_mode.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/parsers/raster_step.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/parsers/spectrograph_configuration.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/parsers/time.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/parsers/visp_l0_fits_access.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/parsers/visp_l1_fits_access.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tasks/__init__.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tasks/assemble_movie.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tasks/background_light.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tasks/dark.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tasks/instrument_polarization.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tasks/l1_output_data.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tasks/lamp.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tasks/make_movie_frames.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tasks/mixin/__init__.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tasks/mixin/beam_access.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tasks/mixin/corrections.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tasks/mixin/downsample.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tasks/parse.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tasks/quality_metrics.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tasks/science.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tasks/visp_base.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tasks/write_l1.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tests/README.rst +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tests/__init__.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tests/conftest.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tests/header_models.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tests/local_trial_workflows/__init__.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tests/local_trial_workflows/l0_cals_only.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tests/local_trial_workflows/l0_polcals_as_science.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tests/local_trial_workflows/l0_solar_gain_as_science.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tests/local_trial_workflows/l0_to_l1.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tests/local_trial_workflows/local_trial_helpers.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tests/test_assemble_movie.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tests/test_assemble_quality.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tests/test_background_light.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tests/test_dark.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tests/test_downsample.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tests/test_fits_access.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tests/test_geometric.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tests/test_instrument_polarization.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tests/test_lamp.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tests/test_make_movie_frames.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tests/test_map_repeats.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tests/test_parse.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tests/test_quality.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tests/test_science.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tests/test_trial_create_quality_report.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tests/test_visp_constants.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tests/test_workflows.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tests/test_write_l1.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/workflows/__init__.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/workflows/single_task_workflows.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp.egg-info/dependency_links.txt +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp.egg-info/top_level.txt +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/docs/Makefile +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/docs/background_light.rst +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/docs/changelog.rst +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/docs/conf.py +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/docs/gain_correction.rst +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/docs/geometric.rst +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/docs/index.rst +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/docs/l0_to_l1_visp.rst +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/docs/l0_to_l1_visp_full-trial.rst +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/docs/landing_page.rst +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/docs/make.bat +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/docs/polarization_calibration.rst +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/docs/requirements.txt +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/docs/requirements_table.rst +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/docs/science_calibration.rst +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/docs/scientific_changelog.rst +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/licenses/LICENSE.rst +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/science_towncrier.sh +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/setup.cfg +0 -0
- {dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/towncrier_science.toml +0 -0
|
@@ -1,3 +1,55 @@
|
|
|
1
|
+
v5.1.1 (2025-12-05)
|
|
2
|
+
===================
|
|
3
|
+
|
|
4
|
+
Misc
|
|
5
|
+
----
|
|
6
|
+
|
|
7
|
+
- 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>`__)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
v5.1.0 (2025-12-03)
|
|
11
|
+
===================
|
|
12
|
+
|
|
13
|
+
Misc
|
|
14
|
+
----
|
|
15
|
+
|
|
16
|
+
- Update workflows to remove `InstrumentPolarizationCalibration`'s dependency on `SolarCalibration`. These two tasks can
|
|
17
|
+
now run in parallel. (`#248 <https://bitbucket.org/dkistdc/dkist-processing-visp/pull-requests/248>`__)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
v5.0.0 (2025-12-02)
|
|
21
|
+
===================
|
|
22
|
+
|
|
23
|
+
Features
|
|
24
|
+
--------
|
|
25
|
+
|
|
26
|
+
- 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>`__)
|
|
27
|
+
- 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>`__)
|
|
28
|
+
- 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),
|
|
29
|
+
and stop applying residual spectral shifts to the characteristic spectra before removing from the input gain array.
|
|
30
|
+
See the `Science Changelog <https://docs.dkist.nso.edu/projects/visp/en/stable/scientific_changelog.html>`_ and
|
|
31
|
+
`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>`__)
|
|
32
|
+
- 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>`__)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
Misc
|
|
36
|
+
----
|
|
37
|
+
|
|
38
|
+
- 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>`__)
|
|
39
|
+
- 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>`__)
|
|
40
|
+
- Rename all line-zone parameters to be "geo*" parameters instead of "solar*" parameters. These parameters are now only used in the
|
|
41
|
+
Geometric calibration task. (`#246 <https://bitbucket.org/dkistdc/dkist-processing-visp/pull-requests/246>`__)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
Documentation
|
|
45
|
+
-------------
|
|
46
|
+
|
|
47
|
+
- Update the online doc page for `gain calibration <https://docs.dkist.nso.edu/projects/visp/en/stable/gain_correction.html>`_
|
|
48
|
+
to reflect the updates to the Solar Gain task. (`#246 <https://bitbucket.org/dkistdc/dkist-processing-visp/pull-requests/246>`__)
|
|
49
|
+
- Add intersphinx mappings for `lmfit <https://lmfit.github.io/lmfit-py/>`_ and `scikit-learn <https://scikit-learn.org/stable/>`_
|
|
50
|
+
for linking bliss. (`#246 <https://bitbucket.org/dkistdc/dkist-processing-visp/pull-requests/246>`__)
|
|
51
|
+
|
|
52
|
+
|
|
1
53
|
v4.0.0 (2025-11-12)
|
|
2
54
|
===================
|
|
3
55
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dkist-processing-visp
|
|
3
|
-
Version: 5.
|
|
3
|
+
Version: 5.1.1
|
|
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,14 +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.
|
|
16
|
+
Requires-Dist: dkist-processing-common==11.9.0
|
|
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
20
|
Requires-Dist: dkist-fits-specifications==4.17.0
|
|
21
|
-
Requires-Dist: dkist-service-configuration==4.1.
|
|
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.
|
|
23
|
+
Requires-Dist: solar-wavelength-calibration==2.0.0
|
|
24
24
|
Requires-Dist: astropy==7.0.2
|
|
25
25
|
Requires-Dist: numpy==2.2.5
|
|
26
26
|
Requires-Dist: sunpy==6.1.1
|
|
@@ -98,20 +98,20 @@ Requires-Dist: aiosmtplib==5.0.0; extra == "frozen"
|
|
|
98
98
|
Requires-Dist: alembic==1.17.2; extra == "frozen"
|
|
99
99
|
Requires-Dist: amqp==5.3.1; extra == "frozen"
|
|
100
100
|
Requires-Dist: annotated-types==0.7.0; extra == "frozen"
|
|
101
|
-
Requires-Dist: anyio==4.
|
|
101
|
+
Requires-Dist: anyio==4.12.0; extra == "frozen"
|
|
102
102
|
Requires-Dist: apache-airflow==2.11.0; extra == "frozen"
|
|
103
|
-
Requires-Dist: apache-airflow-providers-celery==3.
|
|
104
|
-
Requires-Dist: apache-airflow-providers-common-compat==1.
|
|
105
|
-
Requires-Dist: apache-airflow-providers-common-io==1.
|
|
106
|
-
Requires-Dist: apache-airflow-providers-common-sql==1.
|
|
103
|
+
Requires-Dist: apache-airflow-providers-celery==3.14.0; extra == "frozen"
|
|
104
|
+
Requires-Dist: apache-airflow-providers-common-compat==1.10.0; extra == "frozen"
|
|
105
|
+
Requires-Dist: apache-airflow-providers-common-io==1.7.0; extra == "frozen"
|
|
106
|
+
Requires-Dist: apache-airflow-providers-common-sql==1.30.0; extra == "frozen"
|
|
107
107
|
Requires-Dist: apache-airflow-providers-fab==1.5.3; extra == "frozen"
|
|
108
|
-
Requires-Dist: apache-airflow-providers-ftp==3.
|
|
109
|
-
Requires-Dist: apache-airflow-providers-http==5.
|
|
110
|
-
Requires-Dist: apache-airflow-providers-imap==3.
|
|
111
|
-
Requires-Dist: apache-airflow-providers-postgres==6.
|
|
112
|
-
Requires-Dist: apache-airflow-providers-smtp==2.
|
|
113
|
-
Requires-Dist: apache-airflow-providers-sqlite==4.
|
|
114
|
-
Requires-Dist: apispec==6.
|
|
108
|
+
Requires-Dist: apache-airflow-providers-ftp==3.14.0; extra == "frozen"
|
|
109
|
+
Requires-Dist: apache-airflow-providers-http==5.6.0; extra == "frozen"
|
|
110
|
+
Requires-Dist: apache-airflow-providers-imap==3.10.0; extra == "frozen"
|
|
111
|
+
Requires-Dist: apache-airflow-providers-postgres==6.5.0; extra == "frozen"
|
|
112
|
+
Requires-Dist: apache-airflow-providers-smtp==2.4.0; extra == "frozen"
|
|
113
|
+
Requires-Dist: apache-airflow-providers-sqlite==4.2.0; extra == "frozen"
|
|
114
|
+
Requires-Dist: apispec==6.9.0; extra == "frozen"
|
|
115
115
|
Requires-Dist: argcomplete==3.6.3; extra == "frozen"
|
|
116
116
|
Requires-Dist: asdf==3.5.0; extra == "frozen"
|
|
117
117
|
Requires-Dist: asdf_standard==1.4.0; extra == "frozen"
|
|
@@ -119,16 +119,16 @@ Requires-Dist: asdf_transform_schemas==0.6.0; extra == "frozen"
|
|
|
119
119
|
Requires-Dist: asgiref==3.11.0; extra == "frozen"
|
|
120
120
|
Requires-Dist: asteval==1.0.7; extra == "frozen"
|
|
121
121
|
Requires-Dist: astropy==7.0.2; extra == "frozen"
|
|
122
|
-
Requires-Dist: astropy-iers-data==0.2025.
|
|
123
|
-
Requires-Dist: asyncpg==0.
|
|
122
|
+
Requires-Dist: astropy-iers-data==0.2025.12.1.0.45.12; extra == "frozen"
|
|
123
|
+
Requires-Dist: asyncpg==0.31.0; extra == "frozen"
|
|
124
124
|
Requires-Dist: attrs==25.4.0; extra == "frozen"
|
|
125
125
|
Requires-Dist: babel==2.17.0; extra == "frozen"
|
|
126
|
-
Requires-Dist: billiard==4.2.
|
|
126
|
+
Requires-Dist: billiard==4.2.4; extra == "frozen"
|
|
127
127
|
Requires-Dist: blinker==1.9.0; extra == "frozen"
|
|
128
|
-
Requires-Dist: boto3==1.
|
|
129
|
-
Requires-Dist: botocore==1.
|
|
128
|
+
Requires-Dist: boto3==1.42.3; extra == "frozen"
|
|
129
|
+
Requires-Dist: botocore==1.42.3; extra == "frozen"
|
|
130
130
|
Requires-Dist: cachelib==0.13.0; extra == "frozen"
|
|
131
|
-
Requires-Dist: celery==5.
|
|
131
|
+
Requires-Dist: celery==5.6.0; extra == "frozen"
|
|
132
132
|
Requires-Dist: certifi==2025.11.12; extra == "frozen"
|
|
133
133
|
Requires-Dist: cffi==2.0.0; extra == "frozen"
|
|
134
134
|
Requires-Dist: charset-normalizer==3.4.4; extra == "frozen"
|
|
@@ -149,26 +149,26 @@ Requires-Dist: dacite==1.9.2; extra == "frozen"
|
|
|
149
149
|
Requires-Dist: decorator==5.2.1; extra == "frozen"
|
|
150
150
|
Requires-Dist: dill==0.4.0; extra == "frozen"
|
|
151
151
|
Requires-Dist: dkist-header-validator==5.2.1; extra == "frozen"
|
|
152
|
-
Requires-Dist: dkist-processing-common==11.
|
|
153
|
-
Requires-Dist: dkist-processing-core==6.0.
|
|
152
|
+
Requires-Dist: dkist-processing-common==11.9.0; extra == "frozen"
|
|
153
|
+
Requires-Dist: dkist-processing-core==6.0.1; extra == "frozen"
|
|
154
154
|
Requires-Dist: dkist-processing-math==2.2.1; extra == "frozen"
|
|
155
155
|
Requires-Dist: dkist-processing-pac==3.1.1; extra == "frozen"
|
|
156
|
-
Requires-Dist: dkist-processing-visp==5.
|
|
157
|
-
Requires-Dist: dkist-service-configuration==4.1.
|
|
156
|
+
Requires-Dist: dkist-processing-visp==5.1.1; extra == "frozen"
|
|
157
|
+
Requires-Dist: dkist-service-configuration==4.1.13; extra == "frozen"
|
|
158
158
|
Requires-Dist: dkist-spectral-lines==3.0.0; extra == "frozen"
|
|
159
159
|
Requires-Dist: dkist_fits_specifications==4.17.0; extra == "frozen"
|
|
160
160
|
Requires-Dist: dnspython==2.8.0; extra == "frozen"
|
|
161
161
|
Requires-Dist: email-validator==2.3.0; extra == "frozen"
|
|
162
|
+
Requires-Dist: exceptiongroup==1.3.1; extra == "frozen"
|
|
162
163
|
Requires-Dist: fastjsonschema==2.21.2; extra == "frozen"
|
|
163
164
|
Requires-Dist: flower==2.0.1; extra == "frozen"
|
|
164
|
-
Requires-Dist: fonttools==4.
|
|
165
|
+
Requires-Dist: fonttools==4.61.0; extra == "frozen"
|
|
165
166
|
Requires-Dist: frozenlist==1.8.0; extra == "frozen"
|
|
166
|
-
Requires-Dist: fsspec==2025.
|
|
167
|
-
Requires-Dist: globus-sdk==
|
|
167
|
+
Requires-Dist: fsspec==2025.12.0; extra == "frozen"
|
|
168
|
+
Requires-Dist: globus-sdk==4.2.0; extra == "frozen"
|
|
168
169
|
Requires-Dist: google-re2==1.1.20251105; extra == "frozen"
|
|
169
170
|
Requires-Dist: googleapis-common-protos==1.72.0; extra == "frozen"
|
|
170
171
|
Requires-Dist: gqlclient==1.2.3; extra == "frozen"
|
|
171
|
-
Requires-Dist: greenlet==3.2.4; extra == "frozen"
|
|
172
172
|
Requires-Dist: grpcio==1.76.0; extra == "frozen"
|
|
173
173
|
Requires-Dist: gunicorn==23.0.0; extra == "frozen"
|
|
174
174
|
Requires-Dist: h11==0.16.0; extra == "frozen"
|
|
@@ -186,7 +186,7 @@ Requires-Dist: jsonschema==4.25.1; extra == "frozen"
|
|
|
186
186
|
Requires-Dist: jsonschema-specifications==2025.9.1; extra == "frozen"
|
|
187
187
|
Requires-Dist: jupyter_core==5.9.1; extra == "frozen"
|
|
188
188
|
Requires-Dist: kiwisolver==1.4.9; extra == "frozen"
|
|
189
|
-
Requires-Dist: kombu==5.6.
|
|
189
|
+
Requires-Dist: kombu==5.6.1; extra == "frozen"
|
|
190
190
|
Requires-Dist: lazy-object-proxy==1.12.0; extra == "frozen"
|
|
191
191
|
Requires-Dist: lazy_loader==0.4; extra == "frozen"
|
|
192
192
|
Requires-Dist: limits==5.6.0; extra == "frozen"
|
|
@@ -206,33 +206,33 @@ Requires-Dist: more-itertools==10.8.0; extra == "frozen"
|
|
|
206
206
|
Requires-Dist: moviepy==2.1.2; extra == "frozen"
|
|
207
207
|
Requires-Dist: multidict==6.7.0; extra == "frozen"
|
|
208
208
|
Requires-Dist: nbformat==5.10.4; extra == "frozen"
|
|
209
|
-
Requires-Dist: networkx==3.
|
|
209
|
+
Requires-Dist: networkx==3.6; extra == "frozen"
|
|
210
210
|
Requires-Dist: numpy==2.2.5; extra == "frozen"
|
|
211
211
|
Requires-Dist: object-clerk==1.0.0; extra == "frozen"
|
|
212
|
-
Requires-Dist: opentelemetry-api==1.
|
|
213
|
-
Requires-Dist: opentelemetry-exporter-otlp==1.
|
|
214
|
-
Requires-Dist: opentelemetry-exporter-otlp-proto-common==1.
|
|
215
|
-
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc==1.
|
|
216
|
-
Requires-Dist: opentelemetry-exporter-otlp-proto-http==1.
|
|
217
|
-
Requires-Dist: opentelemetry-instrumentation==0.
|
|
218
|
-
Requires-Dist: opentelemetry-instrumentation-aiohttp-client==0.
|
|
219
|
-
Requires-Dist: opentelemetry-instrumentation-asgi==0.
|
|
220
|
-
Requires-Dist: opentelemetry-instrumentation-botocore==0.
|
|
221
|
-
Requires-Dist: opentelemetry-instrumentation-celery==0.
|
|
222
|
-
Requires-Dist: opentelemetry-instrumentation-dbapi==0.
|
|
223
|
-
Requires-Dist: opentelemetry-instrumentation-fastapi==0.
|
|
224
|
-
Requires-Dist: opentelemetry-instrumentation-pika==0.
|
|
225
|
-
Requires-Dist: opentelemetry-instrumentation-psycopg2==0.
|
|
226
|
-
Requires-Dist: opentelemetry-instrumentation-pymongo==0.
|
|
227
|
-
Requires-Dist: opentelemetry-instrumentation-redis==0.
|
|
228
|
-
Requires-Dist: opentelemetry-instrumentation-requests==0.
|
|
229
|
-
Requires-Dist: opentelemetry-instrumentation-sqlalchemy==0.
|
|
230
|
-
Requires-Dist: opentelemetry-instrumentation-system-metrics==0.
|
|
212
|
+
Requires-Dist: opentelemetry-api==1.39.0; extra == "frozen"
|
|
213
|
+
Requires-Dist: opentelemetry-exporter-otlp==1.39.0; extra == "frozen"
|
|
214
|
+
Requires-Dist: opentelemetry-exporter-otlp-proto-common==1.39.0; extra == "frozen"
|
|
215
|
+
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc==1.39.0; extra == "frozen"
|
|
216
|
+
Requires-Dist: opentelemetry-exporter-otlp-proto-http==1.39.0; extra == "frozen"
|
|
217
|
+
Requires-Dist: opentelemetry-instrumentation==0.60b0; extra == "frozen"
|
|
218
|
+
Requires-Dist: opentelemetry-instrumentation-aiohttp-client==0.60b0; extra == "frozen"
|
|
219
|
+
Requires-Dist: opentelemetry-instrumentation-asgi==0.60b0; extra == "frozen"
|
|
220
|
+
Requires-Dist: opentelemetry-instrumentation-botocore==0.60b0; extra == "frozen"
|
|
221
|
+
Requires-Dist: opentelemetry-instrumentation-celery==0.60b0; extra == "frozen"
|
|
222
|
+
Requires-Dist: opentelemetry-instrumentation-dbapi==0.60b0; extra == "frozen"
|
|
223
|
+
Requires-Dist: opentelemetry-instrumentation-fastapi==0.60b0; extra == "frozen"
|
|
224
|
+
Requires-Dist: opentelemetry-instrumentation-pika==0.60b0; extra == "frozen"
|
|
225
|
+
Requires-Dist: opentelemetry-instrumentation-psycopg2==0.60b0; extra == "frozen"
|
|
226
|
+
Requires-Dist: opentelemetry-instrumentation-pymongo==0.60b0; extra == "frozen"
|
|
227
|
+
Requires-Dist: opentelemetry-instrumentation-redis==0.60b0; extra == "frozen"
|
|
228
|
+
Requires-Dist: opentelemetry-instrumentation-requests==0.60b0; extra == "frozen"
|
|
229
|
+
Requires-Dist: opentelemetry-instrumentation-sqlalchemy==0.60b0; extra == "frozen"
|
|
230
|
+
Requires-Dist: opentelemetry-instrumentation-system-metrics==0.60b0; extra == "frozen"
|
|
231
231
|
Requires-Dist: opentelemetry-propagator-aws-xray==1.0.2; extra == "frozen"
|
|
232
|
-
Requires-Dist: opentelemetry-proto==1.
|
|
233
|
-
Requires-Dist: opentelemetry-sdk==1.
|
|
234
|
-
Requires-Dist: opentelemetry-semantic-conventions==0.
|
|
235
|
-
Requires-Dist: opentelemetry-util-http==0.
|
|
232
|
+
Requires-Dist: opentelemetry-proto==1.39.0; extra == "frozen"
|
|
233
|
+
Requires-Dist: opentelemetry-sdk==1.39.0; extra == "frozen"
|
|
234
|
+
Requires-Dist: opentelemetry-semantic-conventions==0.60b0; extra == "frozen"
|
|
235
|
+
Requires-Dist: opentelemetry-util-http==0.60b0; extra == "frozen"
|
|
236
236
|
Requires-Dist: ordered-set==4.1.0; extra == "frozen"
|
|
237
237
|
Requires-Dist: packaging==25.0; extra == "frozen"
|
|
238
238
|
Requires-Dist: pandas==2.3.3; extra == "frozen"
|
|
@@ -243,7 +243,7 @@ Requires-Dist: pendulum==3.1.0; extra == "frozen"
|
|
|
243
243
|
Requires-Dist: pika==1.3.2; extra == "frozen"
|
|
244
244
|
Requires-Dist: pillow==10.4.0; extra == "frozen"
|
|
245
245
|
Requires-Dist: pip==25.3; extra == "frozen"
|
|
246
|
-
Requires-Dist: platformdirs==4.5.
|
|
246
|
+
Requires-Dist: platformdirs==4.5.1; extra == "frozen"
|
|
247
247
|
Requires-Dist: pluggy==1.6.0; extra == "frozen"
|
|
248
248
|
Requires-Dist: pooch==1.8.2; extra == "frozen"
|
|
249
249
|
Requires-Dist: prison==0.2.1; extra == "frozen"
|
|
@@ -255,7 +255,7 @@ Requires-Dist: protobuf==6.33.1; extra == "frozen"
|
|
|
255
255
|
Requires-Dist: psutil==7.1.3; extra == "frozen"
|
|
256
256
|
Requires-Dist: psycopg2-binary==2.9.11; extra == "frozen"
|
|
257
257
|
Requires-Dist: pycparser==2.23; extra == "frozen"
|
|
258
|
-
Requires-Dist: pydantic==2.12.
|
|
258
|
+
Requires-Dist: pydantic==2.12.5; extra == "frozen"
|
|
259
259
|
Requires-Dist: pydantic-settings==2.12.0; extra == "frozen"
|
|
260
260
|
Requires-Dist: pydantic_core==2.41.5; extra == "frozen"
|
|
261
261
|
Requires-Dist: pyerfa==2.0.1.5; extra == "frozen"
|
|
@@ -273,18 +273,17 @@ Requires-Dist: requests-toolbelt==1.0.0; extra == "frozen"
|
|
|
273
273
|
Requires-Dist: rfc3339-validator==0.1.4; extra == "frozen"
|
|
274
274
|
Requires-Dist: rich==13.9.4; extra == "frozen"
|
|
275
275
|
Requires-Dist: rich-argparse==1.7.2; extra == "frozen"
|
|
276
|
-
Requires-Dist: rpds-py==0.
|
|
277
|
-
Requires-Dist: s3transfer==0.
|
|
276
|
+
Requires-Dist: rpds-py==0.30.0; extra == "frozen"
|
|
277
|
+
Requires-Dist: s3transfer==0.16.0; extra == "frozen"
|
|
278
278
|
Requires-Dist: scikit-image==0.25.2; extra == "frozen"
|
|
279
279
|
Requires-Dist: scikit-learn==1.6.1; extra == "frozen"
|
|
280
280
|
Requires-Dist: scipy==1.15.3; extra == "frozen"
|
|
281
281
|
Requires-Dist: semantic-version==2.10.0; extra == "frozen"
|
|
282
282
|
Requires-Dist: setproctitle==1.3.7; extra == "frozen"
|
|
283
283
|
Requires-Dist: six==1.17.0; extra == "frozen"
|
|
284
|
-
Requires-Dist:
|
|
285
|
-
Requires-Dist: solar-wavelength-calibration==2.0.0rc4; extra == "frozen"
|
|
284
|
+
Requires-Dist: solar-wavelength-calibration==2.0.0; extra == "frozen"
|
|
286
285
|
Requires-Dist: sqids==0.5.1; extra == "frozen"
|
|
287
|
-
Requires-Dist: sqlparse==0.5.
|
|
286
|
+
Requires-Dist: sqlparse==0.5.4; extra == "frozen"
|
|
288
287
|
Requires-Dist: sunpy==6.1.1; extra == "frozen"
|
|
289
288
|
Requires-Dist: tabulate==0.9.0; extra == "frozen"
|
|
290
289
|
Requires-Dist: talus==1.3.4; extra == "frozen"
|
|
@@ -299,10 +298,11 @@ Requires-Dist: traitlets==5.14.3; extra == "frozen"
|
|
|
299
298
|
Requires-Dist: typing-inspection==0.4.2; extra == "frozen"
|
|
300
299
|
Requires-Dist: typing_extensions==4.15.0; extra == "frozen"
|
|
301
300
|
Requires-Dist: tzdata==2025.2; extra == "frozen"
|
|
301
|
+
Requires-Dist: tzlocal==5.3.1; extra == "frozen"
|
|
302
302
|
Requires-Dist: uc-micro-py==1.0.3; extra == "frozen"
|
|
303
303
|
Requires-Dist: uncertainties==3.2.3; extra == "frozen"
|
|
304
|
-
Requires-Dist: universal_pathlib==0.3.
|
|
305
|
-
Requires-Dist: urllib3==2.
|
|
304
|
+
Requires-Dist: universal_pathlib==0.3.7; extra == "frozen"
|
|
305
|
+
Requires-Dist: urllib3==2.6.0; extra == "frozen"
|
|
306
306
|
Requires-Dist: vine==5.1.0; extra == "frozen"
|
|
307
307
|
Requires-Dist: voluptuous==0.15.2; extra == "frozen"
|
|
308
308
|
Requires-Dist: wcwidth==0.2.14; extra == "frozen"
|
|
@@ -347,6 +347,10 @@ Environment Variables
|
|
|
347
347
|
- annotation=str required=False default='unknown-service-version' alias_priority=2 validation_alias='DKIST_SERVICE_VERSION' description='Service version for OpenTelemetry'
|
|
348
348
|
* - NOMAD_ALLOC_ID
|
|
349
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'
|
|
350
354
|
* - OTEL_EXPORTER_OTLP_TRACES_INSECURE
|
|
351
355
|
- annotation=bool required=False default=True description='Use insecure connection for OTLP traces'
|
|
352
356
|
* - OTEL_EXPORTER_OTLP_METRICS_INSECURE
|
|
@@ -387,12 +391,12 @@ Environment Variables
|
|
|
387
391
|
- annotation=Union[dict, NoneType] required=False default=None description='S3 upload configuration for the object store.'
|
|
388
392
|
* - S3_DOWNLOAD_CONFIG
|
|
389
393
|
- annotation=Union[dict, NoneType] required=False default=None description='S3 download configuration for the object store.'
|
|
390
|
-
* -
|
|
391
|
-
- annotation=
|
|
392
|
-
* -
|
|
393
|
-
- annotation=
|
|
394
|
-
* -
|
|
395
|
-
- annotation=
|
|
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'}]]
|
|
396
400
|
* - OBJECT_STORE_ENDPOINT
|
|
397
401
|
- annotation=Union[str, NoneType] required=False default=None description='Object store Globus Endpoint ID.'
|
|
398
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
|
-
* -
|
|
77
|
-
- annotation=
|
|
78
|
-
* -
|
|
79
|
-
- annotation=
|
|
80
|
-
* -
|
|
81
|
-
- annotation=
|
|
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,22 @@
|
|
|
1
|
+
v5.0.0 (2025-12-02)
|
|
2
|
+
===================
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
- Major update to the gain algorithm to mitigate polarization artifacts in L1 science frames. This change can be split into
|
|
8
|
+
three parts. See the `gain correction <https://docs.dkist.nso.edu/projects/visp/en/stable/gain_correction.html>`_ page for more information.
|
|
9
|
+
|
|
10
|
+
#. 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.
|
|
11
|
+
|
|
12
|
+
#. 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.
|
|
13
|
+
|
|
14
|
+
#. 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.
|
|
15
|
+
|
|
16
|
+
Computing a single gain per beam will greatly reduce the polarization artifacts in L1 data. Measuring the vignette
|
|
17
|
+
signal directly will further reduce these artifacts and improve flatness across the array. (`#246 <https://bitbucket.org/dkistdc/dkist-processing-visp/pull-requests/246>`__)
|
|
18
|
+
|
|
19
|
+
|
|
1
20
|
v4.0.0 (2025-11-12)
|
|
2
21
|
===================
|
|
3
22
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"""Visp calibration pipeline parameters."""
|
|
2
2
|
|
|
3
3
|
from datetime import datetime
|
|
4
|
+
from random import randint
|
|
4
5
|
from typing import Any
|
|
5
6
|
|
|
6
7
|
import astropy.units as u
|
|
@@ -208,7 +209,16 @@ class VispParameters(ParameterBase, ParameterWavelengthMixin, ParameterArmIdMixi
|
|
|
208
209
|
@property
|
|
209
210
|
def solar_vignette_wavecal_fit_kwargs(self) -> dict[str, Any]:
|
|
210
211
|
"""Define extra keyword arguments to pass to the wavelength calibration fitter."""
|
|
211
|
-
|
|
212
|
+
doc_dict = self._find_most_recent_past_value("visp_solar_vignette_wavecal_fit_kwargs")
|
|
213
|
+
rng_kwarg = dict()
|
|
214
|
+
fitting_method = doc_dict.get("method", False)
|
|
215
|
+
if fitting_method in ["basinhopping", "differential_evolution", "dual_annealing"]:
|
|
216
|
+
rng = randint(1, 1_000_000)
|
|
217
|
+
rng_kwarg["rng"] = rng
|
|
218
|
+
|
|
219
|
+
# The order here allows us to override `rng` in a parameter value
|
|
220
|
+
fit_kwargs = rng_kwarg | doc_dict
|
|
221
|
+
return fit_kwargs
|
|
212
222
|
|
|
213
223
|
@property
|
|
214
224
|
def solar_vignette_spectral_poly_fit_order(self) -> int:
|
|
@@ -274,7 +274,12 @@ class GeometricCalibration(
|
|
|
274
274
|
self.prep_input_solar_gain()
|
|
275
275
|
|
|
276
276
|
def prep_lamp_gain(self):
|
|
277
|
-
"""
|
|
277
|
+
"""
|
|
278
|
+
Create average, dark-corrected lamp gain images for each modstate from INPUT lamp gains.
|
|
279
|
+
|
|
280
|
+
This is different from the results of the `~dkist_processing_visp.tasks.lamp.LampCalibration` task because in
|
|
281
|
+
that task the hairlines are masked out, but here we *need* the hairlines to compute the rotation angle.
|
|
282
|
+
"""
|
|
278
283
|
for readout_exp_time in self.constants.lamp_readout_exp_times:
|
|
279
284
|
for beam in range(1, self.constants.num_beams + 1):
|
|
280
285
|
logger.info(
|
{dkist_processing_visp-5.0.0rc3 → dkist_processing_visp-5.1.1}/dkist_processing_visp/tasks/solar.py
RENAMED
|
@@ -562,15 +562,7 @@ class SolarCalibration(
|
|
|
562
562
|
|
|
563
563
|
fitter = WavelengthCalibrationFitter(input_parameters=init_parameters, atlas=atlas)
|
|
564
564
|
with self.telemetry_span("Fit atlas and continuum"):
|
|
565
|
-
|
|
566
|
-
fitting_method = self.parameters.solar_vignette_wavecal_fit_kwargs.get("method", False)
|
|
567
|
-
if fitting_method in ["basinhopping", "differential_evolution", "dual_annealing"]:
|
|
568
|
-
# For methods that support the `rng` kwarg we use the recipe run id as the rng seed
|
|
569
|
-
rng = self.recipe_run_id
|
|
570
|
-
rng_kwarg["rng"] = rng
|
|
571
|
-
|
|
572
|
-
# The order here allows us to override the default `rng` (above) in a parameter value
|
|
573
|
-
extra_kwargs = rng_kwarg | self.parameters.solar_vignette_wavecal_fit_kwargs
|
|
565
|
+
extra_kwargs = self.parameters.solar_vignette_wavecal_fit_kwargs
|
|
574
566
|
logger.info(f"Calling fitter with extra kwargs: {extra_kwargs}")
|
|
575
567
|
fit_result = fitter(
|
|
576
568
|
input_spectrum=representative_spectrum,
|
|
@@ -103,7 +103,11 @@ def test_non_wave_parameters(
|
|
|
103
103
|
pn = f"{pn}_{arm_id}"
|
|
104
104
|
pv = expected[pn]
|
|
105
105
|
is_wavelength_param = isinstance(pv, dict) and "wavelength" in pv
|
|
106
|
-
if
|
|
106
|
+
if (
|
|
107
|
+
parameter_name not in parse_parameter_names
|
|
108
|
+
and not is_wavelength_param
|
|
109
|
+
and parameter_name != "solar_vignette_wavecal_fit_kwargs"
|
|
110
|
+
):
|
|
107
111
|
param_obj_value = getattr(task_param_attr, parameter_name)
|
|
108
112
|
if isinstance(pv, tuple):
|
|
109
113
|
pv = list(pv)
|
|
@@ -171,3 +175,47 @@ def test_wave_parameters(
|
|
|
171
175
|
is_wavelength_param = isinstance(pv, dict) and "wavelength" in pv
|
|
172
176
|
if is_wavelength_param and property_name not in parse_parameter_names + arm_parameter_names:
|
|
173
177
|
assert getattr(task_param_attr, property_name) == pv["values"][idx]
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
class AnyInt:
|
|
181
|
+
pass
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
@pytest.mark.parametrize("arm_id", [pytest.param("1")])
|
|
185
|
+
@pytest.mark.parametrize(
|
|
186
|
+
"db_value, expected",
|
|
187
|
+
[
|
|
188
|
+
pytest.param({"method": "nelder"}, {"method": "nelder"}, id="non_rng_method"),
|
|
189
|
+
pytest.param(
|
|
190
|
+
{"method": "basinhopping"}, {"method": "basinhopping", "rng": AnyInt}, id="random_rng"
|
|
191
|
+
),
|
|
192
|
+
pytest.param(
|
|
193
|
+
{"method": "differential_evolution", "rng": 6.28},
|
|
194
|
+
{"method": "differential_evolution", "rng": 6.28},
|
|
195
|
+
id="override_rng",
|
|
196
|
+
),
|
|
197
|
+
pytest.param(dict(), dict(), id="no_kwargs"),
|
|
198
|
+
],
|
|
199
|
+
)
|
|
200
|
+
def test_fit_kwarg_parameters(
|
|
201
|
+
basic_science_task_with_parameter_mixin,
|
|
202
|
+
db_value,
|
|
203
|
+
expected,
|
|
204
|
+
):
|
|
205
|
+
"""
|
|
206
|
+
Given: A Science task with the parameter mixin
|
|
207
|
+
When: Accessing properties for parameters that do not depend on wavelength
|
|
208
|
+
Then: The correct value is returned
|
|
209
|
+
"""
|
|
210
|
+
task, _ = next(
|
|
211
|
+
basic_science_task_with_parameter_mixin(
|
|
212
|
+
VispInputDatasetParameterValues(visp_solar_vignette_wavecal_fit_kwargs=db_value)
|
|
213
|
+
)
|
|
214
|
+
)
|
|
215
|
+
kwarg_dict = task.parameters.solar_vignette_wavecal_fit_kwargs
|
|
216
|
+
assert kwarg_dict.keys() == expected.keys()
|
|
217
|
+
for k in expected.keys():
|
|
218
|
+
if expected[k] is AnyInt:
|
|
219
|
+
assert type(kwarg_dict[k]) is int
|
|
220
|
+
else:
|
|
221
|
+
assert expected[k] == kwarg_dict[k]
|
|
@@ -310,16 +310,10 @@ def solar_gain_task(
|
|
|
310
310
|
|
|
311
311
|
|
|
312
312
|
@pytest.mark.parametrize(
|
|
313
|
-
"background_on
|
|
313
|
+
"background_on",
|
|
314
314
|
[
|
|
315
|
-
pytest.param(True,
|
|
316
|
-
pytest.param(False,
|
|
317
|
-
pytest.param(
|
|
318
|
-
False,
|
|
319
|
-
{"method": "differential_evolution", "rng": 6.28},
|
|
320
|
-
id="background_off-override_rng",
|
|
321
|
-
),
|
|
322
|
-
pytest.param(False, dict(), id="background_off-no_fit_kwargs"),
|
|
315
|
+
pytest.param(True, id="background_on"),
|
|
316
|
+
pytest.param(False, id="background_off"),
|
|
323
317
|
],
|
|
324
318
|
)
|
|
325
319
|
def test_solar_gain_task(
|
|
@@ -335,7 +329,6 @@ def test_solar_gain_task(
|
|
|
335
329
|
assign_input_dataset_doc_to_task,
|
|
336
330
|
mocker,
|
|
337
331
|
fake_gql_client,
|
|
338
|
-
fit_kwargs,
|
|
339
332
|
):
|
|
340
333
|
"""
|
|
341
334
|
Given: A set of raw solar gain images and necessary intermediate calibrations
|
|
@@ -351,7 +344,6 @@ def test_solar_gain_task(
|
|
|
351
344
|
input_shape = (num_wave_pix * 2, 100)
|
|
352
345
|
intermediate_shape = (num_wave_pix, 100)
|
|
353
346
|
beam_border = input_shape[0] // 2
|
|
354
|
-
conftest_fit_kwargs = VispInputDatasetParameterValues().visp_solar_vignette_wavecal_fit_kwargs
|
|
355
347
|
assign_input_dataset_doc_to_task(
|
|
356
348
|
task,
|
|
357
349
|
VispInputDatasetParameterValues(
|
|
@@ -361,9 +353,6 @@ def test_solar_gain_task(
|
|
|
361
353
|
visp_wavecal_init_resolving_power=resolving_power,
|
|
362
354
|
visp_wavecal_camera_lens_parameters_1=lens_parameters_no_units,
|
|
363
355
|
visp_solar_vignette_initial_continuum_poly_fit_order=1,
|
|
364
|
-
visp_solar_vignette_wavecal_fit_kwargs=(
|
|
365
|
-
conftest_fit_kwargs if fit_kwargs == "conftest" else fit_kwargs
|
|
366
|
-
),
|
|
367
356
|
),
|
|
368
357
|
arm_id=1,
|
|
369
358
|
)
|
|
@@ -41,8 +41,13 @@ l0_pipeline.add_node(
|
|
|
41
41
|
task=SolarCalibration,
|
|
42
42
|
upstreams=[LampCalibration, GeometricCalibration, BackgroundLightCalibration],
|
|
43
43
|
)
|
|
44
|
-
l0_pipeline.add_node(
|
|
45
|
-
|
|
44
|
+
l0_pipeline.add_node(
|
|
45
|
+
task=InstrumentPolarizationCalibration,
|
|
46
|
+
upstreams=[BackgroundLightCalibration, GeometricCalibration],
|
|
47
|
+
)
|
|
48
|
+
l0_pipeline.add_node(
|
|
49
|
+
task=ScienceCalibration, upstreams=[SolarCalibration, InstrumentPolarizationCalibration]
|
|
50
|
+
)
|
|
46
51
|
l0_pipeline.add_node(task=VispWriteL1Frame, upstreams=ScienceCalibration)
|
|
47
52
|
|
|
48
53
|
# Movie flow
|
|
@@ -43,8 +43,13 @@ full_trial_pipeline.add_node(
|
|
|
43
43
|
task=SolarCalibration,
|
|
44
44
|
upstreams=[LampCalibration, GeometricCalibration, BackgroundLightCalibration],
|
|
45
45
|
)
|
|
46
|
-
full_trial_pipeline.add_node(
|
|
47
|
-
|
|
46
|
+
full_trial_pipeline.add_node(
|
|
47
|
+
task=InstrumentPolarizationCalibration,
|
|
48
|
+
upstreams=[BackgroundLightCalibration, GeometricCalibration],
|
|
49
|
+
)
|
|
50
|
+
full_trial_pipeline.add_node(
|
|
51
|
+
task=ScienceCalibration, upstreams=[SolarCalibration, InstrumentPolarizationCalibration]
|
|
52
|
+
)
|
|
48
53
|
full_trial_pipeline.add_node(task=VispWriteL1Frame, upstreams=ScienceCalibration)
|
|
49
54
|
|
|
50
55
|
# Movie flow
|