dkist-processing-visp 5.2.2__py3-none-any.whl → 5.2.4__py3-none-any.whl

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.
@@ -22,6 +22,8 @@ from dkist_processing_common.tasks import WorkflowTaskBase
22
22
 
23
23
  # Don't remove this; tests will break
24
24
  from dkist_processing_common.tests.mock_metadata_store import fake_gql_client
25
+ from solar_wavelength_calibration import Atlas
26
+ from solar_wavelength_calibration import DownloadConfig
25
27
 
26
28
  from dkist_processing_visp.models.constants import VispConstants
27
29
  from dkist_processing_visp.models.parameters import VispParameters
@@ -179,7 +181,7 @@ class VispInputDatasetParameterValues:
179
181
  visp_wavecal_pixel_pitch_micron_per_pix: float = 6.5
180
182
  visp_wavecal_atlas_download_config: dict[str, str] = field(
181
183
  default_factory=lambda: {
182
- "base_url": "doi:10.5281/zenodo.14646787/",
184
+ "base_url": "https://g-a36282.cd214.a567.data.globus.org/atlas/",
183
185
  "telluric_reference_atlas_file_name": "telluric_reference_atlas.npy",
184
186
  "telluric_reference_atlas_hash_id": "md5:8db5e12508b293bca3495d81a0747447",
185
187
  "solar_reference_atlas_file_name": "solar_reference_atlas.npy",
@@ -568,3 +570,10 @@ def write_calibrated_frames_to_task(
568
570
  data_func=make_random_data,
569
571
  )
570
572
  return num_written_frames
573
+
574
+
575
+ @pytest.fixture(scope="session")
576
+ def solar_atlas() -> Atlas:
577
+ config = VispInputDatasetParameterValues().visp_wavecal_atlas_download_config
578
+ config = DownloadConfig.model_validate(config)
579
+ return Atlas(config=config)
@@ -16,7 +16,6 @@ from dkist_processing_common.codecs.fits import fits_array_decoder
16
16
  from dkist_processing_common.codecs.fits import fits_array_encoder
17
17
  from dkist_processing_common.models.tags import Tag
18
18
  from scipy.ndimage import gaussian_filter1d
19
- from solar_wavelength_calibration import Atlas
20
19
  from sunpy.coordinates import HeliocentricInertial
21
20
 
22
21
  from dkist_processing_visp.models.tags import VispTag
@@ -136,11 +135,6 @@ def resolving_power() -> int:
136
135
  return int(1.15e5)
137
136
 
138
137
 
139
- @pytest.fixture(scope="session")
140
- def solar_atlas() -> Atlas:
141
- return Atlas()
142
-
143
-
144
138
  @pytest.fixture(scope="session")
145
139
  def spectral_vignette_function(num_wave_pix) -> np.ndarray:
146
140
  return (np.arange(num_wave_pix) - num_wave_pix // 2) / (num_wave_pix * 10) + 1.0
@@ -10,7 +10,6 @@ from dkist_processing_common.codecs.fits import fits_array_encoder
10
10
  from dkist_processing_common.codecs.json import json_decoder
11
11
  from dkist_processing_common.models.metric_code import MetricCode
12
12
  from scipy.ndimage import gaussian_filter
13
- from solar_wavelength_calibration import Atlas
14
13
 
15
14
  from dkist_processing_visp.models.tags import VispTag
16
15
  from dkist_processing_visp.tasks.wavelength_calibration import WavelengthCalibration
@@ -110,11 +109,6 @@ def resolving_power() -> int:
110
109
  return int(1.15e5)
111
110
 
112
111
 
113
- @pytest.fixture(scope="session")
114
- def solar_atlas() -> Atlas:
115
- return Atlas()
116
-
117
-
118
112
  @pytest.fixture(scope="function")
119
113
  def visp_wavelength_correction_task(
120
114
  tmp_path,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dkist-processing-visp
3
- Version: 5.2.2
3
+ Version: 5.2.4
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,7 +13,7 @@ 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.9.1
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
@@ -93,22 +93,22 @@ Requires-Dist: WTForms==3.2.1; extra == "frozen"
93
93
  Requires-Dist: Werkzeug==2.2.3; extra == "frozen"
94
94
  Requires-Dist: aioftp==0.27.2; extra == "frozen"
95
95
  Requires-Dist: aiohappyeyeballs==2.6.1; extra == "frozen"
96
- Requires-Dist: aiohttp==3.13.2; extra == "frozen"
96
+ Requires-Dist: aiohttp==3.13.3; extra == "frozen"
97
97
  Requires-Dist: aiosignal==1.4.0; extra == "frozen"
98
98
  Requires-Dist: aiosmtplib==5.0.0; extra == "frozen"
99
99
  Requires-Dist: alembic==1.17.2; extra == "frozen"
100
100
  Requires-Dist: amqp==5.3.1; extra == "frozen"
101
101
  Requires-Dist: annotated-types==0.7.0; extra == "frozen"
102
- Requires-Dist: anyio==4.12.0; extra == "frozen"
102
+ Requires-Dist: anyio==4.12.1; extra == "frozen"
103
103
  Requires-Dist: apache-airflow==2.11.0; extra == "frozen"
104
- Requires-Dist: apache-airflow-providers-celery==3.14.1; extra == "frozen"
105
- Requires-Dist: apache-airflow-providers-common-compat==1.10.1; extra == "frozen"
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
106
  Requires-Dist: apache-airflow-providers-common-io==1.7.0; extra == "frozen"
107
- Requires-Dist: apache-airflow-providers-common-sql==1.30.1; extra == "frozen"
107
+ Requires-Dist: apache-airflow-providers-common-sql==1.30.2; extra == "frozen"
108
108
  Requires-Dist: apache-airflow-providers-fab==1.5.3; extra == "frozen"
109
109
  Requires-Dist: apache-airflow-providers-ftp==3.14.0; extra == "frozen"
110
- Requires-Dist: apache-airflow-providers-http==5.6.1; extra == "frozen"
111
- Requires-Dist: apache-airflow-providers-imap==3.10.1; 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
112
  Requires-Dist: apache-airflow-providers-postgres==6.5.1; extra == "frozen"
113
113
  Requires-Dist: apache-airflow-providers-smtp==2.4.1; extra == "frozen"
114
114
  Requires-Dist: apache-airflow-providers-sqlite==4.2.0; extra == "frozen"
@@ -118,19 +118,19 @@ Requires-Dist: asdf==3.5.0; extra == "frozen"
118
118
  Requires-Dist: asdf_standard==1.4.0; extra == "frozen"
119
119
  Requires-Dist: asdf_transform_schemas==0.6.0; extra == "frozen"
120
120
  Requires-Dist: asgiref==3.11.0; extra == "frozen"
121
- Requires-Dist: asteval==1.0.7; extra == "frozen"
121
+ Requires-Dist: asteval==1.0.8; extra == "frozen"
122
122
  Requires-Dist: astropy==7.0.2; extra == "frozen"
123
- Requires-Dist: astropy-iers-data==0.2025.12.15.0.40.51; extra == "frozen"
123
+ Requires-Dist: astropy-iers-data==0.2026.1.5.0.43.43; extra == "frozen"
124
124
  Requires-Dist: asyncpg==0.31.0; extra == "frozen"
125
125
  Requires-Dist: attrs==25.4.0; extra == "frozen"
126
126
  Requires-Dist: babel==2.17.0; extra == "frozen"
127
127
  Requires-Dist: billiard==4.2.4; extra == "frozen"
128
128
  Requires-Dist: blinker==1.9.0; extra == "frozen"
129
- Requires-Dist: boto3==1.42.11; extra == "frozen"
130
- Requires-Dist: botocore==1.42.11; extra == "frozen"
129
+ Requires-Dist: boto3==1.42.24; extra == "frozen"
130
+ Requires-Dist: botocore==1.42.24; extra == "frozen"
131
131
  Requires-Dist: cachelib==0.13.0; extra == "frozen"
132
- Requires-Dist: celery==5.6.0; extra == "frozen"
133
- 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"
134
134
  Requires-Dist: cffi==2.0.0; extra == "frozen"
135
135
  Requires-Dist: charset-normalizer==3.4.4; extra == "frozen"
136
136
  Requires-Dist: click==8.3.1; extra == "frozen"
@@ -150,23 +150,22 @@ Requires-Dist: dacite==1.9.2; extra == "frozen"
150
150
  Requires-Dist: decorator==5.2.1; extra == "frozen"
151
151
  Requires-Dist: dill==0.4.0; extra == "frozen"
152
152
  Requires-Dist: dkist-header-validator==5.2.1; extra == "frozen"
153
- Requires-Dist: dkist-processing-common==11.9.1; extra == "frozen"
153
+ Requires-Dist: dkist-processing-common==11.9.3; extra == "frozen"
154
154
  Requires-Dist: dkist-processing-core==6.0.1; extra == "frozen"
155
155
  Requires-Dist: dkist-processing-math==2.2.1; extra == "frozen"
156
156
  Requires-Dist: dkist-processing-pac==3.1.1; extra == "frozen"
157
- Requires-Dist: dkist-processing-visp==5.2.2; extra == "frozen"
157
+ Requires-Dist: dkist-processing-visp==5.2.4; extra == "frozen"
158
158
  Requires-Dist: dkist-service-configuration==4.1.13; extra == "frozen"
159
159
  Requires-Dist: dkist-spectral-lines==3.0.0; extra == "frozen"
160
160
  Requires-Dist: dkist_fits_specifications==4.19.0; extra == "frozen"
161
161
  Requires-Dist: dnspython==2.8.0; extra == "frozen"
162
162
  Requires-Dist: email-validator==2.3.0; extra == "frozen"
163
- Requires-Dist: exceptiongroup==1.3.1; extra == "frozen"
164
163
  Requires-Dist: fastjsonschema==2.21.2; extra == "frozen"
165
164
  Requires-Dist: flower==2.0.1; extra == "frozen"
166
165
  Requires-Dist: fonttools==4.61.1; extra == "frozen"
167
166
  Requires-Dist: frozenlist==1.8.0; extra == "frozen"
168
167
  Requires-Dist: fsspec==2025.12.0; extra == "frozen"
169
- Requires-Dist: globus-sdk==4.2.0; extra == "frozen"
168
+ Requires-Dist: globus-sdk==4.3.0; extra == "frozen"
170
169
  Requires-Dist: google-re2==1.1.20251105; extra == "frozen"
171
170
  Requires-Dist: googleapis-common-protos==1.72.0; extra == "frozen"
172
171
  Requires-Dist: gqlclient==1.2.3; extra == "frozen"
@@ -176,19 +175,19 @@ Requires-Dist: gunicorn==23.0.0; extra == "frozen"
176
175
  Requires-Dist: h11==0.16.0; extra == "frozen"
177
176
  Requires-Dist: httpcore==1.0.9; extra == "frozen"
178
177
  Requires-Dist: httpx==0.28.1; extra == "frozen"
179
- Requires-Dist: humanize==4.14.0; extra == "frozen"
178
+ Requires-Dist: humanize==4.15.0; extra == "frozen"
180
179
  Requires-Dist: idna==3.11; extra == "frozen"
181
180
  Requires-Dist: imageio-ffmpeg==0.6.0; extra == "frozen"
182
- Requires-Dist: importlib_metadata==8.7.0; extra == "frozen"
181
+ Requires-Dist: importlib_metadata==8.7.1; extra == "frozen"
183
182
  Requires-Dist: inflection==0.5.1; extra == "frozen"
184
183
  Requires-Dist: itsdangerous==2.2.0; extra == "frozen"
185
184
  Requires-Dist: jmespath==1.0.1; extra == "frozen"
186
185
  Requires-Dist: joblib==1.5.3; extra == "frozen"
187
- Requires-Dist: jsonschema==4.25.1; extra == "frozen"
186
+ Requires-Dist: jsonschema==4.26.0; extra == "frozen"
188
187
  Requires-Dist: jsonschema-specifications==2025.9.1; extra == "frozen"
189
188
  Requires-Dist: jupyter_core==5.9.1; extra == "frozen"
190
189
  Requires-Dist: kiwisolver==1.4.9; extra == "frozen"
191
- Requires-Dist: kombu==5.6.1; extra == "frozen"
190
+ Requires-Dist: kombu==5.6.2; extra == "frozen"
192
191
  Requires-Dist: lazy-object-proxy==1.12.0; extra == "frozen"
193
192
  Requires-Dist: lazy_loader==0.4; extra == "frozen"
194
193
  Requires-Dist: limits==5.6.0; extra == "frozen"
@@ -197,7 +196,7 @@ Requires-Dist: lmfit==1.3.4; extra == "frozen"
197
196
  Requires-Dist: lockfile==0.12.2; extra == "frozen"
198
197
  Requires-Dist: loguru==0.7.3; extra == "frozen"
199
198
  Requires-Dist: markdown-it-py==4.0.0; extra == "frozen"
200
- Requires-Dist: marshmallow==3.26.1; extra == "frozen"
199
+ Requires-Dist: marshmallow==3.26.2; extra == "frozen"
201
200
  Requires-Dist: marshmallow-oneofschema==3.2.0; extra == "frozen"
202
201
  Requires-Dist: marshmallow-sqlalchemy==0.28.2; extra == "frozen"
203
202
  Requires-Dist: matplotlib==3.10.8; extra == "frozen"
@@ -240,7 +239,7 @@ Requires-Dist: packaging==25.0; extra == "frozen"
240
239
  Requires-Dist: pandas==2.3.3; extra == "frozen"
241
240
  Requires-Dist: parfive==2.2.0; extra == "frozen"
242
241
  Requires-Dist: pathlib_abc==0.5.2; extra == "frozen"
243
- Requires-Dist: pathspec==0.12.1; extra == "frozen"
242
+ Requires-Dist: pathspec==1.0.1; extra == "frozen"
244
243
  Requires-Dist: pendulum==3.1.0; extra == "frozen"
245
244
  Requires-Dist: pika==1.3.2; extra == "frozen"
246
245
  Requires-Dist: pillow==10.4.0; extra == "frozen"
@@ -254,14 +253,14 @@ Requires-Dist: prometheus_client==0.23.1; extra == "frozen"
254
253
  Requires-Dist: prompt_toolkit==3.0.52; extra == "frozen"
255
254
  Requires-Dist: propcache==0.4.1; extra == "frozen"
256
255
  Requires-Dist: protobuf==6.33.2; extra == "frozen"
257
- Requires-Dist: psutil==7.1.3; extra == "frozen"
256
+ Requires-Dist: psutil==7.2.1; extra == "frozen"
258
257
  Requires-Dist: psycopg2-binary==2.9.11; extra == "frozen"
259
258
  Requires-Dist: pycparser==2.23; extra == "frozen"
260
259
  Requires-Dist: pydantic==2.12.5; extra == "frozen"
261
260
  Requires-Dist: pydantic-settings==2.12.0; extra == "frozen"
262
261
  Requires-Dist: pydantic_core==2.41.5; extra == "frozen"
263
262
  Requires-Dist: pyerfa==2.0.1.5; extra == "frozen"
264
- Requires-Dist: pyparsing==3.2.5; extra == "frozen"
263
+ Requires-Dist: pyparsing==3.3.1; extra == "frozen"
265
264
  Requires-Dist: python-daemon==3.1.2; extra == "frozen"
266
265
  Requires-Dist: python-dateutil==2.9.0.post0; extra == "frozen"
267
266
  Requires-Dist: python-dotenv==1.2.1; extra == "frozen"
@@ -285,15 +284,15 @@ Requires-Dist: setproctitle==1.3.7; extra == "frozen"
285
284
  Requires-Dist: six==1.17.0; extra == "frozen"
286
285
  Requires-Dist: solar-wavelength-calibration==2.0.0; extra == "frozen"
287
286
  Requires-Dist: sqids==0.5.1; extra == "frozen"
288
- Requires-Dist: sqlparse==0.5.4; extra == "frozen"
287
+ Requires-Dist: sqlparse==0.5.5; extra == "frozen"
289
288
  Requires-Dist: sunpy==6.1.1; extra == "frozen"
290
289
  Requires-Dist: tabulate==0.9.0; extra == "frozen"
291
290
  Requires-Dist: talus==1.3.4; extra == "frozen"
292
291
  Requires-Dist: tenacity==8.5.0; extra == "frozen"
293
- Requires-Dist: termcolor==3.2.0; extra == "frozen"
292
+ Requires-Dist: termcolor==3.3.0; extra == "frozen"
294
293
  Requires-Dist: text-unidecode==1.3; extra == "frozen"
295
294
  Requires-Dist: threadpoolctl==3.6.0; extra == "frozen"
296
- Requires-Dist: tifffile==2025.12.12; extra == "frozen"
295
+ Requires-Dist: tifffile==2025.12.20; extra == "frozen"
297
296
  Requires-Dist: tornado==6.5.4; extra == "frozen"
298
297
  Requires-Dist: tqdm==4.67.1; extra == "frozen"
299
298
  Requires-Dist: traitlets==5.14.3; extra == "frozen"
@@ -304,9 +303,9 @@ Requires-Dist: tzlocal==5.3.1; extra == "frozen"
304
303
  Requires-Dist: uc-micro-py==1.0.3; extra == "frozen"
305
304
  Requires-Dist: uncertainties==3.2.3; extra == "frozen"
306
305
  Requires-Dist: universal_pathlib==0.3.7; extra == "frozen"
307
- Requires-Dist: urllib3==2.6.2; extra == "frozen"
306
+ Requires-Dist: urllib3==2.6.3; extra == "frozen"
308
307
  Requires-Dist: vine==5.1.0; extra == "frozen"
309
- Requires-Dist: voluptuous==0.15.2; extra == "frozen"
308
+ Requires-Dist: voluptuous==0.16.0; extra == "frozen"
310
309
  Requires-Dist: wcwidth==0.2.14; extra == "frozen"
311
310
  Requires-Dist: wirerope==1.0.0; extra == "frozen"
312
311
  Requires-Dist: wrapt==1.17.3; extra == "frozen"
@@ -40,7 +40,7 @@ dkist_processing_visp/tasks/mixin/corrections.py,sha256=FhLFgD9ZYLZd3SaC3PFF-szr
40
40
  dkist_processing_visp/tasks/mixin/downsample.py,sha256=SvKzY6HJRn-FeyG7O6HPvyOS5dmMu6uPoWkfnpPXpVw,1344
41
41
  dkist_processing_visp/tests/README.rst,sha256=rnedwwg25c0lB9Me7cT7QNZA17FYlqCu9ZnjQxR5hi0,12502
42
42
  dkist_processing_visp/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
43
- dkist_processing_visp/tests/conftest.py,sha256=poJPxGK8RZlDYEoGkwaIyX08WDgf2aF566uJJbZsldk,19049
43
+ dkist_processing_visp/tests/conftest.py,sha256=JJLg-x4Rfzrk3wp-vBN0EpnnBzQzXS4qdGmr7GXBNwM,19402
44
44
  dkist_processing_visp/tests/header_models.py,sha256=gD1FUo5TtY_EMSnpWvkrJIOsckkgRAD-e1mthPCdiOw,21687
45
45
  dkist_processing_visp/tests/test_assemble_movie.py,sha256=T5EZzdB3sNY4HcSkN2W1ZBDaI4a68ZUNqPB-JpANSQ0,2247
46
46
  dkist_processing_visp/tests/test_assemble_quality.py,sha256=i2INzb73BM14A6VKD70eb5vaAv5_QjPy3VVVb4lonkc,4314
@@ -57,10 +57,10 @@ dkist_processing_visp/tests/test_parameters.py,sha256=kIwOak4PURFc6yNT9R1rLxfb4x
57
57
  dkist_processing_visp/tests/test_parse.py,sha256=XyH8oCk5C0CWl4ndNIyVjgXLoMg0679s4dj1MGlJs0c,23363
58
58
  dkist_processing_visp/tests/test_quality.py,sha256=YW24VjEHoILseFIXZBp4-o7egT26mfT1lafzajVjXu8,6905
59
59
  dkist_processing_visp/tests/test_science.py,sha256=B8bbtVTxJIXiPssIbJchPLbzVTPCAzpLAgn5DhpYCn0,26106
60
- dkist_processing_visp/tests/test_solar.py,sha256=xtw8cbunonOG_6dRJHF9GIiQ5Q-KTBCdo1FZWkiA7_c,16761
60
+ dkist_processing_visp/tests/test_solar.py,sha256=f5tk8RGOoC7fcxqp3s01p6I55iIDJBioKSXC1S56KMQ,16632
61
61
  dkist_processing_visp/tests/test_trial_create_quality_report.py,sha256=5LSvLiInp_ce_jObtBGNHQgVAkvJr9bYgY7IzIKrEuU,2799
62
62
  dkist_processing_visp/tests/test_visp_constants.py,sha256=y2x42Y-dK2lrCPufLAV1KHpu2fQ-FRpe8tSIhfHJEw8,3134
63
- dkist_processing_visp/tests/test_wavelength_calibration.py,sha256=usOCDd4yjmigpCjc5enQn14JJKojm8laxVJVDtV5PuU,9550
63
+ dkist_processing_visp/tests/test_wavelength_calibration.py,sha256=bDWehEUb1xRo0EufRb3Fc8n_ko6_S3OdzasVA5Bs3rQ,9421
64
64
  dkist_processing_visp/tests/test_workflows.py,sha256=qyWxagIDv-MmVN0u3KFswa5HdaHC6uGeJpvgxvPE30E,287
65
65
  dkist_processing_visp/tests/test_write_l1.py,sha256=ZrAWhfx_HZi7dOBRc5YowvkKtMS8TBE_iud_KPjFI8g,6572
66
66
  dkist_processing_visp/tests/local_trial_workflows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -84,14 +84,14 @@ docs/l0_to_l1_visp.rst,sha256=wE1TT7DD93r3kByaFAaT2HO907pjV4YrJ_fzvJFTchw,623
84
84
  docs/l0_to_l1_visp_full-trial.rst,sha256=Y6YLkRA5b0tgui5l_WdthCx2wrXjLD8U97XKZHXVVBk,558
85
85
  docs/landing_page.rst,sha256=tdxWtmGjO7OUPYvRjgBAI461nubEE61HrtBwPdBeawI,1052
86
86
  docs/make.bat,sha256=mBAhtURwhQ7yc95pqwJzlhqBSvRknr1aqZ5s8NKvdKs,4513
87
- docs/polarization_calibration.rst,sha256=fYdB_FYB7NjvknuQIa3EGc4ZWjeUaBkkeRb8Y1bGihk,5068
87
+ docs/polarization_calibration.rst,sha256=iPs-ichH7_m-_7_sisZNwv2X5H5CjIOaEe4-FiU4C18,6233
88
88
  docs/requirements.txt,sha256=Kbl_X4c7RQZw035YTeNB63We6I7pvXFU4T0Uflp2yDY,29
89
89
  docs/requirements_table.rst,sha256=_HIbwFpDooM5n0JjiDAbFozGfJuX13smtcoujLFN4Gk,292
90
90
  docs/science_calibration.rst,sha256=VN_g7xSjN-nbXhlBaFnPCbNcsc_Qu0207jEUfRAjnBE,2939
91
91
  docs/scientific_changelog.rst,sha256=01AWBSHg8zElnodCgAq-hMxhk9CkX5rtEENx4iz0sjI,300
92
92
  docs/wavelength_calibration.rst,sha256=OSGYAeR8Acns2ZUectHzRj2xcAsuNEMLejcYfPYu-vw,3674
93
93
  licenses/LICENSE.rst,sha256=piZaQplkzOMmH1NXg6QIdo9wwo9pPCoHkvm2-DmH76E,1462
94
- dkist_processing_visp-5.2.2.dist-info/METADATA,sha256=UCKkJRm8UpkRs67vUkPZ9B6cMPlIiWBJZZ_K0_ejB48,30023
95
- dkist_processing_visp-5.2.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
96
- dkist_processing_visp-5.2.2.dist-info/top_level.txt,sha256=9GHSn-ZMGQxaRNGrPP3HNc5ZkE7ftzluO74Jz5vUSTE,46
97
- dkist_processing_visp-5.2.2.dist-info/RECORD,,
94
+ dkist_processing_visp-5.2.4.dist-info/METADATA,sha256=ECnvVPk_MfVjkj1wywJO_jZeG7LucYyiaoArRuO0bm4,29962
95
+ dkist_processing_visp-5.2.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
96
+ dkist_processing_visp-5.2.4.dist-info/top_level.txt,sha256=9GHSn-ZMGQxaRNGrPP3HNc5ZkE7ftzluO74Jz5vUSTE,46
97
+ dkist_processing_visp-5.2.4.dist-info/RECORD,,
@@ -40,8 +40,9 @@ Algorithm Detail
40
40
 
41
41
  The general algorithm is:
42
42
 
43
- #. Correct input PolCal data with dark, :doc:`background <background_light>`, :doc:`gain </gain_correction>`, and
44
- :doc:`geometric </geometric>` calibrations.
43
+ #. Generate polcal dark and gain frames.
44
+
45
+ #. Correct input PolCal data with darks and gains taken as part of the instrument polarization sequence, as well as any :doc:`background light <background_light>` correction, if applicable.
45
46
 
46
47
  #. Bin "global" and "local" sets of polcal data.
47
48
 
@@ -51,11 +52,29 @@ The general algorithm is:
51
52
 
52
53
  #. Up-sample the binned demodulation matrices to span the full ViSP FOV.
53
54
 
54
- Calibrate Input PoCal Data
55
- ^^^^^^^^^^^^^^^^^^^^^^^^^^
55
+ Generate PolCal Dark and Gain Frames
56
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
57
+
58
+ PolCal data are reduced using darks and gains taken as part of the PolCal sequence.
59
+
60
+ This approach ensures that PolCal data are always reducible, even in cases where the exposure times of observe darks and PolCal darks differ due to experimental setup errors.
61
+ For consistency with other spectro-polarimetric instruments, it is important that the observe darks and PolCal darks have matching
62
+ exposure times (or at least matching frame and single frame exposure times). Using PolCal darks guarantees that the PolCal data can
63
+ always be properly reduced, regardless of such discrepancies.
64
+
65
+
66
+ For gain correction, the average of the dark-corrected
67
+ 'clear' PolCal frames is used. This change ensures that spectral line signatures are largely removed from the data, preventing bias
68
+ in the median value calculated across the spectral axis. The same average clear frame is applied to all PolCal data through division,
69
+ and to all modulation states identically, preserving relative flux changes between states. With this approach, a separate gain
70
+ array is not necessary.
71
+
72
+
73
+ Calibrate Input PolCal Data
74
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^
56
75
 
57
- PoCal data are calibration in exactly the same way as input science data. They first have dark and background signals
58
- removed, then are normalized by a gain image before finally having their :doc:`geometric </geometric>` distortions
76
+ PoCal data first have PolCal dark and background signals
77
+ removed, then are normalized by the average PolCal gain image before finally having their :doc:`geometric </geometric>` distortions
59
78
  (spectral rotation, x/y offset, and spectral curvature) removed.
60
79
 
61
80
  Bin PolCal Data