dkist-processing-cryonirsp 1.8.3__py3-none-any.whl → 1.10.0rc1__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.
Files changed (29) hide show
  1. changelog/167.feature.rst +1 -0
  2. dkist_processing_cryonirsp/config.py +4 -1
  3. dkist_processing_cryonirsp/models/constants.py +14 -1
  4. dkist_processing_cryonirsp/models/parameters.py +11 -19
  5. dkist_processing_cryonirsp/parsers/cryonirsp_l0_fits_access.py +3 -2
  6. dkist_processing_cryonirsp/tasks/__init__.py +1 -1
  7. dkist_processing_cryonirsp/tasks/parse.py +15 -3
  8. dkist_processing_cryonirsp/tasks/sp_wavelength_calibration.py +300 -0
  9. dkist_processing_cryonirsp/tasks/write_l1.py +6 -16
  10. dkist_processing_cryonirsp/tests/conftest.py +13 -20
  11. dkist_processing_cryonirsp/tests/header_models.py +12 -0
  12. dkist_processing_cryonirsp/tests/local_trial_workflows/l0_cals_only.py +17 -17
  13. dkist_processing_cryonirsp/tests/local_trial_workflows/l0_to_l1.py +17 -19
  14. dkist_processing_cryonirsp/tests/local_trial_workflows/local_trial_helpers.py +3 -3
  15. dkist_processing_cryonirsp/tests/test_cryo_constants.py +4 -1
  16. dkist_processing_cryonirsp/tests/test_parameters.py +4 -0
  17. dkist_processing_cryonirsp/tests/test_parse.py +28 -2
  18. dkist_processing_cryonirsp/tests/{test_sp_dispersion_axis_correction.py → test_sp_wavelength_calibration.py} +6 -23
  19. dkist_processing_cryonirsp/tests/test_write_l1.py +15 -15
  20. dkist_processing_cryonirsp/workflows/ci_l0_processing.py +4 -1
  21. dkist_processing_cryonirsp/workflows/sp_l0_processing.py +7 -4
  22. dkist_processing_cryonirsp/workflows/trial_workflows.py +3 -3
  23. {dkist_processing_cryonirsp-1.8.3.dist-info → dkist_processing_cryonirsp-1.10.0rc1.dist-info}/METADATA +22 -21
  24. {dkist_processing_cryonirsp-1.8.3.dist-info → dkist_processing_cryonirsp-1.10.0rc1.dist-info}/RECORD +28 -26
  25. docs/index.rst +1 -0
  26. docs/wavelength_calibration.rst +62 -0
  27. dkist_processing_cryonirsp/tasks/sp_dispersion_axis_correction.py +0 -465
  28. {dkist_processing_cryonirsp-1.8.3.dist-info → dkist_processing_cryonirsp-1.10.0rc1.dist-info}/WHEEL +0 -0
  29. {dkist_processing_cryonirsp-1.8.3.dist-info → dkist_processing_cryonirsp-1.10.0rc1.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.0rc1
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.0rc1; 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,19 @@
1
1
  changelog/.gitempty,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
+ changelog/167.feature.rst,sha256=UDCWFhNjmut91SbtIICb3Y5_MiPJ4zSPc0chd6y8AJU,142
2
3
  dkist_processing_cryonirsp/__init__.py,sha256=Z6-kB7fXXUI-F7Vz1HnEaja2h8qgH9IZExRl1lUxvZg,350
3
- dkist_processing_cryonirsp/config.py,sha256=xNkUNJ1BeBxJX881mTCIEbirZlD5_5txpV1QqkbfRM0,507
4
+ dkist_processing_cryonirsp/config.py,sha256=DlU2dr_oORrwytQVmEUSg3IRPXxE4vhAWiCiw7ykvzo,641
4
5
  dkist_processing_cryonirsp/codecs/__init__.py,sha256=du1iitvsudSSOMENSywXmXSLOlvIocJsPbvfEcyqFNc,159
5
6
  dkist_processing_cryonirsp/codecs/fits.py,sha256=EAdPcqWXMEWtWnRDLH_LX20giPoLVfmKBawb9J2z0wM,1718
6
7
  dkist_processing_cryonirsp/models/__init__.py,sha256=m6UekKftTahNJ3W5K3mZSz4Y4ZZpHRxF_ZAxuaKYL7o,12
7
8
  dkist_processing_cryonirsp/models/beam_boundaries.py,sha256=FyiLd2iCWA6TUojeGaqQ_ULxvakDY13VxqUJVlmYvV0,1159
8
- dkist_processing_cryonirsp/models/constants.py,sha256=aKhSu4Hp0kKRgO6muMli2W4DC3zP0sEm4TzK--hyJXQ,11062
9
+ dkist_processing_cryonirsp/models/constants.py,sha256=rFCkE-bZhbCABKVtQom5iTfPgDqDzsKkrtTnngZExkM,11528
9
10
  dkist_processing_cryonirsp/models/exposure_conditions.py,sha256=slFq5-Qz4fRpJKDBabbm4evPWLQVYmT-Uf9rk7nI734,813
10
- dkist_processing_cryonirsp/models/parameters.py,sha256=icAnYJvVCSJiNoT9SuYTZfDx6imwcq7QwfCY3_qQAIY,13154
11
+ dkist_processing_cryonirsp/models/parameters.py,sha256=Yn6GPEGnMiQyEL9n2BPx9LIVWPSdVXmcIX9OzzDOvPc,13144
11
12
  dkist_processing_cryonirsp/models/tags.py,sha256=ac0MnYlsn8-w7IioOvWeo7mBaDKE9o9TlRpxCH1OsRc,5743
12
13
  dkist_processing_cryonirsp/models/task_name.py,sha256=xK4AKwgOx2uANbjhr0Q5Q3R9iPxLfkVKxWYY8wWjKhE,439
13
14
  dkist_processing_cryonirsp/parsers/__init__.py,sha256=m6UekKftTahNJ3W5K3mZSz4Y4ZZpHRxF_ZAxuaKYL7o,12
14
15
  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
16
+ dkist_processing_cryonirsp/parsers/cryonirsp_l0_fits_access.py,sha256=rMB4mrUGQnQ6nHEZVegkdGpnW4Q2iXG5YRAaAq9tOW4,5608
16
17
  dkist_processing_cryonirsp/parsers/cryonirsp_l1_fits_access.py,sha256=sc8MzxYMc8E1eFrL5KguAGHViCMJhaDfiBtZPml4ELg,886
17
18
  dkist_processing_cryonirsp/parsers/exposure_conditions.py,sha256=Mcud-0PQK0oJSxbqtQUtVk0t8b6YBEFSyGsGbG5UqGg,8445
18
19
  dkist_processing_cryonirsp/parsers/map_repeats.py,sha256=PjZ986bqkCdii-EOzU045cWqadxQC_nyyqwWYIpYdls,1566
@@ -23,7 +24,7 @@ dkist_processing_cryonirsp/parsers/polarimetric_check.py,sha256=HBzg9Zi9-M1M2jh4
23
24
  dkist_processing_cryonirsp/parsers/scan_step.py,sha256=7XNUq48qbdpV8GeaBeG9XFRDkYlgw8Fjd6ByFZ24OAc,18972
24
25
  dkist_processing_cryonirsp/parsers/time.py,sha256=dpajm3tfrih-8pjlOWOvZVJVP2FihR87HFQSjR_KPYI,2543
25
26
  dkist_processing_cryonirsp/parsers/wavelength.py,sha256=Ay5hZiDNV25-N_QXZINTCgn1ToiP2jvwumkbirBiJGk,883
26
- dkist_processing_cryonirsp/tasks/__init__.py,sha256=JyM9oA1A6t5sPsbaNmnK9_e6t00kUYzDZzqmSg0nVjE,1061
27
+ dkist_processing_cryonirsp/tasks/__init__.py,sha256=iSODAESNU6zBZo_t44LeTmS1oj_l6EVF7k8xSNtppnk,1057
27
28
  dkist_processing_cryonirsp/tasks/assemble_movie.py,sha256=UrxfKSsT3mBkV2LYvnePzKr9nXlvjpoa5amY5C3ftFI,7350
28
29
  dkist_processing_cryonirsp/tasks/bad_pixel_map.py,sha256=z-ACCwHqiRANsR7gkkCIycPpgOdR04Mo85WLAPiAJno,3961
29
30
  dkist_processing_cryonirsp/tasks/beam_boundaries_base.py,sha256=-sKmBDuNq22QZBe6Vdu5aaiOxeikM6bICpkZ4lBP--g,9688
@@ -36,21 +37,21 @@ dkist_processing_cryonirsp/tasks/instrument_polarization.py,sha256=xS2jcngnibDCL
36
37
  dkist_processing_cryonirsp/tasks/l1_output_data.py,sha256=3RFt493MEJxdpF81gcp8FDlQ8vGZ0GXEDYQFWIufumI,1554
37
38
  dkist_processing_cryonirsp/tasks/linearity_correction.py,sha256=n9vK9cT7NWkpAM9J6wOYDj95Kh0va_ot-hdncd7ye0Y,24199
38
39
  dkist_processing_cryonirsp/tasks/make_movie_frames.py,sha256=I7s3Tml6AevHci0kTPF71mNjXNl3wlG57Jh7ghnndeg,13928
39
- dkist_processing_cryonirsp/tasks/parse.py,sha256=5nkCjKeCi6oKHzBXmqs81yZwyRPBmIMmL8Lh53CEv4E,13114
40
+ dkist_processing_cryonirsp/tasks/parse.py,sha256=8efntsSPkNl_sokRU2SEStZBCRJvnXDsCelVumOUwH8,13824
40
41
  dkist_processing_cryonirsp/tasks/quality_metrics.py,sha256=jyx2YZzLb5sVxbJ_H6PaKQqZbyZy9QuuLqu18jsnncQ,11447
41
42
  dkist_processing_cryonirsp/tasks/science_base.py,sha256=YYUQUfLeuzDb6E5TecOH22orTN4-hWocoYaGOq6Zoro,18637
42
43
  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
44
  dkist_processing_cryonirsp/tasks/sp_geometric.py,sha256=_M_e_blz4mKDIUWSasonnOzbZ6EUbHp9pAZXQx4zY7U,24387
45
45
  dkist_processing_cryonirsp/tasks/sp_science.py,sha256=QWyAEkXYamAcWxi62-tVD6ptuQ6vt8yIzuCKzCIYW20,13643
46
46
  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
47
+ dkist_processing_cryonirsp/tasks/sp_wavelength_calibration.py,sha256=E9HBmlzvvUEgoAamlO-E0MngYKjuUVq3WwK0DRDLvPk,12843
48
+ dkist_processing_cryonirsp/tasks/write_l1.py,sha256=Jzg09WUYi8uY5o6By7JOsFP0CHpfPCVC4M2UvLSO2PA,41169
48
49
  dkist_processing_cryonirsp/tasks/mixin/__init__.py,sha256=m6UekKftTahNJ3W5K3mZSz4Y4ZZpHRxF_ZAxuaKYL7o,12
49
50
  dkist_processing_cryonirsp/tasks/mixin/corrections.py,sha256=rcKmckBJkoExcX0XW1i3OZzuMu1i7tX5Hgwy15chU50,6566
50
51
  dkist_processing_cryonirsp/tasks/mixin/shift_measurements.py,sha256=EbU3VQ_1QLbENHO_SfhWc7d573UwbofKU-PpbfBPKI8,11620
51
52
  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
53
+ dkist_processing_cryonirsp/tests/conftest.py,sha256=ThhhNZ61a-qRMiPEM7PgLwKTw9L4C5nh0IHLDnwtTRo,18016
54
+ dkist_processing_cryonirsp/tests/header_models.py,sha256=eQWRwJzWCIK8-ak1oLWf88u7eo7ERxPMrmQHuphUfX8,21115
54
55
  dkist_processing_cryonirsp/tests/test_assemble_movie.py,sha256=YNZINIFXR9kZBlE1AIvjlVmwwhZJeVYOOPk7Q8IVkcI,6222
55
56
  dkist_processing_cryonirsp/tests/test_assemble_qualilty.py,sha256=upk-oUqVBHGK3F0eemshLpAPrnfh9mbeuZXow4E1Rmc,16859
56
57
  dkist_processing_cryonirsp/tests/test_bad_pixel_maps.py,sha256=TsUIaCWQolOJCU2YOhxxmXWby6j3NhCkB2W2jDgb9OM,4855
@@ -58,33 +59,33 @@ dkist_processing_cryonirsp/tests/test_ci_beam_boundaries.py,sha256=h-v79qi4VohcX
58
59
  dkist_processing_cryonirsp/tests/test_ci_science.py,sha256=PryW50DZaKiTcLaSvhfaolrosXObj7-O1jweCJeLM_Y,14403
59
60
  dkist_processing_cryonirsp/tests/test_corrections.py,sha256=Q_prvaXKdmpebEa5d05s86pcGB9VTjsGB0g5AfEB2Ks,4536
60
61
  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
62
+ dkist_processing_cryonirsp/tests/test_cryo_constants.py,sha256=WP3cHUF7g9urUt_BuchkbG6ldjM07QltClxRPLnmjsw,3008
62
63
  dkist_processing_cryonirsp/tests/test_dark.py,sha256=9WQDoVw1qwaqK-iaVfjOKbIusr4SJrR1rGiPZAWhNIU,11669
63
64
  dkist_processing_cryonirsp/tests/test_gain.py,sha256=KAkIXJnifVx7CHnKBY-7EhhUi5b8t5U8wBOL9F8M0gM,11260
64
65
  dkist_processing_cryonirsp/tests/test_instrument_polarization.py,sha256=COiopx4ueVPeyQO12eVP125nqBrgsnCa0ddo8y6Qrxs,19711
65
66
  dkist_processing_cryonirsp/tests/test_linearity_correction.py,sha256=r1EwZsW1yO0B0ERGn1kDciZKvjipN_LVHFXR-XIJmP0,9350
66
67
  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
68
+ dkist_processing_cryonirsp/tests/test_parameters.py,sha256=hy0ssu2OJmkHFKlGd0_d6EW10YjWsqGb68rOFlPqGuo,11105
69
+ dkist_processing_cryonirsp/tests/test_parse.py,sha256=Ejullo7r7vR0zYRCd714z4berKwXrwSnv8xMVRVqNd4,57090
69
70
  dkist_processing_cryonirsp/tests/test_quality.py,sha256=qrJBYjnZOhmQ4vjDcDV3FVSUAdktFgs-pRaHX4cf2G0,8129
70
71
  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
72
  dkist_processing_cryonirsp/tests/test_sp_geometric.py,sha256=ZnusZvxsJ8YX-rg0R1azg7-DPr4vz5q2NE030bsuWXo,15691
73
73
  dkist_processing_cryonirsp/tests/test_sp_make_movie_frames.py,sha256=Kn8U_HzaaHW2bHmBxsotdjmpBhd_Ft6pLWhVsMWIJE8,5322
74
74
  dkist_processing_cryonirsp/tests/test_sp_science.py,sha256=fCmyXh27nxKU_N90yW1WqPGq1mZ6ODrw0UvtMB1elHI,19835
75
75
  dkist_processing_cryonirsp/tests/test_sp_solar.py,sha256=IdZZ2RvCwKk6_q_JKo93nFFk0HJ74yUxHxq9W1LppJE,10008
76
+ dkist_processing_cryonirsp/tests/test_sp_wavelength_calibration.py,sha256=SZMixYxMnIksvQpTiXt8MiwLbyZiDyKE6CW2vjl4af8,5666
76
77
  dkist_processing_cryonirsp/tests/test_trial_create_quality_report.py,sha256=x8dRAMyawQVYZQGsuO36DMZxK4L13hZBUn86qbhJiNk,2805
77
78
  dkist_processing_cryonirsp/tests/test_workflows.py,sha256=2a-TUMbVEyNjHYNyzo2UQMLg5PSaEx6iV9hOsGp-Mck,291
78
- dkist_processing_cryonirsp/tests/test_write_l1.py,sha256=VDSRU7j4eylYlmYQYKn32Od751NmG7qzhpoaFYFWQDM,17729
79
+ dkist_processing_cryonirsp/tests/test_write_l1.py,sha256=Ijf1Dxa-jCkMjEcPuSRbtCsFzfHH-nifn2AQ84qg1zg,17644
79
80
  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
81
+ dkist_processing_cryonirsp/tests/local_trial_workflows/l0_cals_only.py,sha256=jUC6EnzBLwso7DBCtmhTdPJw3zlrIJYW0KTKNlWgGAM,20088
82
+ dkist_processing_cryonirsp/tests/local_trial_workflows/l0_to_l1.py,sha256=Ab1IeXfys130jkRs0iNIPv2rZFXg-IDCNkK4Z_wdOuI,23909
82
83
  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
84
+ dkist_processing_cryonirsp/tests/local_trial_workflows/local_trial_helpers.py,sha256=DQDpjc6_I5o6dIPv5hK65oBKG0vksp9lY4k9A0hu1D4,20953
84
85
  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
86
+ dkist_processing_cryonirsp/workflows/ci_l0_processing.py,sha256=8-96ZWi_hnzsashkFaaK6YjO0CUk_2iO_gCoHTmGow8,3823
87
+ dkist_processing_cryonirsp/workflows/sp_l0_processing.py,sha256=TFycCbC_N3MhM0rEHpEPmKtfJLNaVY3csR6uDrRCKI4,4245
88
+ dkist_processing_cryonirsp/workflows/trial_workflows.py,sha256=eLrROaZiyZwn8ta34oSO06aH_D9VPoqWinjDMN-9VN4,8079
88
89
  docs/Makefile,sha256=qnlVz6PuBqE39NfHWuUnHhNEA-EFgT2-WJNNNy9ttfk,4598
89
90
  docs/bad_pixel_calibration.rst,sha256=bHRclUItBA1QbGlek36B1yN5WHN53WkfjKUvZaq_j2I,2452
90
91
  docs/beam_angle_calculation.rst,sha256=-yUPFRl6SbPBIj-wOwylEymQDMQnkay7kAIAiubpQT8,2941
@@ -92,7 +93,7 @@ docs/beam_boundary_computation.rst,sha256=khyc_uW5zII6c0vN1lOvrwMAr5WO1XFFIou3QB
92
93
  docs/changelog.rst,sha256=S2jPASsWlQxSlAPqdvNrYvhk9k3FcFWNXFNDYXBSjl4,120
93
94
  docs/ci_science_calibration.rst,sha256=6HLt4ljL49sYH_iFU-Nz8KSWLyS8h_SSkzgUv-LsfqM,1704
94
95
  docs/conf.py,sha256=cv1Gct6NbY_kxJEKqw-mMIoauxtWVZeNzRLFqX1_GUw,2038
95
- docs/index.rst,sha256=FZY5WfJ16HQyslyaJxgTLs6XCD73_aFFdH4CjzagNjs,445
96
+ docs/index.rst,sha256=l6vH2FhWpuz0X1SbgfaMBoCACMPRuhHCs9dTxW1Hcaw,472
96
97
  docs/l0_to_l1_cryonirsp_ci-full-trial.rst,sha256=-uhtnd51ttJYw9T5hs5A9HQWpXJkOJmvfXf1INFT3MI,582
97
98
  docs/l0_to_l1_cryonirsp_ci.rst,sha256=OhGTy9CBTqQJ04XhThTws8KBnGLFiP5vBX0DlX6NXKA,458
98
99
  docs/l0_to_l1_cryonirsp_sp-full-trial.rst,sha256=cKdRI7qVEVYsqqgYuL9nzqFP3uTR4cu305WfjmmyetY,582
@@ -104,8 +105,9 @@ docs/requirements.txt,sha256=Kbl_X4c7RQZw035YTeNB63We6I7pvXFU4T0Uflp2yDY,29
104
105
  docs/requirements_table.rst,sha256=FaqSag9kPi77gWPhzeo_tFEhRFjb3qUuNqqQe1K76NM,297
105
106
  docs/scientific_changelog.rst,sha256=01AWBSHg8zElnodCgAq-hMxhk9CkX5rtEENx4iz0sjI,300
106
107
  docs/sp_science_calibration.rst,sha256=XL-H_hyzqwPHYNW3j-muItX_hGqMi-gjFRQbHp60LlU,2997
108
+ docs/wavelength_calibration.rst,sha256=s7ds_QKlVJ68fdONSY3DOBvHHaQC0JR_D4goG_VVKWw,3457
107
109
  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,,
110
+ dkist_processing_cryonirsp-1.10.0rc1.dist-info/METADATA,sha256=aYUp1rzLQuMN0qnC4k9OdBurJb_iO0fLG_zfemf40hQ,22111
111
+ dkist_processing_cryonirsp-1.10.0rc1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
112
+ dkist_processing_cryonirsp-1.10.0rc1.dist-info/top_level.txt,sha256=Sm9b1ddKnsF9Bh3mqDOct1Sm7k8I9aN7vGHgpmu-MlQ,51
113
+ dkist_processing_cryonirsp-1.10.0rc1.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>`_.