dkist-processing-cryonirsp 1.8.3__py3-none-any.whl → 1.10.0__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.

Potentially problematic release.


This version of dkist-processing-cryonirsp might be problematic. Click here for more details.

Files changed (28) hide show
  1. dkist_processing_cryonirsp/config.py +4 -1
  2. dkist_processing_cryonirsp/models/constants.py +14 -1
  3. dkist_processing_cryonirsp/models/parameters.py +11 -19
  4. dkist_processing_cryonirsp/parsers/cryonirsp_l0_fits_access.py +3 -2
  5. dkist_processing_cryonirsp/tasks/__init__.py +1 -1
  6. dkist_processing_cryonirsp/tasks/parse.py +15 -3
  7. dkist_processing_cryonirsp/tasks/sp_wavelength_calibration.py +300 -0
  8. dkist_processing_cryonirsp/tasks/write_l1.py +6 -16
  9. dkist_processing_cryonirsp/tests/conftest.py +13 -20
  10. dkist_processing_cryonirsp/tests/header_models.py +12 -0
  11. dkist_processing_cryonirsp/tests/local_trial_workflows/l0_cals_only.py +17 -17
  12. dkist_processing_cryonirsp/tests/local_trial_workflows/l0_to_l1.py +17 -19
  13. dkist_processing_cryonirsp/tests/local_trial_workflows/local_trial_helpers.py +3 -3
  14. dkist_processing_cryonirsp/tests/test_cryo_constants.py +4 -1
  15. dkist_processing_cryonirsp/tests/test_parameters.py +4 -0
  16. dkist_processing_cryonirsp/tests/test_parse.py +28 -2
  17. dkist_processing_cryonirsp/tests/{test_sp_dispersion_axis_correction.py → test_sp_wavelength_calibration.py} +6 -23
  18. dkist_processing_cryonirsp/tests/test_write_l1.py +15 -15
  19. dkist_processing_cryonirsp/workflows/ci_l0_processing.py +4 -1
  20. dkist_processing_cryonirsp/workflows/sp_l0_processing.py +7 -4
  21. dkist_processing_cryonirsp/workflows/trial_workflows.py +3 -3
  22. {dkist_processing_cryonirsp-1.8.3.dist-info → dkist_processing_cryonirsp-1.10.0.dist-info}/METADATA +22 -21
  23. {dkist_processing_cryonirsp-1.8.3.dist-info → dkist_processing_cryonirsp-1.10.0.dist-info}/RECORD +27 -26
  24. docs/index.rst +1 -0
  25. docs/wavelength_calibration.rst +62 -0
  26. dkist_processing_cryonirsp/tasks/sp_dispersion_axis_correction.py +0 -465
  27. {dkist_processing_cryonirsp-1.8.3.dist-info → dkist_processing_cryonirsp-1.10.0.dist-info}/WHEEL +0 -0
  28. {dkist_processing_cryonirsp-1.8.3.dist-info → dkist_processing_cryonirsp-1.10.0.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dkist-processing-cryonirsp
3
- Version: 1.8.3
3
+ Version: 1.10.0
4
4
  Summary: Science processing code for the Cryo-NIRSP instrument on DKIST
5
5
  Author-email: NSO / AURA <dkistdc@nso.edu>
6
6
  License: BSD-3-Clause
@@ -17,7 +17,7 @@ Requires-Dist: Pillow==10.4.0
17
17
  Requires-Dist: astropy==7.0.2
18
18
  Requires-Dist: dkist-fits-specifications==4.17.0
19
19
  Requires-Dist: dkist-header-validator==5.2.1
20
- Requires-Dist: dkist-processing-common==11.0.0
20
+ Requires-Dist: dkist-processing-common==11.0.1
21
21
  Requires-Dist: dkist-processing-math==2.2.0
22
22
  Requires-Dist: dkist-processing-pac==3.1.1
23
23
  Requires-Dist: dkist-spectral-lines==3.0.0
@@ -30,6 +30,7 @@ Requires-Dist: peakutils==1.3.5
30
30
  Requires-Dist: scikit-image==0.25.2
31
31
  Requires-Dist: scipy==1.15.3
32
32
  Requires-Dist: sunpy==6.1.1
33
+ Requires-Dist: solar-wavelength-calibration==1.0
33
34
  Provides-Extra: test
34
35
  Requires-Dist: pytest; extra == "test"
35
36
  Requires-Dist: pytest-cov; extra == "test"
@@ -88,9 +89,9 @@ Requires-Dist: WTForms==3.2.1; extra == "frozen"
88
89
  Requires-Dist: Werkzeug==2.2.3; extra == "frozen"
89
90
  Requires-Dist: aioftp==0.26.2; extra == "frozen"
90
91
  Requires-Dist: aiohappyeyeballs==2.6.1; extra == "frozen"
91
- Requires-Dist: aiohttp==3.12.13; extra == "frozen"
92
+ Requires-Dist: aiohttp==3.12.14; extra == "frozen"
92
93
  Requires-Dist: aiosignal==1.4.0; extra == "frozen"
93
- Requires-Dist: alembic==1.16.3; extra == "frozen"
94
+ Requires-Dist: alembic==1.16.4; extra == "frozen"
94
95
  Requires-Dist: amqp==5.3.1; extra == "frozen"
95
96
  Requires-Dist: annotated-types==0.7.0; extra == "frozen"
96
97
  Requires-Dist: anyio==4.9.0; extra == "frozen"
@@ -114,17 +115,17 @@ Requires-Dist: asdf_transform_schemas==0.6.0; extra == "frozen"
114
115
  Requires-Dist: asgiref==3.9.1; extra == "frozen"
115
116
  Requires-Dist: asteval==1.0.6; extra == "frozen"
116
117
  Requires-Dist: astropy==7.0.2; extra == "frozen"
117
- Requires-Dist: astropy-iers-data==0.2025.7.7.0.39.39; extra == "frozen"
118
+ Requires-Dist: astropy-iers-data==0.2025.7.14.0.40.29; extra == "frozen"
118
119
  Requires-Dist: asyncpg==0.30.0; extra == "frozen"
119
120
  Requires-Dist: attrs==25.3.0; extra == "frozen"
120
121
  Requires-Dist: babel==2.17.0; extra == "frozen"
121
122
  Requires-Dist: billiard==4.2.1; extra == "frozen"
122
123
  Requires-Dist: blinker==1.9.0; extra == "frozen"
123
- Requires-Dist: boto3==1.39.3; extra == "frozen"
124
- Requires-Dist: botocore==1.39.3; extra == "frozen"
124
+ Requires-Dist: boto3==1.39.4; extra == "frozen"
125
+ Requires-Dist: botocore==1.39.4; extra == "frozen"
125
126
  Requires-Dist: cachelib==0.13.0; extra == "frozen"
126
127
  Requires-Dist: celery==5.5.3; extra == "frozen"
127
- Requires-Dist: certifi==2025.6.15; extra == "frozen"
128
+ Requires-Dist: certifi==2025.7.14; extra == "frozen"
128
129
  Requires-Dist: cffi==1.17.1; extra == "frozen"
129
130
  Requires-Dist: charset-normalizer==3.4.2; extra == "frozen"
130
131
  Requires-Dist: click==8.2.1; extra == "frozen"
@@ -144,9 +145,9 @@ Requires-Dist: dacite==1.9.2; extra == "frozen"
144
145
  Requires-Dist: decorator==5.2.1; extra == "frozen"
145
146
  Requires-Dist: dill==0.4.0; extra == "frozen"
146
147
  Requires-Dist: dkist-header-validator==5.2.1; extra == "frozen"
147
- Requires-Dist: dkist-processing-common==11.0.0; extra == "frozen"
148
+ Requires-Dist: dkist-processing-common==11.0.1; extra == "frozen"
148
149
  Requires-Dist: dkist-processing-core==5.1.1; extra == "frozen"
149
- Requires-Dist: dkist-processing-cryonirsp==1.8.3; extra == "frozen"
150
+ Requires-Dist: dkist-processing-cryonirsp==1.10.0; extra == "frozen"
150
151
  Requires-Dist: dkist-processing-math==2.2.0; extra == "frozen"
151
152
  Requires-Dist: dkist-processing-pac==3.1.1; extra == "frozen"
152
153
  Requires-Dist: dkist-service-configuration==2.2; extra == "frozen"
@@ -161,7 +162,7 @@ Requires-Dist: flower==2.0.1; extra == "frozen"
161
162
  Requires-Dist: fonttools==4.58.5; extra == "frozen"
162
163
  Requires-Dist: frozenlist==1.7.0; extra == "frozen"
163
164
  Requires-Dist: fsspec==2025.5.1; extra == "frozen"
164
- Requires-Dist: globus-sdk==3.59.0; extra == "frozen"
165
+ Requires-Dist: globus-sdk==3.60.0; extra == "frozen"
165
166
  Requires-Dist: google-re2==1.1.20240702; extra == "frozen"
166
167
  Requires-Dist: googleapis-common-protos==1.70.0; extra == "frozen"
167
168
  Requires-Dist: gqlclient==1.2.3; extra == "frozen"
@@ -208,14 +209,14 @@ Requires-Dist: networkx==3.5; extra == "frozen"
208
209
  Requires-Dist: numba==0.61.2; extra == "frozen"
209
210
  Requires-Dist: numpy==2.2.5; extra == "frozen"
210
211
  Requires-Dist: object-clerk==0.1.2; extra == "frozen"
211
- Requires-Dist: opentelemetry-api==1.34.1; extra == "frozen"
212
- Requires-Dist: opentelemetry-exporter-otlp==1.34.1; extra == "frozen"
213
- Requires-Dist: opentelemetry-exporter-otlp-proto-common==1.34.1; extra == "frozen"
214
- Requires-Dist: opentelemetry-exporter-otlp-proto-grpc==1.34.1; extra == "frozen"
215
- Requires-Dist: opentelemetry-exporter-otlp-proto-http==1.34.1; extra == "frozen"
216
- Requires-Dist: opentelemetry-proto==1.34.1; extra == "frozen"
217
- Requires-Dist: opentelemetry-sdk==1.34.1; extra == "frozen"
218
- Requires-Dist: opentelemetry-semantic-conventions==0.55b1; extra == "frozen"
212
+ Requires-Dist: opentelemetry-api==1.35.0; extra == "frozen"
213
+ Requires-Dist: opentelemetry-exporter-otlp==1.35.0; extra == "frozen"
214
+ Requires-Dist: opentelemetry-exporter-otlp-proto-common==1.35.0; extra == "frozen"
215
+ Requires-Dist: opentelemetry-exporter-otlp-proto-grpc==1.35.0; extra == "frozen"
216
+ Requires-Dist: opentelemetry-exporter-otlp-proto-http==1.35.0; extra == "frozen"
217
+ Requires-Dist: opentelemetry-proto==1.35.0; extra == "frozen"
218
+ Requires-Dist: opentelemetry-sdk==1.35.0; extra == "frozen"
219
+ Requires-Dist: opentelemetry-semantic-conventions==0.56b0; extra == "frozen"
219
220
  Requires-Dist: ordered-set==4.1.0; extra == "frozen"
220
221
  Requires-Dist: packaging==25.0; extra == "frozen"
221
222
  Requires-Dist: pandas==2.3.1; extra == "frozen"
@@ -233,7 +234,7 @@ Requires-Dist: proglog==0.1.12; extra == "frozen"
233
234
  Requires-Dist: prometheus_client==0.22.1; extra == "frozen"
234
235
  Requires-Dist: prompt_toolkit==3.0.51; extra == "frozen"
235
236
  Requires-Dist: propcache==0.3.2; extra == "frozen"
236
- Requires-Dist: protobuf==5.29.5; extra == "frozen"
237
+ Requires-Dist: protobuf==6.31.1; extra == "frozen"
237
238
  Requires-Dist: psutil==7.0.0; extra == "frozen"
238
239
  Requires-Dist: psycopg2-binary==2.9.10; extra == "frozen"
239
240
  Requires-Dist: py==1.11.0; extra == "frozen"
@@ -263,7 +264,7 @@ Requires-Dist: scikit-image==0.25.2; extra == "frozen"
263
264
  Requires-Dist: scipy==1.15.3; extra == "frozen"
264
265
  Requires-Dist: semantic-version==2.10.0; extra == "frozen"
265
266
  Requires-Dist: setproctitle==1.3.6; extra == "frozen"
266
- Requires-Dist: setuptools==75.6.0; extra == "frozen"
267
+ Requires-Dist: setuptools==65.5.0; extra == "frozen"
267
268
  Requires-Dist: six==1.17.0; extra == "frozen"
268
269
  Requires-Dist: sniffio==1.3.1; extra == "frozen"
269
270
  Requires-Dist: solar-wavelength-calibration==1.0; extra == "frozen"
@@ -1,18 +1,18 @@
1
1
  changelog/.gitempty,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  dkist_processing_cryonirsp/__init__.py,sha256=Z6-kB7fXXUI-F7Vz1HnEaja2h8qgH9IZExRl1lUxvZg,350
3
- dkist_processing_cryonirsp/config.py,sha256=xNkUNJ1BeBxJX881mTCIEbirZlD5_5txpV1QqkbfRM0,507
3
+ dkist_processing_cryonirsp/config.py,sha256=DlU2dr_oORrwytQVmEUSg3IRPXxE4vhAWiCiw7ykvzo,641
4
4
  dkist_processing_cryonirsp/codecs/__init__.py,sha256=du1iitvsudSSOMENSywXmXSLOlvIocJsPbvfEcyqFNc,159
5
5
  dkist_processing_cryonirsp/codecs/fits.py,sha256=EAdPcqWXMEWtWnRDLH_LX20giPoLVfmKBawb9J2z0wM,1718
6
6
  dkist_processing_cryonirsp/models/__init__.py,sha256=m6UekKftTahNJ3W5K3mZSz4Y4ZZpHRxF_ZAxuaKYL7o,12
7
7
  dkist_processing_cryonirsp/models/beam_boundaries.py,sha256=FyiLd2iCWA6TUojeGaqQ_ULxvakDY13VxqUJVlmYvV0,1159
8
- dkist_processing_cryonirsp/models/constants.py,sha256=aKhSu4Hp0kKRgO6muMli2W4DC3zP0sEm4TzK--hyJXQ,11062
8
+ dkist_processing_cryonirsp/models/constants.py,sha256=rFCkE-bZhbCABKVtQom5iTfPgDqDzsKkrtTnngZExkM,11528
9
9
  dkist_processing_cryonirsp/models/exposure_conditions.py,sha256=slFq5-Qz4fRpJKDBabbm4evPWLQVYmT-Uf9rk7nI734,813
10
- dkist_processing_cryonirsp/models/parameters.py,sha256=icAnYJvVCSJiNoT9SuYTZfDx6imwcq7QwfCY3_qQAIY,13154
10
+ dkist_processing_cryonirsp/models/parameters.py,sha256=Yn6GPEGnMiQyEL9n2BPx9LIVWPSdVXmcIX9OzzDOvPc,13144
11
11
  dkist_processing_cryonirsp/models/tags.py,sha256=ac0MnYlsn8-w7IioOvWeo7mBaDKE9o9TlRpxCH1OsRc,5743
12
12
  dkist_processing_cryonirsp/models/task_name.py,sha256=xK4AKwgOx2uANbjhr0Q5Q3R9iPxLfkVKxWYY8wWjKhE,439
13
13
  dkist_processing_cryonirsp/parsers/__init__.py,sha256=m6UekKftTahNJ3W5K3mZSz4Y4ZZpHRxF_ZAxuaKYL7o,12
14
14
  dkist_processing_cryonirsp/parsers/check_for_gains.py,sha256=v-eD1LG0dlFoZXz5Y-2ZyPvRL2TZ8gWfr5cN6YNYqvo,2341
15
- dkist_processing_cryonirsp/parsers/cryonirsp_l0_fits_access.py,sha256=HtkmVdhEZxasKQyxWQyrirmiDrzAVfr3QCC2ldzBdSk,5617
15
+ dkist_processing_cryonirsp/parsers/cryonirsp_l0_fits_access.py,sha256=rMB4mrUGQnQ6nHEZVegkdGpnW4Q2iXG5YRAaAq9tOW4,5608
16
16
  dkist_processing_cryonirsp/parsers/cryonirsp_l1_fits_access.py,sha256=sc8MzxYMc8E1eFrL5KguAGHViCMJhaDfiBtZPml4ELg,886
17
17
  dkist_processing_cryonirsp/parsers/exposure_conditions.py,sha256=Mcud-0PQK0oJSxbqtQUtVk0t8b6YBEFSyGsGbG5UqGg,8445
18
18
  dkist_processing_cryonirsp/parsers/map_repeats.py,sha256=PjZ986bqkCdii-EOzU045cWqadxQC_nyyqwWYIpYdls,1566
@@ -23,7 +23,7 @@ dkist_processing_cryonirsp/parsers/polarimetric_check.py,sha256=HBzg9Zi9-M1M2jh4
23
23
  dkist_processing_cryonirsp/parsers/scan_step.py,sha256=7XNUq48qbdpV8GeaBeG9XFRDkYlgw8Fjd6ByFZ24OAc,18972
24
24
  dkist_processing_cryonirsp/parsers/time.py,sha256=dpajm3tfrih-8pjlOWOvZVJVP2FihR87HFQSjR_KPYI,2543
25
25
  dkist_processing_cryonirsp/parsers/wavelength.py,sha256=Ay5hZiDNV25-N_QXZINTCgn1ToiP2jvwumkbirBiJGk,883
26
- dkist_processing_cryonirsp/tasks/__init__.py,sha256=JyM9oA1A6t5sPsbaNmnK9_e6t00kUYzDZzqmSg0nVjE,1061
26
+ dkist_processing_cryonirsp/tasks/__init__.py,sha256=iSODAESNU6zBZo_t44LeTmS1oj_l6EVF7k8xSNtppnk,1057
27
27
  dkist_processing_cryonirsp/tasks/assemble_movie.py,sha256=UrxfKSsT3mBkV2LYvnePzKr9nXlvjpoa5amY5C3ftFI,7350
28
28
  dkist_processing_cryonirsp/tasks/bad_pixel_map.py,sha256=z-ACCwHqiRANsR7gkkCIycPpgOdR04Mo85WLAPiAJno,3961
29
29
  dkist_processing_cryonirsp/tasks/beam_boundaries_base.py,sha256=-sKmBDuNq22QZBe6Vdu5aaiOxeikM6bICpkZ4lBP--g,9688
@@ -36,21 +36,21 @@ dkist_processing_cryonirsp/tasks/instrument_polarization.py,sha256=xS2jcngnibDCL
36
36
  dkist_processing_cryonirsp/tasks/l1_output_data.py,sha256=3RFt493MEJxdpF81gcp8FDlQ8vGZ0GXEDYQFWIufumI,1554
37
37
  dkist_processing_cryonirsp/tasks/linearity_correction.py,sha256=n9vK9cT7NWkpAM9J6wOYDj95Kh0va_ot-hdncd7ye0Y,24199
38
38
  dkist_processing_cryonirsp/tasks/make_movie_frames.py,sha256=I7s3Tml6AevHci0kTPF71mNjXNl3wlG57Jh7ghnndeg,13928
39
- dkist_processing_cryonirsp/tasks/parse.py,sha256=5nkCjKeCi6oKHzBXmqs81yZwyRPBmIMmL8Lh53CEv4E,13114
39
+ dkist_processing_cryonirsp/tasks/parse.py,sha256=8efntsSPkNl_sokRU2SEStZBCRJvnXDsCelVumOUwH8,13824
40
40
  dkist_processing_cryonirsp/tasks/quality_metrics.py,sha256=jyx2YZzLb5sVxbJ_H6PaKQqZbyZy9QuuLqu18jsnncQ,11447
41
41
  dkist_processing_cryonirsp/tasks/science_base.py,sha256=YYUQUfLeuzDb6E5TecOH22orTN4-hWocoYaGOq6Zoro,18637
42
42
  dkist_processing_cryonirsp/tasks/sp_beam_boundaries.py,sha256=XI3iepNe04xaU4ilqxrlOgYDkv5I5rUc0RXEE1Rwt0o,10296
43
- dkist_processing_cryonirsp/tasks/sp_dispersion_axis_correction.py,sha256=w3DHEWEJwl3zuKuUB6kzG3vuBWJM84cZGbfeFQKWwJE,18279
44
43
  dkist_processing_cryonirsp/tasks/sp_geometric.py,sha256=_M_e_blz4mKDIUWSasonnOzbZ6EUbHp9pAZXQx4zY7U,24387
45
44
  dkist_processing_cryonirsp/tasks/sp_science.py,sha256=QWyAEkXYamAcWxi62-tVD6ptuQ6vt8yIzuCKzCIYW20,13643
46
45
  dkist_processing_cryonirsp/tasks/sp_solar_gain.py,sha256=d4UABsMxyzCMduVxptHY_TCGqS-l-W5iuhW7HJwVPkA,21024
47
- dkist_processing_cryonirsp/tasks/write_l1.py,sha256=nLAV0fx_bRFA7WAPrdxJQKogGSRj3pscDJXzhogrVuw,41476
46
+ dkist_processing_cryonirsp/tasks/sp_wavelength_calibration.py,sha256=E9HBmlzvvUEgoAamlO-E0MngYKjuUVq3WwK0DRDLvPk,12843
47
+ dkist_processing_cryonirsp/tasks/write_l1.py,sha256=Jzg09WUYi8uY5o6By7JOsFP0CHpfPCVC4M2UvLSO2PA,41169
48
48
  dkist_processing_cryonirsp/tasks/mixin/__init__.py,sha256=m6UekKftTahNJ3W5K3mZSz4Y4ZZpHRxF_ZAxuaKYL7o,12
49
49
  dkist_processing_cryonirsp/tasks/mixin/corrections.py,sha256=rcKmckBJkoExcX0XW1i3OZzuMu1i7tX5Hgwy15chU50,6566
50
50
  dkist_processing_cryonirsp/tasks/mixin/shift_measurements.py,sha256=EbU3VQ_1QLbENHO_SfhWc7d573UwbofKU-PpbfBPKI8,11620
51
51
  dkist_processing_cryonirsp/tests/__init__.py,sha256=m6UekKftTahNJ3W5K3mZSz4Y4ZZpHRxF_ZAxuaKYL7o,12
52
- dkist_processing_cryonirsp/tests/conftest.py,sha256=oeZw5KXlvm_UasgFc3uzxD2Z2uTg5-rJu7Do9wIKJKU,18131
53
- dkist_processing_cryonirsp/tests/header_models.py,sha256=klif5-UzTzvAqpj5cJCdLtyodJZS_awhy53NUHyucTw,20601
52
+ dkist_processing_cryonirsp/tests/conftest.py,sha256=ThhhNZ61a-qRMiPEM7PgLwKTw9L4C5nh0IHLDnwtTRo,18016
53
+ dkist_processing_cryonirsp/tests/header_models.py,sha256=eQWRwJzWCIK8-ak1oLWf88u7eo7ERxPMrmQHuphUfX8,21115
54
54
  dkist_processing_cryonirsp/tests/test_assemble_movie.py,sha256=YNZINIFXR9kZBlE1AIvjlVmwwhZJeVYOOPk7Q8IVkcI,6222
55
55
  dkist_processing_cryonirsp/tests/test_assemble_qualilty.py,sha256=upk-oUqVBHGK3F0eemshLpAPrnfh9mbeuZXow4E1Rmc,16859
56
56
  dkist_processing_cryonirsp/tests/test_bad_pixel_maps.py,sha256=TsUIaCWQolOJCU2YOhxxmXWby6j3NhCkB2W2jDgb9OM,4855
@@ -58,33 +58,33 @@ dkist_processing_cryonirsp/tests/test_ci_beam_boundaries.py,sha256=h-v79qi4VohcX
58
58
  dkist_processing_cryonirsp/tests/test_ci_science.py,sha256=PryW50DZaKiTcLaSvhfaolrosXObj7-O1jweCJeLM_Y,14403
59
59
  dkist_processing_cryonirsp/tests/test_corrections.py,sha256=Q_prvaXKdmpebEa5d05s86pcGB9VTjsGB0g5AfEB2Ks,4536
60
60
  dkist_processing_cryonirsp/tests/test_cryo_base.py,sha256=9dSQ_3j_n04NX-nbdAFWhdHGwMe720Vyx0Jxof9eySo,6647
61
- dkist_processing_cryonirsp/tests/test_cryo_constants.py,sha256=OanX9nPCvhFe9mBV0SRCsClqiSaHi8YxgG2HoESrzTk,2827
61
+ dkist_processing_cryonirsp/tests/test_cryo_constants.py,sha256=WP3cHUF7g9urUt_BuchkbG6ldjM07QltClxRPLnmjsw,3008
62
62
  dkist_processing_cryonirsp/tests/test_dark.py,sha256=9WQDoVw1qwaqK-iaVfjOKbIusr4SJrR1rGiPZAWhNIU,11669
63
63
  dkist_processing_cryonirsp/tests/test_gain.py,sha256=KAkIXJnifVx7CHnKBY-7EhhUi5b8t5U8wBOL9F8M0gM,11260
64
64
  dkist_processing_cryonirsp/tests/test_instrument_polarization.py,sha256=COiopx4ueVPeyQO12eVP125nqBrgsnCa0ddo8y6Qrxs,19711
65
65
  dkist_processing_cryonirsp/tests/test_linearity_correction.py,sha256=r1EwZsW1yO0B0ERGn1kDciZKvjipN_LVHFXR-XIJmP0,9350
66
66
  dkist_processing_cryonirsp/tests/test_make_movie_frames.py,sha256=WznHp9dV2-jbJYzRniCAIbSHCGNc0SpSzyVDSrZkYd4,4904
67
- dkist_processing_cryonirsp/tests/test_parameters.py,sha256=yVyUmLst26Ws-_21lS727HkP08DcQh9kycZb9ICsHGY,10948
68
- dkist_processing_cryonirsp/tests/test_parse.py,sha256=qop-scwjeN70xdgFxDiHuPjDy4b4rnA11W8Q5BkcL9o,56006
67
+ dkist_processing_cryonirsp/tests/test_parameters.py,sha256=hy0ssu2OJmkHFKlGd0_d6EW10YjWsqGb68rOFlPqGuo,11105
68
+ dkist_processing_cryonirsp/tests/test_parse.py,sha256=Ejullo7r7vR0zYRCd714z4berKwXrwSnv8xMVRVqNd4,57090
69
69
  dkist_processing_cryonirsp/tests/test_quality.py,sha256=qrJBYjnZOhmQ4vjDcDV3FVSUAdktFgs-pRaHX4cf2G0,8129
70
70
  dkist_processing_cryonirsp/tests/test_sp_beam_boundaries.py,sha256=tLQToWStb4Yu2jEHkzv2FyifO_QPwegzttyNKjX8JPk,4880
71
- dkist_processing_cryonirsp/tests/test_sp_dispersion_axis_correction.py,sha256=Z0t_v85ATh9ntlngUa8v_hqs0ZCd4nkakpHNeCVRwiE,6141
72
71
  dkist_processing_cryonirsp/tests/test_sp_geometric.py,sha256=ZnusZvxsJ8YX-rg0R1azg7-DPr4vz5q2NE030bsuWXo,15691
73
72
  dkist_processing_cryonirsp/tests/test_sp_make_movie_frames.py,sha256=Kn8U_HzaaHW2bHmBxsotdjmpBhd_Ft6pLWhVsMWIJE8,5322
74
73
  dkist_processing_cryonirsp/tests/test_sp_science.py,sha256=fCmyXh27nxKU_N90yW1WqPGq1mZ6ODrw0UvtMB1elHI,19835
75
74
  dkist_processing_cryonirsp/tests/test_sp_solar.py,sha256=IdZZ2RvCwKk6_q_JKo93nFFk0HJ74yUxHxq9W1LppJE,10008
75
+ dkist_processing_cryonirsp/tests/test_sp_wavelength_calibration.py,sha256=SZMixYxMnIksvQpTiXt8MiwLbyZiDyKE6CW2vjl4af8,5666
76
76
  dkist_processing_cryonirsp/tests/test_trial_create_quality_report.py,sha256=x8dRAMyawQVYZQGsuO36DMZxK4L13hZBUn86qbhJiNk,2805
77
77
  dkist_processing_cryonirsp/tests/test_workflows.py,sha256=2a-TUMbVEyNjHYNyzo2UQMLg5PSaEx6iV9hOsGp-Mck,291
78
- dkist_processing_cryonirsp/tests/test_write_l1.py,sha256=VDSRU7j4eylYlmYQYKn32Od751NmG7qzhpoaFYFWQDM,17729
78
+ dkist_processing_cryonirsp/tests/test_write_l1.py,sha256=Ijf1Dxa-jCkMjEcPuSRbtCsFzfHH-nifn2AQ84qg1zg,17644
79
79
  dkist_processing_cryonirsp/tests/local_trial_workflows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
80
- dkist_processing_cryonirsp/tests/local_trial_workflows/l0_cals_only.py,sha256=nWs3Qg3f4DHqN_6JBKDaR5q9TncgR_PeRWw3_bUBZWA,20110
81
- dkist_processing_cryonirsp/tests/local_trial_workflows/l0_to_l1.py,sha256=KaxxMeo_sOMWgekNVkPsTJt6XWU2Ov7rnMkBtG_sKcc,23938
80
+ dkist_processing_cryonirsp/tests/local_trial_workflows/l0_cals_only.py,sha256=jUC6EnzBLwso7DBCtmhTdPJw3zlrIJYW0KTKNlWgGAM,20088
81
+ dkist_processing_cryonirsp/tests/local_trial_workflows/l0_to_l1.py,sha256=Ab1IeXfys130jkRs0iNIPv2rZFXg-IDCNkK4Z_wdOuI,23909
82
82
  dkist_processing_cryonirsp/tests/local_trial_workflows/linearize_only.py,sha256=kl9yrE1EbgxNn__x4q0WYoZIvS8zefcOPbQQdxB4_ZE,3280
83
- dkist_processing_cryonirsp/tests/local_trial_workflows/local_trial_helpers.py,sha256=FteYoLXR6BW3MBb-Wc6-O8mRj26U2U6T95_itslDhEo,20966
83
+ dkist_processing_cryonirsp/tests/local_trial_workflows/local_trial_helpers.py,sha256=DQDpjc6_I5o6dIPv5hK65oBKG0vksp9lY4k9A0hu1D4,20953
84
84
  dkist_processing_cryonirsp/workflows/__init__.py,sha256=iEbV3oiKmkfmdZjeNJxqw08IIZnYSroq-2b-ARpkLFQ,112
85
- dkist_processing_cryonirsp/workflows/ci_l0_processing.py,sha256=T-BOvDDWHzs5BDH5ctSBjzGgD6Xez52AnDXsH5_7Bms,3788
86
- dkist_processing_cryonirsp/workflows/sp_l0_processing.py,sha256=A74av8E8mL9WzI4vWI2GbhVrRFQ7JCMlGAioEjXkkCU,4219
87
- dkist_processing_cryonirsp/workflows/trial_workflows.py,sha256=UvSvsho6gYWliJ_sRN_uYbt5jBdA68hVyLiyr6X5QTo,8088
85
+ dkist_processing_cryonirsp/workflows/ci_l0_processing.py,sha256=8-96ZWi_hnzsashkFaaK6YjO0CUk_2iO_gCoHTmGow8,3823
86
+ dkist_processing_cryonirsp/workflows/sp_l0_processing.py,sha256=TFycCbC_N3MhM0rEHpEPmKtfJLNaVY3csR6uDrRCKI4,4245
87
+ dkist_processing_cryonirsp/workflows/trial_workflows.py,sha256=eLrROaZiyZwn8ta34oSO06aH_D9VPoqWinjDMN-9VN4,8079
88
88
  docs/Makefile,sha256=qnlVz6PuBqE39NfHWuUnHhNEA-EFgT2-WJNNNy9ttfk,4598
89
89
  docs/bad_pixel_calibration.rst,sha256=bHRclUItBA1QbGlek36B1yN5WHN53WkfjKUvZaq_j2I,2452
90
90
  docs/beam_angle_calculation.rst,sha256=-yUPFRl6SbPBIj-wOwylEymQDMQnkay7kAIAiubpQT8,2941
@@ -92,7 +92,7 @@ docs/beam_boundary_computation.rst,sha256=khyc_uW5zII6c0vN1lOvrwMAr5WO1XFFIou3QB
92
92
  docs/changelog.rst,sha256=S2jPASsWlQxSlAPqdvNrYvhk9k3FcFWNXFNDYXBSjl4,120
93
93
  docs/ci_science_calibration.rst,sha256=6HLt4ljL49sYH_iFU-Nz8KSWLyS8h_SSkzgUv-LsfqM,1704
94
94
  docs/conf.py,sha256=cv1Gct6NbY_kxJEKqw-mMIoauxtWVZeNzRLFqX1_GUw,2038
95
- docs/index.rst,sha256=FZY5WfJ16HQyslyaJxgTLs6XCD73_aFFdH4CjzagNjs,445
95
+ docs/index.rst,sha256=l6vH2FhWpuz0X1SbgfaMBoCACMPRuhHCs9dTxW1Hcaw,472
96
96
  docs/l0_to_l1_cryonirsp_ci-full-trial.rst,sha256=-uhtnd51ttJYw9T5hs5A9HQWpXJkOJmvfXf1INFT3MI,582
97
97
  docs/l0_to_l1_cryonirsp_ci.rst,sha256=OhGTy9CBTqQJ04XhThTws8KBnGLFiP5vBX0DlX6NXKA,458
98
98
  docs/l0_to_l1_cryonirsp_sp-full-trial.rst,sha256=cKdRI7qVEVYsqqgYuL9nzqFP3uTR4cu305WfjmmyetY,582
@@ -104,8 +104,9 @@ docs/requirements.txt,sha256=Kbl_X4c7RQZw035YTeNB63We6I7pvXFU4T0Uflp2yDY,29
104
104
  docs/requirements_table.rst,sha256=FaqSag9kPi77gWPhzeo_tFEhRFjb3qUuNqqQe1K76NM,297
105
105
  docs/scientific_changelog.rst,sha256=01AWBSHg8zElnodCgAq-hMxhk9CkX5rtEENx4iz0sjI,300
106
106
  docs/sp_science_calibration.rst,sha256=XL-H_hyzqwPHYNW3j-muItX_hGqMi-gjFRQbHp60LlU,2997
107
+ docs/wavelength_calibration.rst,sha256=s7ds_QKlVJ68fdONSY3DOBvHHaQC0JR_D4goG_VVKWw,3457
107
108
  licenses/LICENSE.rst,sha256=piZaQplkzOMmH1NXg6QIdo9wwo9pPCoHkvm2-DmH76E,1462
108
- dkist_processing_cryonirsp-1.8.3.dist-info/METADATA,sha256=R6VTN39agIINSv0EUd_BcM2Dumi2SivkLJiaQoTBhBM,22053
109
- dkist_processing_cryonirsp-1.8.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
110
- dkist_processing_cryonirsp-1.8.3.dist-info/top_level.txt,sha256=Sm9b1ddKnsF9Bh3mqDOct1Sm7k8I9aN7vGHgpmu-MlQ,51
111
- dkist_processing_cryonirsp-1.8.3.dist-info/RECORD,,
109
+ dkist_processing_cryonirsp-1.10.0.dist-info/METADATA,sha256=dRKIRqib3ItQE26Lkis3M6WPZv96b8d0rlVqM_2P4QA,22105
110
+ dkist_processing_cryonirsp-1.10.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
111
+ dkist_processing_cryonirsp-1.10.0.dist-info/top_level.txt,sha256=Sm9b1ddKnsF9Bh3mqDOct1Sm7k8I9aN7vGHgpmu-MlQ,51
112
+ dkist_processing_cryonirsp-1.10.0.dist-info/RECORD,,
docs/index.rst CHANGED
@@ -14,6 +14,7 @@
14
14
  bad_pixel_calibration
15
15
  beam_boundary_computation
16
16
  beam_angle_calculation
17
+ wavelength_calibration
17
18
  ci_science_calibration
18
19
  sp_science_calibration
19
20
  autoapi/index
@@ -0,0 +1,62 @@
1
+ Wavelength Calibration
2
+ ============================
3
+
4
+ Overview
5
+ --------
6
+
7
+ The `~dkist_processing_cryonirsp.tasks.sp_wavelength_calibration` task provides an absolute wavelength calibration of
8
+ Cryo-NIRSP solar spectra by using the routines provided by the
9
+ `solar-wavelength-calibration <https://docs.dkist.nso.edu/projects/solar-wavelength-calibration/en/latest/>`_ library.
10
+
11
+ Workflow
12
+ --------
13
+
14
+ #. **Input Spectrum**: Compute a spatially averaged input spectrum from solar gain images.
15
+ #. **Initial Guess**: Use Level 0 headers to generate a first-guess wavelength solution.
16
+ #. **Fitting**: Fit the representative spectrum using the `solar-wavelength-calibration <https://docs.dkist.nso.edu/projects/solar-wavelength-calibration/en/latest/>`_ library, refining the wavelength solution.
17
+ #. **Header Encoding**: Save the fit results as FITS header keywords, parameterizing the solution for downstream use.
18
+
19
+ Wavelength Solution Encoding
20
+ ----------------------------
21
+
22
+ The wavelength solution is stored in FITS headers using the following keywords (see `Greisen et al (2006) <https://ui.adsabs.harvard.edu/abs/2006A%26A...446..747G/abstract>`_, Section 5 and Table 6):
23
+
24
+ +---------+--------------------------+----------------+
25
+ | Keyword | Description | Units |
26
+ +=========+==========================+================+
27
+ | `CTYPE1`| Spectral coordinate type | "AWAV-GRA" |
28
+ +---------+--------------------------+----------------+
29
+ | `CUNIT1`| Wavelength unit | "nm" |
30
+ +---------+--------------------------+----------------+
31
+ | `CRPIX1`| Reference pixel | |
32
+ +---------+--------------------------+----------------+
33
+ | `CRVAL1`| Reference wavelength | nm |
34
+ +---------+--------------------------+----------------+
35
+ | `CDELT1`| Linear dispersion | nm / px |
36
+ +---------+--------------------------+----------------+
37
+ | `PV1_0` | Grating constant | 1 / m |
38
+ +---------+--------------------------+----------------+
39
+ | `PV1_1` | Spectral order | |
40
+ +---------+--------------------------+----------------+
41
+ | `PV1_1` | Incident light angle | deg |
42
+ +---------+--------------------------+----------------+
43
+
44
+ Note: The units of `PV1_0` are always 1 / m.
45
+
46
+ Fitted Parameters
47
+ -----------------
48
+
49
+ The fitting process can optimize several parameters. The parameters that are free in Cryo-NIRSP fits are:
50
+
51
+ - **crval**: Wavelength zero-point.
52
+ - **dispersion**: Linear dispersion, allowed to vary within a few percent of the nominal value.
53
+ - **opacity_factor**: Atmospheric absorption scaling, to match telluric line strengths.
54
+ - **continuum_level**: Overall spectrum scaling, to match the observed continuum.
55
+ - **straylight_fraction**: Fraction of stray or scattered light added to the observed spectrum, affecting line depths and continuum.
56
+ - **resolving_power**: Spectral resolving power (:math:`R = \frac{\lambda}{\Delta\lambda}`), characterizing the instrument's ability to distinguish close spectral features.
57
+ - **incident_light_angle**: Angle at which light enters the grating, influencing the wavelength solution through the grating equation.
58
+
59
+
60
+ For more details on the fitting algorithms and parameterization, see the
61
+ `solar-wavelength-calibration documentation <https://docs.dkist.nso.edu/projects/solar-wavelength-calibration/en/latest/>`_
62
+ and `Greisen et al. (2006) <https://ui.adsabs.harvard.edu/abs/2006A%26A...446..747G/abstract>`_.