dkist-processing-dlnirsp 0.32.1rc3__py3-none-any.whl → 0.32.3__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.
- dkist_processing_dlnirsp/models/fits_access.py +32 -0
- dkist_processing_dlnirsp/parsers/dlnirsp_l0_fits_access.py +35 -23
- dkist_processing_dlnirsp/parsers/task.py +2 -6
- dkist_processing_dlnirsp/parsers/time.py +2 -1
- dkist_processing_dlnirsp/parsers/wavelength.py +5 -1
- dkist_processing_dlnirsp/tasks/parse.py +21 -12
- dkist_processing_dlnirsp/tasks/science.py +7 -5
- dkist_processing_dlnirsp/tasks/write_l1.py +5 -4
- dkist_processing_dlnirsp/tests/local_trial_workflows/local_trial_dev_mockers.py +18 -16
- dkist_processing_dlnirsp/tests/local_trial_workflows/local_trial_helpers.py +2 -1
- dkist_processing_dlnirsp/tests/test_dlnirsp_fits_access.py +56 -3
- dkist_processing_dlnirsp/tests/test_linearity_correction.py +3 -2
- dkist_processing_dlnirsp/tests/test_parse.py +2 -1
- dkist_processing_dlnirsp/tests/test_science.py +7 -6
- {dkist_processing_dlnirsp-0.32.1rc3.dist-info → dkist_processing_dlnirsp-0.32.3.dist-info}/METADATA +69 -68
- {dkist_processing_dlnirsp-0.32.1rc3.dist-info → dkist_processing_dlnirsp-0.32.3.dist-info}/RECORD +19 -19
- changelog/113.misc.rst +0 -1
- {dkist_processing_dlnirsp-0.32.1rc3.dist-info → dkist_processing_dlnirsp-0.32.3.dist-info}/WHEEL +0 -0
- {dkist_processing_dlnirsp-0.32.1rc3.dist-info → dkist_processing_dlnirsp-0.32.3.dist-info}/entry_points.txt +0 -0
- {dkist_processing_dlnirsp-0.32.1rc3.dist-info → dkist_processing_dlnirsp-0.32.3.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"""DLNIRSP control of FITS key names and values."""
|
|
2
|
+
|
|
3
|
+
from enum import StrEnum
|
|
4
|
+
|
|
5
|
+
from dkist_processing_common.models.fits_access import MetadataKey
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class DlnirspMetadataKey(StrEnum):
|
|
9
|
+
"""Controlled list of names for FITS metadata header keys."""
|
|
10
|
+
|
|
11
|
+
crpix_1 = "CRPIX1"
|
|
12
|
+
crpix_2 = "CRPIX2"
|
|
13
|
+
modulator_spin_mode = "DLMOD"
|
|
14
|
+
camera_readout_mode = "DLCAMSMD"
|
|
15
|
+
num_frames_in_ramp = "DLCAMNS"
|
|
16
|
+
current_frame_in_ramp = "DLCAMCUR"
|
|
17
|
+
arm_id = "DLARMID"
|
|
18
|
+
camera_sample_sequence = "DLCAMSSQ"
|
|
19
|
+
polarimeter_mode = "DLPOLMD"
|
|
20
|
+
number_of_modulator_states = "DLNUMST"
|
|
21
|
+
modulator_state = "DLSTNUM"
|
|
22
|
+
num_mosaic_repeats = "DLMOSNRP"
|
|
23
|
+
mosaic_num = "DLCURMOS"
|
|
24
|
+
num_X_tiles = "DLNSSTPX"
|
|
25
|
+
X_tile_num = "DLCSTPX"
|
|
26
|
+
num_Y_tiles = "DLNSSTPY"
|
|
27
|
+
Y_tile_num = "DLCSTPY"
|
|
28
|
+
num_dither_steps = "DLDMODE"
|
|
29
|
+
dither_step = "DLCURSTP"
|
|
30
|
+
arm_position_mm = "DLARMPS"
|
|
31
|
+
grating_position_deg = "DLGRTAN"
|
|
32
|
+
grating_constant_inverse_mm = "DLGRTCN"
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
from astropy.io import fits
|
|
4
4
|
from dkist_processing_common.parsers.l0_fits_access import L0FitsAccess
|
|
5
5
|
|
|
6
|
+
from dkist_processing_dlnirsp.models.fits_access import DlnirspMetadataKey
|
|
7
|
+
|
|
6
8
|
|
|
7
9
|
class DlnirspRampFitsAccess(L0FitsAccess):
|
|
8
10
|
"""
|
|
@@ -30,12 +32,18 @@ class DlnirspRampFitsAccess(L0FitsAccess):
|
|
|
30
32
|
):
|
|
31
33
|
super().__init__(hdu=hdu, name=name, auto_squeeze=auto_squeeze)
|
|
32
34
|
|
|
33
|
-
self.modulator_spin_mode: str = self.header[
|
|
34
|
-
self.camera_readout_mode: str = self.header.get(
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
self.
|
|
38
|
-
self.
|
|
35
|
+
self.modulator_spin_mode: str = self.header[DlnirspMetadataKey.modulator_spin_mode]
|
|
36
|
+
self.camera_readout_mode: str = self.header.get(
|
|
37
|
+
DlnirspMetadataKey.camera_readout_mode, "DEFAULT_VISIBLE_CAMERA"
|
|
38
|
+
)
|
|
39
|
+
self.num_frames_in_ramp: int = self.header.get(DlnirspMetadataKey.num_frames_in_ramp, -99)
|
|
40
|
+
self.current_frame_in_ramp: int = self.header.get(
|
|
41
|
+
DlnirspMetadataKey.current_frame_in_ramp, -88
|
|
42
|
+
)
|
|
43
|
+
self.arm_id: str = self.header[DlnirspMetadataKey.arm_id]
|
|
44
|
+
self.camera_sample_sequence: str = self.header.get(
|
|
45
|
+
DlnirspMetadataKey.camera_sample_sequence, "VISIBLE_CAMERA_SEQUENCE"
|
|
46
|
+
)
|
|
39
47
|
|
|
40
48
|
|
|
41
49
|
class DlnirspL0FitsAccess(L0FitsAccess):
|
|
@@ -64,24 +72,28 @@ class DlnirspL0FitsAccess(L0FitsAccess):
|
|
|
64
72
|
):
|
|
65
73
|
super().__init__(hdu=hdu, name=name, auto_squeeze=auto_squeeze)
|
|
66
74
|
|
|
67
|
-
self.crpix_1: float = self.header[
|
|
68
|
-
self.crpix_2: float = self.header[
|
|
69
|
-
self.arm_id: str = self.header[
|
|
70
|
-
self.polarimeter_mode: str = self.header[
|
|
71
|
-
self.number_of_modulator_states: int = self.header[
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
self.
|
|
75
|
-
self.
|
|
76
|
-
self.
|
|
77
|
-
self.
|
|
78
|
-
self.
|
|
75
|
+
self.crpix_1: float = self.header[DlnirspMetadataKey.crpix_1]
|
|
76
|
+
self.crpix_2: float = self.header[DlnirspMetadataKey.crpix_2]
|
|
77
|
+
self.arm_id: str = self.header[DlnirspMetadataKey.arm_id]
|
|
78
|
+
self.polarimeter_mode: str = self.header[DlnirspMetadataKey.polarimeter_mode]
|
|
79
|
+
self.number_of_modulator_states: int = self.header[
|
|
80
|
+
DlnirspMetadataKey.number_of_modulator_states
|
|
81
|
+
]
|
|
82
|
+
self.modulator_state: int = self.header[DlnirspMetadataKey.modulator_state]
|
|
83
|
+
self.num_mosaic_repeats: int = self.header[DlnirspMetadataKey.num_mosaic_repeats]
|
|
84
|
+
self.mosaic_num: int = self.header[DlnirspMetadataKey.mosaic_num]
|
|
85
|
+
self.num_X_tiles: int = self.header[DlnirspMetadataKey.num_X_tiles]
|
|
86
|
+
self.X_tile_num: int = self.header[DlnirspMetadataKey.X_tile_num]
|
|
87
|
+
self.num_Y_tiles: int = self.header[DlnirspMetadataKey.num_Y_tiles]
|
|
88
|
+
self.Y_tile_num: int = self.header[DlnirspMetadataKey.Y_tile_num]
|
|
79
89
|
# DLDMODE is a bool in the header; the number of dither steps is either 1 or 2, corresponding to dither
|
|
80
90
|
# mode being True or False, respectively
|
|
81
|
-
self.num_dither_steps: int = int(self.header[
|
|
91
|
+
self.num_dither_steps: int = int(self.header[DlnirspMetadataKey.num_dither_steps]) + 1
|
|
82
92
|
# Same with DLCURSTP. We'll index the dither loop at 0 so `False` is the first step and `True` is the second
|
|
83
93
|
# Use `get` because this key only exists if DLDMODE is `True`
|
|
84
|
-
self.dither_step: int = int(self.header.get(
|
|
85
|
-
self.arm_position_mm: float = self.header[
|
|
86
|
-
self.grating_position_deg: float = self.header[
|
|
87
|
-
self.grating_constant_inverse_mm: float = self.header[
|
|
94
|
+
self.dither_step: int = int(self.header.get(DlnirspMetadataKey.dither_step, False))
|
|
95
|
+
self.arm_position_mm: float = self.header[DlnirspMetadataKey.arm_position_mm]
|
|
96
|
+
self.grating_position_deg: float = self.header[DlnirspMetadataKey.grating_position_deg]
|
|
97
|
+
self.grating_constant_inverse_mm: float = self.header[
|
|
98
|
+
DlnirspMetadataKey.grating_constant_inverse_mm
|
|
99
|
+
]
|
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
"""Custom parsers to identify task sub-groupings not captured by a single header key."""
|
|
2
2
|
|
|
3
|
-
from
|
|
4
|
-
|
|
5
|
-
from dkist_processing_common.models.flower_pot import SpilledDirt
|
|
3
|
+
from dkist_processing_common.models.fits_access import MetadataKey
|
|
6
4
|
from dkist_processing_common.models.tags import StemName
|
|
7
5
|
from dkist_processing_common.models.task_name import TaskName
|
|
8
|
-
from dkist_processing_common.parsers.near_bud import NearFloatBud
|
|
9
6
|
from dkist_processing_common.parsers.single_value_single_key_flower import (
|
|
10
7
|
SingleValueSingleKeyFlower,
|
|
11
8
|
)
|
|
12
|
-
from dkist_processing_common.parsers.unique_bud import UniqueBud
|
|
13
9
|
|
|
14
10
|
from dkist_processing_dlnirsp.parsers.dlnirsp_l0_fits_access import DlnirspL0FitsAccess
|
|
15
11
|
|
|
@@ -41,7 +37,7 @@ class DlnirspTaskTypeFlower(SingleValueSingleKeyFlower):
|
|
|
41
37
|
"""Flower to find the DLNIRSP task type."""
|
|
42
38
|
|
|
43
39
|
def __init__(self):
|
|
44
|
-
super().__init__(tag_stem_name=StemName.task.value, metadata_key=
|
|
40
|
+
super().__init__(tag_stem_name=StemName.task.value, metadata_key=MetadataKey.ip_task_type)
|
|
45
41
|
|
|
46
42
|
def setter(self, fits_obj: DlnirspL0FitsAccess):
|
|
47
43
|
"""
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
from typing import Hashable
|
|
4
4
|
|
|
5
|
+
from dkist_processing_common.models.fits_access import MetadataKey
|
|
5
6
|
from dkist_processing_common.models.flower_pot import Stem
|
|
6
7
|
from dkist_processing_common.models.task_name import TaskName
|
|
7
8
|
from dkist_processing_common.parsers.unique_bud import TaskUniqueBud
|
|
@@ -17,7 +18,7 @@ class DLnirspSolarGainIpStartTimeBud(TaskUniqueBud):
|
|
|
17
18
|
def __init__(self):
|
|
18
19
|
super().__init__(
|
|
19
20
|
constant_name=DlnirspBudName.solar_gain_ip_start_time.value,
|
|
20
|
-
metadata_key=
|
|
21
|
+
metadata_key=MetadataKey.ip_start_time,
|
|
21
22
|
ip_task_types=TaskName.solar_gain.value,
|
|
22
23
|
task_type_parsing_function=parse_header_ip_task,
|
|
23
24
|
)
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"""Bud to get the wavelength."""
|
|
2
2
|
|
|
3
|
+
from dkist_processing_common.models.fits_access import MetadataKey
|
|
3
4
|
from dkist_processing_common.models.flower_pot import SpilledDirt
|
|
4
5
|
from dkist_processing_common.parsers.unique_bud import UniqueBud
|
|
5
6
|
|
|
@@ -11,7 +12,10 @@ class ObserveWavelengthBud(UniqueBud):
|
|
|
11
12
|
"""Bud to find the wavelength."""
|
|
12
13
|
|
|
13
14
|
def __init__(self):
|
|
14
|
-
super().__init__(
|
|
15
|
+
super().__init__(
|
|
16
|
+
constant_name=DlnirspBudName.wavelength.value,
|
|
17
|
+
metadata_key=MetadataKey.wavelength,
|
|
18
|
+
)
|
|
15
19
|
|
|
16
20
|
def setter(self, fits_obj: DlnirspL0FitsAccess):
|
|
17
21
|
"""
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
from typing import TypeVar
|
|
4
4
|
|
|
5
|
+
from dkist_processing_common.models.fits_access import MetadataKey
|
|
5
6
|
from dkist_processing_common.models.flower_pot import Stem
|
|
6
7
|
from dkist_processing_common.models.task_name import TaskName
|
|
7
8
|
from dkist_processing_common.parsers.cs_step import CSStepFlower
|
|
@@ -22,6 +23,7 @@ from dkist_processing_common.tasks import default_constant_bud_factory
|
|
|
22
23
|
from dkist_processing_common.tasks import default_tag_flower_factory
|
|
23
24
|
|
|
24
25
|
from dkist_processing_dlnirsp.models.constants import DlnirspBudName
|
|
26
|
+
from dkist_processing_dlnirsp.models.fits_access import DlnirspMetadataKey
|
|
25
27
|
from dkist_processing_dlnirsp.models.parameters import DlnirspParsingParameters
|
|
26
28
|
from dkist_processing_dlnirsp.models.tags import DlnirspStemName
|
|
27
29
|
from dkist_processing_dlnirsp.models.tags import DlnirspTag
|
|
@@ -72,7 +74,9 @@ class ParseL0DlnirspRampData(ParseDataBase):
|
|
|
72
74
|
# Time Obs is the unique identifier for each ramp in the data set
|
|
73
75
|
DlnirspTimeObsBud(),
|
|
74
76
|
# This is used to determine whether we need to do any linearity correction at all.
|
|
75
|
-
UniqueBud(
|
|
77
|
+
UniqueBud(
|
|
78
|
+
constant_name=DlnirspBudName.arm_id.value, metadata_key=DlnirspMetadataKey.arm_id
|
|
79
|
+
),
|
|
76
80
|
]
|
|
77
81
|
|
|
78
82
|
@property
|
|
@@ -81,12 +85,12 @@ class ParseL0DlnirspRampData(ParseDataBase):
|
|
|
81
85
|
return [
|
|
82
86
|
SingleValueSingleKeyFlower(
|
|
83
87
|
tag_stem_name=DlnirspStemName.current_frame_in_ramp.value,
|
|
84
|
-
metadata_key=
|
|
88
|
+
metadata_key=DlnirspMetadataKey.current_frame_in_ramp,
|
|
85
89
|
),
|
|
86
90
|
# time_obs is a unique identifier for all raw frames in a single ramp
|
|
87
91
|
SingleValueSingleKeyFlower(
|
|
88
92
|
tag_stem_name=DlnirspStemName.time_obs.value,
|
|
89
|
-
metadata_key=
|
|
93
|
+
metadata_key=MetadataKey.time_obs,
|
|
90
94
|
),
|
|
91
95
|
]
|
|
92
96
|
|
|
@@ -144,12 +148,13 @@ class ParseL0DlnirspLinearizedData(ParseDataBase):
|
|
|
144
148
|
DLnirspSolarGainIpStartTimeBud(),
|
|
145
149
|
NumCSStepBud(max_cs_step_time_sec=self.parameters.max_cs_step_time_sec),
|
|
146
150
|
UniqueBud(
|
|
147
|
-
constant_name=DlnirspBudName.polarimeter_mode.value,
|
|
151
|
+
constant_name=DlnirspBudName.polarimeter_mode.value,
|
|
152
|
+
metadata_key=DlnirspMetadataKey.polarimeter_mode,
|
|
148
153
|
),
|
|
149
154
|
RetarderNameBud(),
|
|
150
155
|
UniqueBud(
|
|
151
156
|
constant_name=DlnirspBudName.num_modstates.value,
|
|
152
|
-
metadata_key=
|
|
157
|
+
metadata_key=DlnirspMetadataKey.number_of_modulator_states,
|
|
153
158
|
),
|
|
154
159
|
NumMosaicRepeatsBud(
|
|
155
160
|
crpix_correction_method=self.parameters.wcs_crpix_correction_method,
|
|
@@ -189,20 +194,20 @@ class ParseL0DlnirspLinearizedData(ParseDataBase):
|
|
|
189
194
|
),
|
|
190
195
|
TaskNearFloatBud(
|
|
191
196
|
constant_name=DlnirspBudName.arm_position_mm.value,
|
|
192
|
-
metadata_key=
|
|
197
|
+
metadata_key=DlnirspMetadataKey.arm_position_mm,
|
|
193
198
|
ip_task_types=[TaskName.solar_gain.value, TaskName.observe.value],
|
|
194
199
|
tolerance=0.01,
|
|
195
200
|
task_type_parsing_function=parse_header_ip_task,
|
|
196
201
|
),
|
|
197
202
|
TaskUniqueBud(
|
|
198
203
|
constant_name=DlnirspBudName.grating_constant_inverse_mm.value,
|
|
199
|
-
metadata_key=
|
|
204
|
+
metadata_key=DlnirspMetadataKey.grating_constant_inverse_mm,
|
|
200
205
|
ip_task_types=[TaskName.solar_gain.value, TaskName.observe.value],
|
|
201
206
|
task_type_parsing_function=parse_header_ip_task,
|
|
202
207
|
),
|
|
203
208
|
TaskNearFloatBud(
|
|
204
209
|
constant_name=DlnirspBudName.grating_position_deg.value,
|
|
205
|
-
metadata_key=
|
|
210
|
+
metadata_key=DlnirspMetadataKey.grating_position_deg,
|
|
206
211
|
ip_task_types=[TaskName.solar_gain.value, TaskName.observe.value],
|
|
207
212
|
tolerance=0.01,
|
|
208
213
|
task_type_parsing_function=parse_header_ip_task,
|
|
@@ -216,14 +221,17 @@ class ParseL0DlnirspLinearizedData(ParseDataBase):
|
|
|
216
221
|
DlnirspTaskTypeFlower(),
|
|
217
222
|
PolcalTaskFlower(),
|
|
218
223
|
SingleValueSingleKeyFlower(
|
|
219
|
-
tag_stem_name=DlnirspStemName.arm_id.value,
|
|
224
|
+
tag_stem_name=DlnirspStemName.arm_id.value,
|
|
225
|
+
metadata_key=DlnirspMetadataKey.arm_id,
|
|
220
226
|
),
|
|
221
227
|
ExposureTimeFlower(),
|
|
222
228
|
SingleValueSingleKeyFlower(
|
|
223
|
-
tag_stem_name=DlnirspStemName.modstate.value,
|
|
229
|
+
tag_stem_name=DlnirspStemName.modstate.value,
|
|
230
|
+
metadata_key=DlnirspMetadataKey.modulator_state,
|
|
224
231
|
),
|
|
225
232
|
SingleValueSingleKeyFlower(
|
|
226
|
-
tag_stem_name=DlnirspStemName.mosaic_num.value,
|
|
233
|
+
tag_stem_name=DlnirspStemName.mosaic_num.value,
|
|
234
|
+
metadata_key=DlnirspMetadataKey.mosaic_num,
|
|
227
235
|
),
|
|
228
236
|
MosaicStepXFlower(
|
|
229
237
|
crpix_correction_method=self.parameters.wcs_crpix_correction_method,
|
|
@@ -234,7 +242,8 @@ class ParseL0DlnirspLinearizedData(ParseDataBase):
|
|
|
234
242
|
bin_crpix_to_multiple_of=self.parameters.parse_bin_crpix_to_multiple_of,
|
|
235
243
|
),
|
|
236
244
|
SingleValueSingleKeyFlower(
|
|
237
|
-
tag_stem_name=DlnirspStemName.dither_step.value,
|
|
245
|
+
tag_stem_name=DlnirspStemName.dither_step.value,
|
|
246
|
+
metadata_key=DlnirspMetadataKey.dither_step,
|
|
238
247
|
),
|
|
239
248
|
CSStepFlower(max_cs_step_time_sec=self.parameters.max_cs_step_time_sec),
|
|
240
249
|
]
|
|
@@ -18,6 +18,7 @@ from dkist_processing_common.codecs.fits import fits_access_decoder
|
|
|
18
18
|
from dkist_processing_common.codecs.fits import fits_array_decoder
|
|
19
19
|
from dkist_processing_common.codecs.fits import fits_array_encoder
|
|
20
20
|
from dkist_processing_common.codecs.fits import fits_hdulist_encoder
|
|
21
|
+
from dkist_processing_common.models.fits_access import MetadataKey
|
|
21
22
|
from dkist_processing_common.models.tags import EXP_TIME_ROUND_DIGITS
|
|
22
23
|
from dkist_processing_common.models.task_name import TaskName
|
|
23
24
|
from dkist_processing_common.tasks.mixin.quality import QualityMixin
|
|
@@ -29,6 +30,7 @@ from dkist_processing_pac.optics.telescope import Telescope
|
|
|
29
30
|
from dkist_service_configuration.logging import logger
|
|
30
31
|
from scipy.spatial import Delaunay
|
|
31
32
|
|
|
33
|
+
from dkist_processing_dlnirsp.models.fits_access import DlnirspMetadataKey
|
|
32
34
|
from dkist_processing_dlnirsp.models.tags import DlnirspTag
|
|
33
35
|
from dkist_processing_dlnirsp.parsers.dlnirsp_l0_fits_access import DlnirspL0FitsAccess
|
|
34
36
|
from dkist_processing_dlnirsp.parsers.wcs_corrections import correct_crpix_values
|
|
@@ -738,7 +740,7 @@ class ScienceCalibration(
|
|
|
738
740
|
date_end = (Time(sorted_obj_list[-1].time_obs) + exp_time).isot
|
|
739
741
|
|
|
740
742
|
header = sorted_obj_list[0].header
|
|
741
|
-
header[
|
|
743
|
+
header[MetadataKey.time_obs] = date_beg
|
|
742
744
|
header["DATE-END"] = date_end
|
|
743
745
|
|
|
744
746
|
return header
|
|
@@ -773,13 +775,13 @@ class ScienceCalibration(
|
|
|
773
775
|
|
|
774
776
|
crpix_correction_method = self.parameters.wcs_crpix_correction_method
|
|
775
777
|
cached_info_logger(f"Applying CRPIX correction method '{crpix_correction_method}'")
|
|
776
|
-
OG_crpix1 = header[
|
|
777
|
-
OG_crpix2 = header[
|
|
778
|
+
OG_crpix1 = header[DlnirspMetadataKey.crpix_1]
|
|
779
|
+
OG_crpix2 = header[DlnirspMetadataKey.crpix_2]
|
|
778
780
|
|
|
779
781
|
new_crpix1, new_crpix2 = correct_crpix_values(OG_crpix1, OG_crpix2, crpix_correction_method)
|
|
780
782
|
|
|
781
|
-
header[
|
|
782
|
-
header[
|
|
783
|
+
header[DlnirspMetadataKey.crpix_1] = new_crpix1
|
|
784
|
+
header[DlnirspMetadataKey.crpix_2] = new_crpix2
|
|
783
785
|
|
|
784
786
|
return header
|
|
785
787
|
|
|
@@ -12,6 +12,7 @@ from dkist_processing_common.tasks import WriteL1Frame
|
|
|
12
12
|
from dkist_service_configuration.logging import logger
|
|
13
13
|
|
|
14
14
|
from dkist_processing_dlnirsp.models.constants import DlnirspConstants
|
|
15
|
+
from dkist_processing_dlnirsp.models.fits_access import DlnirspMetadataKey
|
|
15
16
|
from dkist_processing_dlnirsp.models.tags import DlnirspTag
|
|
16
17
|
|
|
17
18
|
cached_info_logger = cache(logger.info)
|
|
@@ -83,7 +84,7 @@ class DlnirspWriteL1Frame(WriteL1Frame):
|
|
|
83
84
|
header[f"DPNAME{axis_index}"] = "dither step"
|
|
84
85
|
header[f"DWNAME{axis_index}"] = "time"
|
|
85
86
|
header[f"DUNIT{axis_index}"] = "s"
|
|
86
|
-
header[f"DINDEX{axis_index}"] = int(header[
|
|
87
|
+
header[f"DINDEX{axis_index}"] = int(header[DlnirspMetadataKey.dither_step]) + 1
|
|
87
88
|
|
|
88
89
|
if self.constants.correct_for_polarization:
|
|
89
90
|
cached_info_logger("Polarimetric data detected")
|
|
@@ -211,7 +212,7 @@ class DlnirspWriteL1Frame(WriteL1Frame):
|
|
|
211
212
|
tile_as_temporal_axis = False
|
|
212
213
|
temporal_axis_size = num_mosaic_repeats
|
|
213
214
|
pname = "mosaic repeat number"
|
|
214
|
-
dindex = header[
|
|
215
|
+
dindex = header[DlnirspMetadataKey.mosaic_num]
|
|
215
216
|
|
|
216
217
|
elif num_mosaic_repeats == 1 and (
|
|
217
218
|
(num_X_tiles == 1 and num_Y_tiles == 1) or (num_X_tiles > 1 and num_Y_tiles > 1)
|
|
@@ -224,14 +225,14 @@ class DlnirspWriteL1Frame(WriteL1Frame):
|
|
|
224
225
|
tile_as_temporal_axis = True
|
|
225
226
|
temporal_axis_size = num_X_tiles
|
|
226
227
|
pname = "repeat number"
|
|
227
|
-
dindex = header[
|
|
228
|
+
dindex = header[DlnirspMetadataKey.X_tile_num]
|
|
228
229
|
|
|
229
230
|
elif num_mosaic_repeats == 1 and num_X_tiles == 1 and num_Y_tiles > 1:
|
|
230
231
|
has_temporal_axis = True
|
|
231
232
|
tile_as_temporal_axis = True
|
|
232
233
|
temporal_axis_size = num_Y_tiles
|
|
233
234
|
pname = "repeat number"
|
|
234
|
-
dindex = header[
|
|
235
|
+
dindex = header[DlnirspMetadataKey.Y_tile_num]
|
|
235
236
|
|
|
236
237
|
else:
|
|
237
238
|
raise ValueError(
|
|
@@ -9,6 +9,7 @@ from dkist_processing_common.codecs.fits import fits_array_decoder
|
|
|
9
9
|
from dkist_processing_common.codecs.fits import fits_array_encoder
|
|
10
10
|
from dkist_processing_common.codecs.fits import fits_hdulist_encoder
|
|
11
11
|
from dkist_processing_common.models.constants import BudName
|
|
12
|
+
from dkist_processing_common.models.fits_access import MetadataKey
|
|
12
13
|
from dkist_processing_common.models.task_name import TaskName
|
|
13
14
|
from dkist_processing_common.tasks import TransferTrialData
|
|
14
15
|
from dkist_processing_common.tasks import WorkflowTaskBase
|
|
@@ -17,6 +18,7 @@ from dkist_processing_math.statistics import average_numpy_arrays
|
|
|
17
18
|
from dkist_service_configuration.logging import logger
|
|
18
19
|
|
|
19
20
|
from dkist_processing_dlnirsp.models.constants import DlnirspBudName
|
|
21
|
+
from dkist_processing_dlnirsp.models.fits_access import DlnirspMetadataKey
|
|
20
22
|
from dkist_processing_dlnirsp.models.tags import DlnirspTag
|
|
21
23
|
from dkist_processing_dlnirsp.tasks import DlnirspWriteL1Frame
|
|
22
24
|
from dkist_processing_dlnirsp.tasks.dlnirsp_base import DlnirspTaskBase
|
|
@@ -87,7 +89,7 @@ def permissive_write_l1_task(force_intensity_only: bool):
|
|
|
87
89
|
self, header: fits.Header, stokes: Literal["I", "Q", "U", "V"]
|
|
88
90
|
) -> fits.Header:
|
|
89
91
|
if force_intensity_only:
|
|
90
|
-
header[
|
|
92
|
+
header[MetadataKey.polarimeter_mode] = "Stokes I"
|
|
91
93
|
|
|
92
94
|
return super().add_dataset_headers(header=header, stokes=stokes)
|
|
93
95
|
|
|
@@ -138,11 +140,11 @@ class TagPolcasAsScience(DlnirspTaskBase):
|
|
|
138
140
|
avg_array = average_numpy_arrays(arrays=arrays)
|
|
139
141
|
|
|
140
142
|
hdul = fits.HDUList([fits.PrimaryHDU(data=avg_array, header=first_header)])
|
|
141
|
-
hdul[0].header[
|
|
142
|
-
hdul[0].header[
|
|
143
|
-
hdul[0].header[
|
|
144
|
-
hdul[0].header[
|
|
145
|
-
hdul[0].header[
|
|
143
|
+
hdul[0].header[DlnirspMetadataKey.X_tile_num] = 1
|
|
144
|
+
hdul[0].header[DlnirspMetadataKey.Y_tile_num] = 1
|
|
145
|
+
hdul[0].header[DlnirspMetadataKey.num_mosaic_repeats] = self.constants.num_cs_steps
|
|
146
|
+
hdul[0].header[DlnirspMetadataKey.mosaic_num] = cs_step
|
|
147
|
+
hdul[0].header[MetadataKey.fpa_exposure_time_ms] = obs_exp_time
|
|
146
148
|
|
|
147
149
|
new_tags = [
|
|
148
150
|
DlnirspTag.task_observe(),
|
|
@@ -186,11 +188,11 @@ class TagSingleSolarGainAsScience(DlnirspTaskBase):
|
|
|
186
188
|
avg_array = average_numpy_arrays(arrays=arrays)
|
|
187
189
|
|
|
188
190
|
hdul = fits.HDUList([fits.PrimaryHDU(data=avg_array, header=first_header)])
|
|
189
|
-
hdul[0].header[
|
|
190
|
-
hdul[0].header[
|
|
191
|
-
hdul[0].header[
|
|
192
|
-
hdul[0].header[
|
|
193
|
-
hdul[0].header[
|
|
191
|
+
hdul[0].header[DlnirspMetadataKey.X_tile_num] = 1
|
|
192
|
+
hdul[0].header[DlnirspMetadataKey.Y_tile_num] = 1
|
|
193
|
+
hdul[0].header[DlnirspMetadataKey.num_mosaic_repeats] = 1
|
|
194
|
+
hdul[0].header[DlnirspMetadataKey.mosaic_num] = 0
|
|
195
|
+
hdul[0].header[DlnirspMetadataKey.num_dither_steps] = False
|
|
194
196
|
|
|
195
197
|
new_tags = [
|
|
196
198
|
DlnirspTag.task_observe(),
|
|
@@ -237,11 +239,11 @@ class TagModulatedSolarGainsAsScience(DlnirspTaskBase):
|
|
|
237
239
|
avg_array = average_numpy_arrays(arrays=arrays)
|
|
238
240
|
|
|
239
241
|
hdul = fits.HDUList([fits.PrimaryHDU(data=avg_array, header=first_header)])
|
|
240
|
-
hdul[0].header[
|
|
241
|
-
hdul[0].header[
|
|
242
|
-
hdul[0].header[
|
|
243
|
-
hdul[0].header[
|
|
244
|
-
hdul[0].header[
|
|
242
|
+
hdul[0].header[DlnirspMetadataKey.X_tile_num] = 1
|
|
243
|
+
hdul[0].header[DlnirspMetadataKey.Y_tile_num] = 1
|
|
244
|
+
hdul[0].header[DlnirspMetadataKey.num_mosaic_repeats] = 1
|
|
245
|
+
hdul[0].header[DlnirspMetadataKey.mosaic_num] = 0
|
|
246
|
+
hdul[0].header[DlnirspMetadataKey.num_dither_steps] = False
|
|
245
247
|
|
|
246
248
|
new_tags = [
|
|
247
249
|
DlnirspTag.task_observe(),
|
|
@@ -20,6 +20,7 @@ from loguru import logger
|
|
|
20
20
|
|
|
21
21
|
from dkist_processing_dlnirsp.models.constants import DlnirspBudName
|
|
22
22
|
from dkist_processing_dlnirsp.models.constants import DlnirspConstants
|
|
23
|
+
from dkist_processing_dlnirsp.models.fits_access import DlnirspMetadataKey
|
|
23
24
|
from dkist_processing_dlnirsp.models.tags import DlnirspTag
|
|
24
25
|
from dkist_processing_dlnirsp.models.task_name import DlnirspTaskName
|
|
25
26
|
from dkist_processing_dlnirsp.tasks.dlnirsp_base import DlnirspTaskBase
|
|
@@ -38,7 +39,7 @@ def get_camera_number(scratch_dir: Path, suffix: str = "FITS", data_ext: int = 1
|
|
|
38
39
|
header_list = [fits.getheader(f, ext=data_ext) for f in file_list]
|
|
39
40
|
table = Table(header_list)
|
|
40
41
|
|
|
41
|
-
camera_IDs = np.unique(table[
|
|
42
|
+
camera_IDs = np.unique(table[DlnirspMetadataKey.arm_id])
|
|
42
43
|
if camera_IDs.size > 1:
|
|
43
44
|
raise ValueError(f"Found more than one arm in scratch dir. Found {camera_IDs}")
|
|
44
45
|
|
|
@@ -2,8 +2,10 @@ import pytest
|
|
|
2
2
|
from astropy.io import fits
|
|
3
3
|
from dkist_header_validator.translator import translate_spec122_to_spec214_l0
|
|
4
4
|
|
|
5
|
+
from dkist_processing_dlnirsp.models.fits_access import DlnirspMetadataKey
|
|
5
6
|
from dkist_processing_dlnirsp.parsers.dlnirsp_l0_fits_access import DlnirspL0FitsAccess
|
|
6
7
|
from dkist_processing_dlnirsp.parsers.dlnirsp_l0_fits_access import DlnirspRampFitsAccess
|
|
8
|
+
from dkist_processing_dlnirsp.parsers.dlnirsp_l1_fits_acess import DlnirspL1FitsAccess
|
|
7
9
|
from dkist_processing_dlnirsp.tests.conftest import DlnirspHeaders
|
|
8
10
|
|
|
9
11
|
|
|
@@ -48,9 +50,11 @@ def test_dlnirsp_ramp_fits_access(ramp_header, arm_id):
|
|
|
48
50
|
assert fits_obj.current_frame_in_ramp == -88
|
|
49
51
|
|
|
50
52
|
else:
|
|
51
|
-
assert fits_obj.camera_readout_mode == ramp_header[
|
|
52
|
-
assert fits_obj.num_frames_in_ramp == ramp_header[
|
|
53
|
-
assert
|
|
53
|
+
assert fits_obj.camera_readout_mode == ramp_header[DlnirspMetadataKey.camera_readout_mode]
|
|
54
|
+
assert fits_obj.num_frames_in_ramp == ramp_header[DlnirspMetadataKey.num_frames_in_ramp]
|
|
55
|
+
assert (
|
|
56
|
+
fits_obj.current_frame_in_ramp == ramp_header[DlnirspMetadataKey.current_frame_in_ramp]
|
|
57
|
+
)
|
|
54
58
|
|
|
55
59
|
|
|
56
60
|
@pytest.mark.parametrize(
|
|
@@ -74,3 +78,52 @@ def test_dlnirsp_l0_fits_access(dither_header, dither_mode_on, dither_step):
|
|
|
74
78
|
assert fits_obj.dither_step is 0
|
|
75
79
|
else:
|
|
76
80
|
assert fits_obj.dither_step == int(dither_step)
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
@pytest.mark.parametrize("arm_id", [pytest.param("VIS", id="vis_arm")])
|
|
84
|
+
def test_metadata_keys_in_access_bases(ramp_header, arm_id):
|
|
85
|
+
"""
|
|
86
|
+
Given: the set of metadata key names in DlnirspMetadataKey
|
|
87
|
+
When: the Dlnirsp FITS access classes define a set of new attributes
|
|
88
|
+
Then: the sets are the same and the attributes have the correct values
|
|
89
|
+
"""
|
|
90
|
+
dlnirsp_metadata_key_names = {dmk.name for dmk in DlnirspMetadataKey}
|
|
91
|
+
all_dlnirsp_fits_access_attrs = set()
|
|
92
|
+
for access_class in [DlnirspRampFitsAccess, DlnirspL0FitsAccess, DlnirspL1FitsAccess]:
|
|
93
|
+
fits_obj = access_class.from_header(ramp_header)
|
|
94
|
+
dlnirsp_instance_attrs = set(vars(fits_obj).keys())
|
|
95
|
+
parent_class = access_class.mro()[1]
|
|
96
|
+
parent_fits_obj = parent_class.from_header(ramp_header)
|
|
97
|
+
parent_instance_attrs = set(vars(parent_fits_obj).keys())
|
|
98
|
+
dlnirsp_fits_access_attrs = dlnirsp_instance_attrs - parent_instance_attrs
|
|
99
|
+
for attr in dlnirsp_fits_access_attrs:
|
|
100
|
+
match attr:
|
|
101
|
+
case "num_frames_in_ramp":
|
|
102
|
+
assert getattr(fits_obj, attr) == fits_obj.header.get(
|
|
103
|
+
DlnirspMetadataKey[attr], -99
|
|
104
|
+
)
|
|
105
|
+
case "current_frame_in_ramp":
|
|
106
|
+
assert getattr(fits_obj, attr) == fits_obj.header.get(
|
|
107
|
+
DlnirspMetadataKey[attr], -88
|
|
108
|
+
)
|
|
109
|
+
case "camera_sample_sequence":
|
|
110
|
+
assert getattr(fits_obj, attr) == fits_obj.header.get(
|
|
111
|
+
DlnirspMetadataKey[attr], "VISIBLE_CAMERA_SEQUENCE"
|
|
112
|
+
)
|
|
113
|
+
case "camera_readout_mode":
|
|
114
|
+
assert getattr(fits_obj, attr) == fits_obj.header.get(
|
|
115
|
+
DlnirspMetadataKey[attr], "DEFAULT_VISIBLE_CAMERA"
|
|
116
|
+
)
|
|
117
|
+
case "num_dither_steps":
|
|
118
|
+
assert (
|
|
119
|
+
getattr(fits_obj, attr)
|
|
120
|
+
== int(fits_obj.header[DlnirspMetadataKey[attr]]) + 1
|
|
121
|
+
)
|
|
122
|
+
case "dither_step":
|
|
123
|
+
assert getattr(fits_obj, attr) == int(
|
|
124
|
+
fits_obj.header.get(DlnirspMetadataKey[attr], False)
|
|
125
|
+
)
|
|
126
|
+
case _:
|
|
127
|
+
assert getattr(fits_obj, attr) == fits_obj.header[DlnirspMetadataKey[attr]]
|
|
128
|
+
all_dlnirsp_fits_access_attrs |= dlnirsp_fits_access_attrs
|
|
129
|
+
assert dlnirsp_metadata_key_names == all_dlnirsp_fits_access_attrs
|
|
@@ -10,6 +10,7 @@ from astropy.time import Time
|
|
|
10
10
|
from astropy.time import TimeDelta
|
|
11
11
|
from dkist_processing_common._util.scratch import WorkflowFileSystem
|
|
12
12
|
from dkist_processing_common.models.fits_access import FitsAccessBase
|
|
13
|
+
from dkist_processing_common.models.fits_access import MetadataKey
|
|
13
14
|
from dkist_processing_common.models.task_name import TaskName
|
|
14
15
|
from dkist_service_configuration.logging import logger
|
|
15
16
|
from scipy.optimize import fsolve
|
|
@@ -414,8 +415,8 @@ def test_linearity_correction(
|
|
|
414
415
|
np.testing.assert_allclose(data, expected_value, rtol=1e-13)
|
|
415
416
|
|
|
416
417
|
header = fits.getheader(files[0])
|
|
417
|
-
assert header[
|
|
418
|
-
assert header[
|
|
418
|
+
assert header[MetadataKey.fpa_exposure_time_ms] == expected_total_exp
|
|
419
|
+
assert header[MetadataKey.sensor_readout_exposure_time_ms] == expected_NDR_exp
|
|
419
420
|
|
|
420
421
|
|
|
421
422
|
def test_VIS_linearity_correction(
|
|
@@ -11,6 +11,7 @@ from dkist_processing_common.models.constants import BudName
|
|
|
11
11
|
from dkist_processing_common.models.task_name import TaskName
|
|
12
12
|
|
|
13
13
|
from dkist_processing_dlnirsp.models.constants import DlnirspBudName
|
|
14
|
+
from dkist_processing_dlnirsp.models.fits_access import DlnirspMetadataKey
|
|
14
15
|
from dkist_processing_dlnirsp.models.parameters import DlnirspParsingParameters
|
|
15
16
|
from dkist_processing_dlnirsp.models.tags import DlnirspStemName
|
|
16
17
|
from dkist_processing_dlnirsp.models.tags import DlnirspTag
|
|
@@ -123,7 +124,7 @@ def test_parse_ramp_data(raw_ramp_parse_task, arm_id):
|
|
|
123
124
|
)
|
|
124
125
|
assert len(fits_obj_list) == num_line + num_read + num_reset
|
|
125
126
|
for fits_obj in fits_obj_list:
|
|
126
|
-
header_curr_frame = fits_obj.header[
|
|
127
|
+
header_curr_frame = fits_obj.header[DlnirspMetadataKey.current_frame_in_ramp]
|
|
127
128
|
tags = task.tags(fits_obj.name)
|
|
128
129
|
tag_curr_frame = [
|
|
129
130
|
int(t.split("_")[-1])
|
|
@@ -9,6 +9,7 @@ from dkist_processing_common._util.scratch import WorkflowFileSystem
|
|
|
9
9
|
from dkist_processing_common.codecs.fits import fits_array_encoder
|
|
10
10
|
from dkist_processing_common.models.task_name import TaskName
|
|
11
11
|
|
|
12
|
+
from dkist_processing_dlnirsp.models.fits_access import DlnirspMetadataKey
|
|
12
13
|
from dkist_processing_dlnirsp.models.parameters import DlnirspParameters
|
|
13
14
|
from dkist_processing_dlnirsp.models.tags import DlnirspTag
|
|
14
15
|
from dkist_processing_dlnirsp.tasks.science import CalibrationCollection
|
|
@@ -370,8 +371,8 @@ def test_science_task_completes(science_task_with_data, is_polarimetric, mocker,
|
|
|
370
371
|
OG_PC_ij_matrix[1, 0] = obs_header["PC2_1"]
|
|
371
372
|
OG_PC_ij_matrix[1, 1] = obs_header["PC2_2"]
|
|
372
373
|
|
|
373
|
-
OG_CRPIX1 = obs_header[
|
|
374
|
-
OG_CRPIX2 = obs_header[
|
|
374
|
+
OG_CRPIX1 = obs_header[DlnirspMetadataKey.crpix_1]
|
|
375
|
+
OG_CRPIX2 = obs_header[DlnirspMetadataKey.crpix_2]
|
|
375
376
|
|
|
376
377
|
expected_WCS_values = compute_expected_WCS_values(
|
|
377
378
|
OG_PC_ij_matrix, OG_CRPIX1, OG_CRPIX2, task.parameters
|
|
@@ -405,8 +406,8 @@ def test_science_task_completes(science_task_with_data, is_polarimetric, mocker,
|
|
|
405
406
|
assert "DATE-END" in header
|
|
406
407
|
# Need to check inequality because some randomness is added to the CRPIX
|
|
407
408
|
# values in `ModulatedObserveHeaders`.
|
|
408
|
-
assert header[
|
|
409
|
-
assert header[
|
|
409
|
+
assert header[DlnirspMetadataKey.crpix_1] - expected_CRPIX1 < 3
|
|
410
|
+
assert header[DlnirspMetadataKey.crpix_2] - expected_CRPIX2 < 3
|
|
410
411
|
assert header["PC1_1"] == expected_PC_ij_matrix[0, 0]
|
|
411
412
|
assert header["PC1_2"] == expected_PC_ij_matrix[0, 1]
|
|
412
413
|
assert header["PC2_1"] == expected_PC_ij_matrix[1, 0]
|
|
@@ -560,5 +561,5 @@ def test_WCS_correction(science_task_with_no_data, pc_correction_matrix, crpix_m
|
|
|
560
561
|
assert corrected_header["PC1_2"] == expected_pc_matrix[0, 1]
|
|
561
562
|
assert corrected_header["PC2_1"] == expected_pc_matrix[1, 0]
|
|
562
563
|
assert corrected_header["PC2_2"] == expected_pc_matrix[1, 1]
|
|
563
|
-
assert corrected_header[
|
|
564
|
-
assert corrected_header[
|
|
564
|
+
assert corrected_header[DlnirspMetadataKey.crpix_1] == expected_crpix1
|
|
565
|
+
assert corrected_header[DlnirspMetadataKey.crpix_2] == expected_crpix2
|
{dkist_processing_dlnirsp-0.32.1rc3.dist-info → dkist_processing_dlnirsp-0.32.3.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dkist-processing-dlnirsp
|
|
3
|
-
Version: 0.32.
|
|
3
|
+
Version: 0.32.3
|
|
4
4
|
Summary: Science processing code for the DLNIRSP 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.
|
|
16
|
+
Requires-Dist: dkist-processing-common==11.8.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
|
|
@@ -43,10 +43,10 @@ Requires-Dist: dkist-processing-dlnirsp[asdf]; extra == "test"
|
|
|
43
43
|
Requires-Dist: dkist-processing-dlnirsp[quality]; extra == "test"
|
|
44
44
|
Provides-Extra: inventory
|
|
45
45
|
Requires-Dist: dkist-processing-common[inventory]; extra == "inventory"
|
|
46
|
-
Requires-Dist: dkist-inventory==1.
|
|
46
|
+
Requires-Dist: dkist-inventory==1.11.1; extra == "inventory"
|
|
47
47
|
Provides-Extra: asdf
|
|
48
48
|
Requires-Dist: dkist-processing-common[asdf]; extra == "asdf"
|
|
49
|
-
Requires-Dist: dkist-inventory[asdf]==1.
|
|
49
|
+
Requires-Dist: dkist-inventory[asdf]==1.11.1; extra == "asdf"
|
|
50
50
|
Provides-Extra: quality
|
|
51
51
|
Requires-Dist: dkist-quality==2.0.0; extra == "quality"
|
|
52
52
|
Provides-Extra: grogu
|
|
@@ -65,7 +65,7 @@ Requires-Dist: towncrier; extra == "docs"
|
|
|
65
65
|
Requires-Dist: dkist-sphinx-theme; extra == "docs"
|
|
66
66
|
Provides-Extra: frozen
|
|
67
67
|
Requires-Dist: ConfigUpdater==3.2; extra == "frozen"
|
|
68
|
-
Requires-Dist: Deprecated==1.
|
|
68
|
+
Requires-Dist: Deprecated==1.3.1; extra == "frozen"
|
|
69
69
|
Requires-Dist: Flask==2.2.5; extra == "frozen"
|
|
70
70
|
Requires-Dist: Flask-AppBuilder==4.5.3; extra == "frozen"
|
|
71
71
|
Requires-Dist: Flask-Babel==2.0.0; extra == "frozen"
|
|
@@ -76,6 +76,7 @@ Requires-Dist: Flask-Login==0.6.3; extra == "frozen"
|
|
|
76
76
|
Requires-Dist: Flask-SQLAlchemy==2.5.1; extra == "frozen"
|
|
77
77
|
Requires-Dist: Flask-Session==0.5.0; extra == "frozen"
|
|
78
78
|
Requires-Dist: Flask-WTF==1.2.2; extra == "frozen"
|
|
79
|
+
Requires-Dist: ImageIO==2.37.2; extra == "frozen"
|
|
79
80
|
Requires-Dist: Jinja2==3.1.6; extra == "frozen"
|
|
80
81
|
Requires-Dist: Mako==1.3.10; extra == "frozen"
|
|
81
82
|
Requires-Dist: MarkupSafe==3.0.3; extra == "frozen"
|
|
@@ -90,66 +91,66 @@ Requires-Dist: WTForms==3.2.1; extra == "frozen"
|
|
|
90
91
|
Requires-Dist: Werkzeug==2.2.3; extra == "frozen"
|
|
91
92
|
Requires-Dist: aioftp==0.27.2; extra == "frozen"
|
|
92
93
|
Requires-Dist: aiohappyeyeballs==2.6.1; extra == "frozen"
|
|
93
|
-
Requires-Dist: aiohttp==3.13.
|
|
94
|
+
Requires-Dist: aiohttp==3.13.2; extra == "frozen"
|
|
94
95
|
Requires-Dist: aiosignal==1.4.0; extra == "frozen"
|
|
95
|
-
Requires-Dist: aiosmtplib==
|
|
96
|
-
Requires-Dist: alembic==1.
|
|
96
|
+
Requires-Dist: aiosmtplib==5.0.0; extra == "frozen"
|
|
97
|
+
Requires-Dist: alembic==1.17.1; extra == "frozen"
|
|
97
98
|
Requires-Dist: amqp==5.3.1; extra == "frozen"
|
|
98
99
|
Requires-Dist: annotated-types==0.7.0; extra == "frozen"
|
|
99
100
|
Requires-Dist: anyio==4.11.0; extra == "frozen"
|
|
100
101
|
Requires-Dist: apache-airflow==2.11.0; extra == "frozen"
|
|
101
102
|
Requires-Dist: apache-airflow-providers-celery==3.10.0; extra == "frozen"
|
|
102
|
-
Requires-Dist: apache-airflow-providers-common-compat==1.
|
|
103
|
-
Requires-Dist: apache-airflow-providers-common-io==1.6.
|
|
104
|
-
Requires-Dist: apache-airflow-providers-common-sql==1.28.
|
|
103
|
+
Requires-Dist: apache-airflow-providers-common-compat==1.8.0; extra == "frozen"
|
|
104
|
+
Requires-Dist: apache-airflow-providers-common-io==1.6.4; extra == "frozen"
|
|
105
|
+
Requires-Dist: apache-airflow-providers-common-sql==1.28.2; extra == "frozen"
|
|
105
106
|
Requires-Dist: apache-airflow-providers-fab==1.5.3; extra == "frozen"
|
|
106
107
|
Requires-Dist: apache-airflow-providers-ftp==3.13.2; extra == "frozen"
|
|
107
|
-
Requires-Dist: apache-airflow-providers-http==5.
|
|
108
|
-
Requires-Dist: apache-airflow-providers-imap==3.9.
|
|
109
|
-
Requires-Dist: apache-airflow-providers-postgres==6.
|
|
108
|
+
Requires-Dist: apache-airflow-providers-http==5.4.0; extra == "frozen"
|
|
109
|
+
Requires-Dist: apache-airflow-providers-imap==3.9.3; extra == "frozen"
|
|
110
|
+
Requires-Dist: apache-airflow-providers-postgres==6.4.0; extra == "frozen"
|
|
110
111
|
Requires-Dist: apache-airflow-providers-smtp==2.3.1; extra == "frozen"
|
|
111
112
|
Requires-Dist: apache-airflow-providers-sqlite==4.1.2; extra == "frozen"
|
|
112
113
|
Requires-Dist: apispec==6.8.4; extra == "frozen"
|
|
113
|
-
Requires-Dist: argcomplete==3.6.
|
|
114
|
+
Requires-Dist: argcomplete==3.6.3; extra == "frozen"
|
|
114
115
|
Requires-Dist: asdf==3.5.0; extra == "frozen"
|
|
115
116
|
Requires-Dist: asdf_standard==1.4.0; extra == "frozen"
|
|
116
117
|
Requires-Dist: asdf_transform_schemas==0.6.0; extra == "frozen"
|
|
117
118
|
Requires-Dist: asgiref==3.10.0; extra == "frozen"
|
|
118
119
|
Requires-Dist: asteval==1.0.6; extra == "frozen"
|
|
119
120
|
Requires-Dist: astropy==7.0.2; extra == "frozen"
|
|
120
|
-
Requires-Dist: astropy-iers-data==0.2025.
|
|
121
|
+
Requires-Dist: astropy-iers-data==0.2025.11.3.0.38.37; extra == "frozen"
|
|
121
122
|
Requires-Dist: asyncpg==0.30.0; extra == "frozen"
|
|
122
123
|
Requires-Dist: attrs==25.4.0; extra == "frozen"
|
|
123
124
|
Requires-Dist: babel==2.17.0; extra == "frozen"
|
|
124
125
|
Requires-Dist: billiard==4.2.2; extra == "frozen"
|
|
125
126
|
Requires-Dist: blinker==1.9.0; extra == "frozen"
|
|
126
|
-
Requires-Dist: boto3==1.40.
|
|
127
|
-
Requires-Dist: botocore==1.40.
|
|
127
|
+
Requires-Dist: boto3==1.40.65; extra == "frozen"
|
|
128
|
+
Requires-Dist: botocore==1.40.65; extra == "frozen"
|
|
128
129
|
Requires-Dist: cachelib==0.13.0; extra == "frozen"
|
|
129
130
|
Requires-Dist: celery==5.3.1; extra == "frozen"
|
|
130
131
|
Requires-Dist: certifi==2025.10.5; extra == "frozen"
|
|
131
132
|
Requires-Dist: cffi==2.0.0; extra == "frozen"
|
|
132
|
-
Requires-Dist: charset-normalizer==3.4.
|
|
133
|
+
Requires-Dist: charset-normalizer==3.4.4; extra == "frozen"
|
|
133
134
|
Requires-Dist: click==8.3.0; extra == "frozen"
|
|
134
135
|
Requires-Dist: click-didyoumean==0.3.1; extra == "frozen"
|
|
135
136
|
Requires-Dist: click-plugins==1.1.1.2; extra == "frozen"
|
|
136
137
|
Requires-Dist: click-repl==0.3.0; extra == "frozen"
|
|
137
138
|
Requires-Dist: clickclick==20.10.2; extra == "frozen"
|
|
138
139
|
Requires-Dist: colorama==0.4.6; extra == "frozen"
|
|
139
|
-
Requires-Dist: colorlog==6.
|
|
140
|
+
Requires-Dist: colorlog==6.10.1; extra == "frozen"
|
|
140
141
|
Requires-Dist: connexion==2.14.2; extra == "frozen"
|
|
141
142
|
Requires-Dist: contourpy==1.3.3; extra == "frozen"
|
|
142
143
|
Requires-Dist: cron_descriptor==2.0.6; extra == "frozen"
|
|
143
144
|
Requires-Dist: croniter==6.0.0; extra == "frozen"
|
|
144
|
-
Requires-Dist: cryptography==46.0.
|
|
145
|
+
Requires-Dist: cryptography==46.0.3; extra == "frozen"
|
|
145
146
|
Requires-Dist: cycler==0.12.1; extra == "frozen"
|
|
146
147
|
Requires-Dist: dacite==1.9.2; extra == "frozen"
|
|
147
148
|
Requires-Dist: decorator==5.2.1; extra == "frozen"
|
|
148
149
|
Requires-Dist: dill==0.4.0; extra == "frozen"
|
|
149
150
|
Requires-Dist: dkist-header-validator==5.2.1; extra == "frozen"
|
|
150
|
-
Requires-Dist: dkist-processing-common==11.
|
|
151
|
+
Requires-Dist: dkist-processing-common==11.8.0; extra == "frozen"
|
|
151
152
|
Requires-Dist: dkist-processing-core==6.0.0; extra == "frozen"
|
|
152
|
-
Requires-Dist: dkist-processing-dlnirsp==0.32.
|
|
153
|
+
Requires-Dist: dkist-processing-dlnirsp==0.32.3; extra == "frozen"
|
|
153
154
|
Requires-Dist: dkist-processing-math==2.2.1; extra == "frozen"
|
|
154
155
|
Requires-Dist: dkist-processing-pac==3.1.1; extra == "frozen"
|
|
155
156
|
Requires-Dist: dkist-service-configuration==4.1.7; extra == "frozen"
|
|
@@ -161,19 +162,19 @@ Requires-Dist: fastjsonschema==2.21.2; extra == "frozen"
|
|
|
161
162
|
Requires-Dist: flower==2.0.1; extra == "frozen"
|
|
162
163
|
Requires-Dist: fonttools==4.60.1; extra == "frozen"
|
|
163
164
|
Requires-Dist: frozenlist==1.8.0; extra == "frozen"
|
|
164
|
-
Requires-Dist: fsspec==2025.
|
|
165
|
+
Requires-Dist: fsspec==2025.10.0; extra == "frozen"
|
|
165
166
|
Requires-Dist: globus-sdk==3.65.0; extra == "frozen"
|
|
166
167
|
Requires-Dist: google-re2==1.1.20250805; extra == "frozen"
|
|
167
|
-
Requires-Dist: googleapis-common-protos==1.
|
|
168
|
+
Requires-Dist: googleapis-common-protos==1.71.0; extra == "frozen"
|
|
168
169
|
Requires-Dist: gqlclient==1.2.3; extra == "frozen"
|
|
169
|
-
Requires-Dist:
|
|
170
|
+
Requires-Dist: greenlet==3.2.4; extra == "frozen"
|
|
171
|
+
Requires-Dist: grpcio==1.76.0; extra == "frozen"
|
|
170
172
|
Requires-Dist: gunicorn==23.0.0; extra == "frozen"
|
|
171
173
|
Requires-Dist: h11==0.16.0; extra == "frozen"
|
|
172
174
|
Requires-Dist: httpcore==1.0.9; extra == "frozen"
|
|
173
175
|
Requires-Dist: httpx==0.28.1; extra == "frozen"
|
|
174
|
-
Requires-Dist: humanize==4.
|
|
175
|
-
Requires-Dist: idna==3.
|
|
176
|
-
Requires-Dist: imageio==2.37.0; extra == "frozen"
|
|
176
|
+
Requires-Dist: humanize==4.14.0; extra == "frozen"
|
|
177
|
+
Requires-Dist: idna==3.11; extra == "frozen"
|
|
177
178
|
Requires-Dist: imageio-ffmpeg==0.6.0; extra == "frozen"
|
|
178
179
|
Requires-Dist: importlib_metadata==8.7.0; extra == "frozen"
|
|
179
180
|
Requires-Dist: inflection==0.5.1; extra == "frozen"
|
|
@@ -181,9 +182,9 @@ Requires-Dist: itsdangerous==2.2.0; extra == "frozen"
|
|
|
181
182
|
Requires-Dist: jmespath==1.0.1; extra == "frozen"
|
|
182
183
|
Requires-Dist: jsonschema==4.25.1; extra == "frozen"
|
|
183
184
|
Requires-Dist: jsonschema-specifications==2025.9.1; extra == "frozen"
|
|
184
|
-
Requires-Dist: jupyter_core==5.
|
|
185
|
+
Requires-Dist: jupyter_core==5.9.1; extra == "frozen"
|
|
185
186
|
Requires-Dist: kiwisolver==1.4.9; extra == "frozen"
|
|
186
|
-
Requires-Dist: kombu==5.
|
|
187
|
+
Requires-Dist: kombu==5.6.0; extra == "frozen"
|
|
187
188
|
Requires-Dist: lazy-object-proxy==1.12.0; extra == "frozen"
|
|
188
189
|
Requires-Dist: lazy_loader==0.4; extra == "frozen"
|
|
189
190
|
Requires-Dist: limits==5.6.0; extra == "frozen"
|
|
@@ -208,40 +209,40 @@ 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==1.0.0; extra == "frozen"
|
|
211
|
-
Requires-Dist: opentelemetry-api==1.
|
|
212
|
-
Requires-Dist: opentelemetry-exporter-otlp==1.
|
|
213
|
-
Requires-Dist: opentelemetry-exporter-otlp-proto-common==1.
|
|
214
|
-
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc==1.
|
|
215
|
-
Requires-Dist: opentelemetry-exporter-otlp-proto-http==1.
|
|
216
|
-
Requires-Dist: opentelemetry-instrumentation==0.
|
|
217
|
-
Requires-Dist: opentelemetry-instrumentation-aiohttp-client==0.
|
|
218
|
-
Requires-Dist: opentelemetry-instrumentation-asgi==0.
|
|
219
|
-
Requires-Dist: opentelemetry-instrumentation-botocore==0.
|
|
220
|
-
Requires-Dist: opentelemetry-instrumentation-celery==0.
|
|
221
|
-
Requires-Dist: opentelemetry-instrumentation-dbapi==0.
|
|
222
|
-
Requires-Dist: opentelemetry-instrumentation-fastapi==0.
|
|
223
|
-
Requires-Dist: opentelemetry-instrumentation-pika==0.
|
|
224
|
-
Requires-Dist: opentelemetry-instrumentation-psycopg2==0.
|
|
225
|
-
Requires-Dist: opentelemetry-instrumentation-pymongo==0.
|
|
226
|
-
Requires-Dist: opentelemetry-instrumentation-redis==0.
|
|
227
|
-
Requires-Dist: opentelemetry-instrumentation-requests==0.
|
|
228
|
-
Requires-Dist: opentelemetry-instrumentation-sqlalchemy==0.
|
|
229
|
-
Requires-Dist: opentelemetry-instrumentation-system-metrics==0.
|
|
212
|
+
Requires-Dist: opentelemetry-api==1.38.0; extra == "frozen"
|
|
213
|
+
Requires-Dist: opentelemetry-exporter-otlp==1.38.0; extra == "frozen"
|
|
214
|
+
Requires-Dist: opentelemetry-exporter-otlp-proto-common==1.38.0; extra == "frozen"
|
|
215
|
+
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc==1.38.0; extra == "frozen"
|
|
216
|
+
Requires-Dist: opentelemetry-exporter-otlp-proto-http==1.38.0; extra == "frozen"
|
|
217
|
+
Requires-Dist: opentelemetry-instrumentation==0.59b0; extra == "frozen"
|
|
218
|
+
Requires-Dist: opentelemetry-instrumentation-aiohttp-client==0.59b0; extra == "frozen"
|
|
219
|
+
Requires-Dist: opentelemetry-instrumentation-asgi==0.59b0; extra == "frozen"
|
|
220
|
+
Requires-Dist: opentelemetry-instrumentation-botocore==0.59b0; extra == "frozen"
|
|
221
|
+
Requires-Dist: opentelemetry-instrumentation-celery==0.59b0; extra == "frozen"
|
|
222
|
+
Requires-Dist: opentelemetry-instrumentation-dbapi==0.59b0; extra == "frozen"
|
|
223
|
+
Requires-Dist: opentelemetry-instrumentation-fastapi==0.59b0; extra == "frozen"
|
|
224
|
+
Requires-Dist: opentelemetry-instrumentation-pika==0.59b0; extra == "frozen"
|
|
225
|
+
Requires-Dist: opentelemetry-instrumentation-psycopg2==0.59b0; extra == "frozen"
|
|
226
|
+
Requires-Dist: opentelemetry-instrumentation-pymongo==0.59b0; extra == "frozen"
|
|
227
|
+
Requires-Dist: opentelemetry-instrumentation-redis==0.59b0; extra == "frozen"
|
|
228
|
+
Requires-Dist: opentelemetry-instrumentation-requests==0.59b0; extra == "frozen"
|
|
229
|
+
Requires-Dist: opentelemetry-instrumentation-sqlalchemy==0.59b0; extra == "frozen"
|
|
230
|
+
Requires-Dist: opentelemetry-instrumentation-system-metrics==0.59b0; extra == "frozen"
|
|
230
231
|
Requires-Dist: opentelemetry-propagator-aws-xray==1.0.2; extra == "frozen"
|
|
231
|
-
Requires-Dist: opentelemetry-proto==1.
|
|
232
|
-
Requires-Dist: opentelemetry-sdk==1.
|
|
233
|
-
Requires-Dist: opentelemetry-semantic-conventions==0.
|
|
234
|
-
Requires-Dist: opentelemetry-util-http==0.
|
|
232
|
+
Requires-Dist: opentelemetry-proto==1.38.0; extra == "frozen"
|
|
233
|
+
Requires-Dist: opentelemetry-sdk==1.38.0; extra == "frozen"
|
|
234
|
+
Requires-Dist: opentelemetry-semantic-conventions==0.59b0; extra == "frozen"
|
|
235
|
+
Requires-Dist: opentelemetry-util-http==0.59b0; extra == "frozen"
|
|
235
236
|
Requires-Dist: ordered-set==4.1.0; extra == "frozen"
|
|
236
237
|
Requires-Dist: packaging==25.0; extra == "frozen"
|
|
237
238
|
Requires-Dist: pandas==2.3.3; extra == "frozen"
|
|
238
239
|
Requires-Dist: parfive==2.2.0; extra == "frozen"
|
|
239
|
-
Requires-Dist: pathlib_abc==0.5.
|
|
240
|
+
Requires-Dist: pathlib_abc==0.5.2; extra == "frozen"
|
|
240
241
|
Requires-Dist: pathspec==0.12.1; extra == "frozen"
|
|
241
242
|
Requires-Dist: pendulum==3.1.0; extra == "frozen"
|
|
242
243
|
Requires-Dist: pika==1.3.2; extra == "frozen"
|
|
243
244
|
Requires-Dist: pillow==10.4.0; extra == "frozen"
|
|
244
|
-
Requires-Dist: pip==25.
|
|
245
|
+
Requires-Dist: pip==25.3; extra == "frozen"
|
|
245
246
|
Requires-Dist: platformdirs==4.5.0; extra == "frozen"
|
|
246
247
|
Requires-Dist: pluggy==1.6.0; extra == "frozen"
|
|
247
248
|
Requires-Dist: pooch==1.8.2; extra == "frozen"
|
|
@@ -250,29 +251,29 @@ Requires-Dist: proglog==0.1.12; extra == "frozen"
|
|
|
250
251
|
Requires-Dist: prometheus_client==0.23.1; extra == "frozen"
|
|
251
252
|
Requires-Dist: prompt_toolkit==3.0.52; extra == "frozen"
|
|
252
253
|
Requires-Dist: propcache==0.4.1; extra == "frozen"
|
|
253
|
-
Requires-Dist: protobuf==6.
|
|
254
|
-
Requires-Dist: psutil==7.1.
|
|
255
|
-
Requires-Dist: psycopg2-binary==2.9.
|
|
254
|
+
Requires-Dist: protobuf==6.33.0; extra == "frozen"
|
|
255
|
+
Requires-Dist: psutil==7.1.3; extra == "frozen"
|
|
256
|
+
Requires-Dist: psycopg2-binary==2.9.11; extra == "frozen"
|
|
256
257
|
Requires-Dist: pycparser==2.23; extra == "frozen"
|
|
257
|
-
Requires-Dist: pydantic==2.12.
|
|
258
|
+
Requires-Dist: pydantic==2.12.3; extra == "frozen"
|
|
258
259
|
Requires-Dist: pydantic-settings==2.11.0; extra == "frozen"
|
|
259
|
-
Requires-Dist: pydantic_core==2.41.
|
|
260
|
+
Requires-Dist: pydantic_core==2.41.4; extra == "frozen"
|
|
260
261
|
Requires-Dist: pyerfa==2.0.1.5; extra == "frozen"
|
|
261
262
|
Requires-Dist: pyparsing==3.2.5; extra == "frozen"
|
|
262
263
|
Requires-Dist: python-daemon==3.1.2; extra == "frozen"
|
|
263
264
|
Requires-Dist: python-dateutil==2.9.0.post0; extra == "frozen"
|
|
264
|
-
Requires-Dist: python-dotenv==1.
|
|
265
|
+
Requires-Dist: python-dotenv==1.2.1; extra == "frozen"
|
|
265
266
|
Requires-Dist: python-nvd3==0.16.0; extra == "frozen"
|
|
266
267
|
Requires-Dist: python-slugify==8.0.4; extra == "frozen"
|
|
267
268
|
Requires-Dist: pytz==2025.2; extra == "frozen"
|
|
268
269
|
Requires-Dist: redis==6.4.0; extra == "frozen"
|
|
269
|
-
Requires-Dist: referencing==0.
|
|
270
|
+
Requires-Dist: referencing==0.37.0; extra == "frozen"
|
|
270
271
|
Requires-Dist: requests==2.32.5; extra == "frozen"
|
|
271
272
|
Requires-Dist: requests-toolbelt==1.0.0; extra == "frozen"
|
|
272
273
|
Requires-Dist: rfc3339-validator==0.1.4; extra == "frozen"
|
|
273
274
|
Requires-Dist: rich==13.9.4; extra == "frozen"
|
|
274
|
-
Requires-Dist: rich-argparse==1.7.
|
|
275
|
-
Requires-Dist: rpds-py==0.
|
|
275
|
+
Requires-Dist: rich-argparse==1.7.2; extra == "frozen"
|
|
276
|
+
Requires-Dist: rpds-py==0.28.0; extra == "frozen"
|
|
276
277
|
Requires-Dist: s3transfer==0.14.0; extra == "frozen"
|
|
277
278
|
Requires-Dist: scikit-image==0.25.2; extra == "frozen"
|
|
278
279
|
Requires-Dist: scipy==1.15.3; extra == "frozen"
|
|
@@ -287,9 +288,9 @@ Requires-Dist: sunpy==6.1.1; extra == "frozen"
|
|
|
287
288
|
Requires-Dist: tabulate==0.9.0; extra == "frozen"
|
|
288
289
|
Requires-Dist: talus==1.3.4; extra == "frozen"
|
|
289
290
|
Requires-Dist: tenacity==8.5.0; extra == "frozen"
|
|
290
|
-
Requires-Dist: termcolor==3.
|
|
291
|
+
Requires-Dist: termcolor==3.2.0; extra == "frozen"
|
|
291
292
|
Requires-Dist: text-unidecode==1.3; extra == "frozen"
|
|
292
|
-
Requires-Dist: tifffile==2025.10.
|
|
293
|
+
Requires-Dist: tifffile==2025.10.16; extra == "frozen"
|
|
293
294
|
Requires-Dist: tornado==6.5.2; extra == "frozen"
|
|
294
295
|
Requires-Dist: tqdm==4.67.1; extra == "frozen"
|
|
295
296
|
Requires-Dist: traitlets==5.14.3; extra == "frozen"
|
|
@@ -298,7 +299,7 @@ Requires-Dist: typing_extensions==4.15.0; extra == "frozen"
|
|
|
298
299
|
Requires-Dist: tzdata==2025.2; extra == "frozen"
|
|
299
300
|
Requires-Dist: uc-micro-py==1.0.3; extra == "frozen"
|
|
300
301
|
Requires-Dist: uncertainties==3.2.3; extra == "frozen"
|
|
301
|
-
Requires-Dist: universal_pathlib==0.3.
|
|
302
|
+
Requires-Dist: universal_pathlib==0.3.4; extra == "frozen"
|
|
302
303
|
Requires-Dist: urllib3==2.5.0; extra == "frozen"
|
|
303
304
|
Requires-Dist: vine==5.1.0; extra == "frozen"
|
|
304
305
|
Requires-Dist: voluptuous==0.15.2; extra == "frozen"
|
{dkist_processing_dlnirsp-0.32.1rc3.dist-info → dkist_processing_dlnirsp-0.32.3.dist-info}/RECORD
RENAMED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
changelog/.gitempty,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
changelog/113.misc.rst,sha256=YoX7N7k2NKgC-P0z-Aqv8D_Z07-XxhS0lzpm-rQVCdw,91
|
|
3
2
|
dkist_processing_dlnirsp/__init__.py,sha256=GQ9EBnYhkOnt-qODclAoLS_g5YVhurxfg1tjVtI9rDI,320
|
|
4
3
|
dkist_processing_dlnirsp/config.py,sha256=3jM7P00T-Xlzfnvc3jwRiFtinW5GoTczQ6qNLLpwQCo,624
|
|
5
4
|
dkist_processing_dlnirsp/dev_scripts/__init__.py,sha256=tITkbcFg1a-24sdFaWK8OyLrQSQk7AI6Ycs8PHHfHEM,83
|
|
6
5
|
dkist_processing_dlnirsp/dev_scripts/test_slitbeam_group_assignment.py,sha256=ac-8G-P2L_xW6m3tOooFlHs1N5_C6F_7k2VAU2a9_1A,4171
|
|
7
6
|
dkist_processing_dlnirsp/models/__init__.py,sha256=ItaZgbjndT5uwEv2YDQZCVAHGbiB_sjzkX8MMbIgcSo,45
|
|
8
7
|
dkist_processing_dlnirsp/models/constants.py,sha256=0TV_K6WbvUlDQdNRxx_qblQ_dwN7RGU7ng2iDOBQedo,6386
|
|
8
|
+
dkist_processing_dlnirsp/models/fits_access.py,sha256=iXaAxey-apXzj68b33-YLk7O7o0GtKAiJ_0JLoc6VOc,963
|
|
9
9
|
dkist_processing_dlnirsp/models/parameters.py,sha256=PsaZSNE4Uyov1xGMqRqh6kb5F8NnDDm3QRHkoiDAsYY,15812
|
|
10
10
|
dkist_processing_dlnirsp/models/tags.py,sha256=xD_XaCjMXmd70P0FoHy92XSdlabIk07RGVEyFpXpGfM,5791
|
|
11
11
|
dkist_processing_dlnirsp/models/task_name.py,sha256=LmEoI_h4UecvIMGcO5U8mGTqfToPjABuFbsYkC_rZyw,506
|
|
12
12
|
dkist_processing_dlnirsp/parsers/__init__.py,sha256=O6KcssCD39an60pqLISt1aHQ4u5ADg0TMNw1dB694Ug,81
|
|
13
|
-
dkist_processing_dlnirsp/parsers/dlnirsp_l0_fits_access.py,sha256=
|
|
13
|
+
dkist_processing_dlnirsp/parsers/dlnirsp_l0_fits_access.py,sha256=ziUeSWPOiFV0HdkCCfFZGPOZB-PB1OhK2qjYbVdsAb4,4314
|
|
14
14
|
dkist_processing_dlnirsp/parsers/dlnirsp_l1_fits_acess.py,sha256=K-9HRVZ02IUl0wRnhlTMnwSikTt7vYi_zSWYs0V_6-Y,878
|
|
15
15
|
dkist_processing_dlnirsp/parsers/mosaic.py,sha256=0z0sTbDQFhg2hyCp6hSKFpuaS-rOSUBvuBOT6mSSadA,31061
|
|
16
|
-
dkist_processing_dlnirsp/parsers/task.py,sha256=
|
|
17
|
-
dkist_processing_dlnirsp/parsers/time.py,sha256=
|
|
18
|
-
dkist_processing_dlnirsp/parsers/wavelength.py,sha256=
|
|
16
|
+
dkist_processing_dlnirsp/parsers/task.py,sha256=9_JzhqfU9os-6uUpn1FlNd2d1yWfD0dB4u0H0OruTbs,1619
|
|
17
|
+
dkist_processing_dlnirsp/parsers/time.py,sha256=DsnGxT4coH6FjiHsLr5gimW8lGExE5y_E6zzUH89HMM,2072
|
|
18
|
+
dkist_processing_dlnirsp/parsers/wavelength.py,sha256=CHZDFqOpzErhaR0MSbzQ6NiagdmkVkZ-6HWRERH5TNY,972
|
|
19
19
|
dkist_processing_dlnirsp/parsers/wcs_corrections.py,sha256=yeTLowmtAIs5sjNStIKmBTZUxttOtldJSeW_adsXFYQ,1786
|
|
20
20
|
dkist_processing_dlnirsp/tasks/__init__.py,sha256=6N5xdCM3FeTpzmBUgUnJ5mKF2N3vBfcj-SNqVQ9ZHiw,996
|
|
21
21
|
dkist_processing_dlnirsp/tasks/assemble_movie.py,sha256=BxUO7_Zj_QGLXqNpp87bLawyLo4G0I0DTLZPMXpi5Mo,5539
|
|
@@ -29,12 +29,12 @@ dkist_processing_dlnirsp/tasks/l1_output_data.py,sha256=Psta0476jih-cfmpdnzmquys
|
|
|
29
29
|
dkist_processing_dlnirsp/tasks/lamp.py,sha256=twoMHMnE2jm2OYxkeHFcjqcyQYVtEjSU2_z2mmn3Ybs,5390
|
|
30
30
|
dkist_processing_dlnirsp/tasks/linearity_correction.py,sha256=fz16nK5q7isKz9l7_AFeDkMTaX08omlusKoIDS8wj5k,21107
|
|
31
31
|
dkist_processing_dlnirsp/tasks/make_movie_frames.py,sha256=zxyAWNnPFbG7jpUEe3ekRyJGjk706T9a-yiA3eoWi5M,6290
|
|
32
|
-
dkist_processing_dlnirsp/tasks/parse.py,sha256
|
|
32
|
+
dkist_processing_dlnirsp/tasks/parse.py,sha256=ZtqM6dyxxnnbVTAun040EuxfQZEQcnkXzZffXSBTYkk,10919
|
|
33
33
|
dkist_processing_dlnirsp/tasks/quality_metrics.py,sha256=1ScLAinv3WG-0M7u_26gnogbJ_D84K9CP7eRvEuwb9E,7346
|
|
34
|
-
dkist_processing_dlnirsp/tasks/science.py,sha256=
|
|
34
|
+
dkist_processing_dlnirsp/tasks/science.py,sha256=sNI4AYO10qe3JL62KWXR87MnfX9m85Jo4_PkQ0qd5TQ,35737
|
|
35
35
|
dkist_processing_dlnirsp/tasks/solar.py,sha256=NyLYkRophfXaVtvnGuNEvkcE8JNcmCJVuobNYAZ7KjQ,11135
|
|
36
36
|
dkist_processing_dlnirsp/tasks/wavelength_calibration.py,sha256=6jidRwMbGoZcuVbnFv3IizEFFkGxHMTI249Q8pyVIUA,17023
|
|
37
|
-
dkist_processing_dlnirsp/tasks/write_l1.py,sha256=
|
|
37
|
+
dkist_processing_dlnirsp/tasks/write_l1.py,sha256=Smd9Fzp3Kx4F3nHYJJRAXqNy9n71TsYovuvFjLcUYs4,9732
|
|
38
38
|
dkist_processing_dlnirsp/tasks/mixin/__init__.py,sha256=5PMbkD6K0zTfhCxv8vg2lvJCNP81qItJ_R_7Yy3Mpwc,26
|
|
39
39
|
dkist_processing_dlnirsp/tasks/mixin/corrections.py,sha256=MRZXCEc0KBE-9cQUpRP-K3ioDYRH8_ORFlJcH2SsmWA,6803
|
|
40
40
|
dkist_processing_dlnirsp/tasks/mixin/group_id.py,sha256=u28XLVtvZ_lmzzaSX2SuA2MOiY69GC8AJsic2Vi2OSQ,11137
|
|
@@ -47,18 +47,18 @@ dkist_processing_dlnirsp/tests/test_corrections.py,sha256=hefVNm3bgwfGQ7Wn0hi077
|
|
|
47
47
|
dkist_processing_dlnirsp/tests/test_dark.py,sha256=qv7SvUNgafzfdyIW11I6eSFeaXjw34-9X1ipnqKE1cY,3726
|
|
48
48
|
dkist_processing_dlnirsp/tests/test_dlnirsp_base.py,sha256=PCFklqGEqrgIhTYcatu7RfOxr_b_XjHotc36MRbUvnk,1853
|
|
49
49
|
dkist_processing_dlnirsp/tests/test_dlnirsp_constants.py,sha256=RFNf-Hj835NlE45vygxh01kJm8YdCJJ3UUwzJRYJHE8,6411
|
|
50
|
-
dkist_processing_dlnirsp/tests/test_dlnirsp_fits_access.py,sha256=
|
|
50
|
+
dkist_processing_dlnirsp/tests/test_dlnirsp_fits_access.py,sha256=5C5NPOkNigoNhIFNUKyrJvyt_mRjke1tkfXQcv1cnPI,5639
|
|
51
51
|
dkist_processing_dlnirsp/tests/test_geometric.py,sha256=94RDg1mGEMTibD2oPOoCKil5yUQMp_0vO4cDWzG3644,7742
|
|
52
52
|
dkist_processing_dlnirsp/tests/test_group_id.py,sha256=TpNllN6OZuYF8almsayk7pRTc4J8TcLGp1SHCBG6QAU,6279
|
|
53
53
|
dkist_processing_dlnirsp/tests/test_ifu_drift.py,sha256=K6ushbVQVE6AATjiP3hEgF6oyZp41SbGkI_Sa_kyrNs,9066
|
|
54
54
|
dkist_processing_dlnirsp/tests/test_instrument_polarization_calibration.py,sha256=pPXjfzi3EcaawNqvXsz3OcCF1XITEJeCzQ8-iOjlm7U,23430
|
|
55
55
|
dkist_processing_dlnirsp/tests/test_lamp.py,sha256=umy4ydYR5M3dqXTQP14qbamOleutyD1jSj3325aitl0,3940
|
|
56
|
-
dkist_processing_dlnirsp/tests/test_linearity_correction.py,sha256
|
|
56
|
+
dkist_processing_dlnirsp/tests/test_linearity_correction.py,sha256=-XiA6uBxoESEFyyS538gFlAShD_NMkhshFVfpDg2xbY,28002
|
|
57
57
|
dkist_processing_dlnirsp/tests/test_make_movie_frames.py,sha256=fR1xJEFJMK0xUu8-EyOS_6mIX_ZO2J_nM0k3ud8xtYM,3648
|
|
58
58
|
dkist_processing_dlnirsp/tests/test_parameters.py,sha256=KpBeisM4BIF5Kl6ZxZqk3yCozndmLMlzNgo0ij0hmYw,10328
|
|
59
|
-
dkist_processing_dlnirsp/tests/test_parse.py,sha256=
|
|
59
|
+
dkist_processing_dlnirsp/tests/test_parse.py,sha256=Zp-LWUaiIfCJi2S3GX9DrrKg7hrRU1wnNgiFlJ-CJC8,38006
|
|
60
60
|
dkist_processing_dlnirsp/tests/test_quality.py,sha256=OBWva_E6T5RfDuo73LiTdTr7uh2FO04VpBAsSOLfjVQ,6122
|
|
61
|
-
dkist_processing_dlnirsp/tests/test_science.py,sha256=
|
|
61
|
+
dkist_processing_dlnirsp/tests/test_science.py,sha256=1DKqKNAEZEsVCffYz_TiEc2REG7cBIfGeig1kJK4ZtE,20902
|
|
62
62
|
dkist_processing_dlnirsp/tests/test_solar.py,sha256=jTNnxs5fE8R_hLvmdAU9x4RXJaSpJWGQajL7kzXTxPQ,12111
|
|
63
63
|
dkist_processing_dlnirsp/tests/test_trial_create_quality_report.py,sha256=3RUOVYs5b87oHZAXcd0cH_IX9qpL9gFhlcKBRr3ThXQ,2784
|
|
64
64
|
dkist_processing_dlnirsp/tests/test_wavelength_calibration.py,sha256=GFGXtl0KdClolknAwfR0aG5t-Ux5N5mynol4dKp0cn8,14830
|
|
@@ -69,8 +69,8 @@ dkist_processing_dlnirsp/tests/local_trial_workflows/l0_linearize_only.py,sha256
|
|
|
69
69
|
dkist_processing_dlnirsp/tests/local_trial_workflows/l0_polcals_as_science.py,sha256=ZDefUSKggIH2ebzUziQWU_A2yWeX68vjqzC11MNkzJU,19338
|
|
70
70
|
dkist_processing_dlnirsp/tests/local_trial_workflows/l0_solar_gain_as_science.py,sha256=Nv8qi-U2mUpWRn8rfx0ckn6v9OUGbfSND-fX9WVRaU0,20102
|
|
71
71
|
dkist_processing_dlnirsp/tests/local_trial_workflows/l0_to_l1.py,sha256=MfCqHOO9RC24FRqGUKfPiTGUZh7rft9NklYKej-oM00,17757
|
|
72
|
-
dkist_processing_dlnirsp/tests/local_trial_workflows/local_trial_dev_mockers.py,sha256=
|
|
73
|
-
dkist_processing_dlnirsp/tests/local_trial_workflows/local_trial_helpers.py,sha256=
|
|
72
|
+
dkist_processing_dlnirsp/tests/local_trial_workflows/local_trial_dev_mockers.py,sha256=zEnx_mOTwF8QRM8BZ2Nn0MntfFIkrMVQZDUbmqCmDJk,12191
|
|
73
|
+
dkist_processing_dlnirsp/tests/local_trial_workflows/local_trial_helpers.py,sha256=5abEDqLyJ1mH6RYlV6ReHOqUkUste0vC6raENFQeDNY,21375
|
|
74
74
|
dkist_processing_dlnirsp/tests/local_trial_workflows/translate_files.py,sha256=bsOqBtGE9SdOZL2ROJ-murJHjymYrE_nEPNHJgy7pDc,1882
|
|
75
75
|
dkist_processing_dlnirsp/workflows/__init__.py,sha256=bDRNGCIayR8Z-dcOClvk5nTmHgKORTrZUVX9e3UpCc8,165
|
|
76
76
|
dkist_processing_dlnirsp/workflows/l0_processing.py,sha256=qEBPV7xOacZTO3y4Pkjrxq1IxkOiPUPKjDHQ1xs98_M,4106
|
|
@@ -94,8 +94,8 @@ docs/science_calibration.rst,sha256=JUMeS7KyIsL9cUuy-IdV2tQ-wQ2lBx6j8u_51ThJzVg,
|
|
|
94
94
|
docs/scientific_changelog.rst,sha256=01AWBSHg8zElnodCgAq-hMxhk9CkX5rtEENx4iz0sjI,300
|
|
95
95
|
docs/wavelength_calibration.rst,sha256=VP45e0g4r-dReQmypQVqduvezQiKwq47STlAJn0w8iQ,4095
|
|
96
96
|
licenses/LICENSE.rst,sha256=piZaQplkzOMmH1NXg6QIdo9wwo9pPCoHkvm2-DmH76E,1462
|
|
97
|
-
dkist_processing_dlnirsp-0.32.
|
|
98
|
-
dkist_processing_dlnirsp-0.32.
|
|
99
|
-
dkist_processing_dlnirsp-0.32.
|
|
100
|
-
dkist_processing_dlnirsp-0.32.
|
|
101
|
-
dkist_processing_dlnirsp-0.32.
|
|
97
|
+
dkist_processing_dlnirsp-0.32.3.dist-info/METADATA,sha256=zWE2u7yocvTgqksWAwv_PMO1IfDwc3kca3TKQ79Vavo,29311
|
|
98
|
+
dkist_processing_dlnirsp-0.32.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
99
|
+
dkist_processing_dlnirsp-0.32.3.dist-info/entry_points.txt,sha256=p4-7cpIfxmQGFUDIP5n5noE5KADHN2-JvV03e0gOx9s,140
|
|
100
|
+
dkist_processing_dlnirsp-0.32.3.dist-info/top_level.txt,sha256=4WmLV9LQM78KTFnkHmtaOJvVHAPpz0m9ruzDS-B_cUo,49
|
|
101
|
+
dkist_processing_dlnirsp-0.32.3.dist-info/RECORD,,
|
changelog/113.misc.rst
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
Update `dkist-processing-common` to v11.7.0, which makes constants for the dataset extras.
|
{dkist_processing_dlnirsp-0.32.1rc3.dist-info → dkist_processing_dlnirsp-0.32.3.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|