dkist-processing-cryonirsp 1.4.12__py3-none-any.whl → 1.4.15__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.
- dkist_processing_cryonirsp/models/constants.py +22 -4
- dkist_processing_cryonirsp/parsers/check_for_gains.py +31 -16
- dkist_processing_cryonirsp/parsers/exposure_conditions.py +72 -15
- dkist_processing_cryonirsp/tasks/dark.py +10 -3
- dkist_processing_cryonirsp/tasks/parse.py +25 -11
- dkist_processing_cryonirsp/tests/conftest.py +8 -1
- dkist_processing_cryonirsp/tests/test_dark.py +2 -2
- dkist_processing_cryonirsp/tests/test_parse.py +59 -9
- dkist_processing_cryonirsp/workflows/ci_l0_processing.py +1 -2
- dkist_processing_cryonirsp/workflows/trial_workflows.py +1 -2
- {dkist_processing_cryonirsp-1.4.12.dist-info → dkist_processing_cryonirsp-1.4.15.dist-info}/METADATA +3 -3
- {dkist_processing_cryonirsp-1.4.12.dist-info → dkist_processing_cryonirsp-1.4.15.dist-info}/RECORD +14 -14
- {dkist_processing_cryonirsp-1.4.12.dist-info → dkist_processing_cryonirsp-1.4.15.dist-info}/WHEEL +0 -0
- {dkist_processing_cryonirsp-1.4.12.dist-info → dkist_processing_cryonirsp-1.4.15.dist-info}/top_level.txt +0 -0
|
@@ -32,10 +32,15 @@ class CryonirspBudName(Enum):
|
|
|
32
32
|
solar_gain_exposure_conditions_list = "SOLAR_GAIN_EXPOSURE_CONDITIONS_LIST"
|
|
33
33
|
polcal_exposure_conditions_list = "POLCAL_EXPOSURE_CONDITIONS_LIST"
|
|
34
34
|
observe_exposure_conditions_list = "OBSERVE_EXPOSURE_CONDITIONS_LIST"
|
|
35
|
-
|
|
36
|
-
"
|
|
35
|
+
sp_non_dark_and_non_polcal_task_exposure_conditions_list = (
|
|
36
|
+
"SP_NON_DARK_AND_NON_POLCAL_TASK_EXPOSURE_CONDITIONS_LIST"
|
|
37
|
+
)
|
|
38
|
+
ci_non_dark_and_non_polcal_and_non_lamp_gain_task_exposure_conditions_list = (
|
|
39
|
+
"CI_NON_DARK_AND_NON_POLCAL_AND_NON_LAMP_GAIN_TASK_EXPOSURE_CONDITIONS_LIST"
|
|
37
40
|
)
|
|
38
41
|
picky_dark_exposure_conditions_list = "PICKY_DARK_EXPOSURE_CONDITIONS_LIST"
|
|
42
|
+
ci_picky_dark_exposure_conditions_list = "CI_PICKY_DARK_EXPOSURE_CONDITIONS_LIST"
|
|
43
|
+
sp_picky_dark_exposure_conditions_list = "SP_PICKY_DARK_EXPOSURE_CONDITIONS_LIST"
|
|
39
44
|
modulator_spin_mode = "MODULATOR_SPIN_MODE"
|
|
40
45
|
axis_1_type = "AXIS_1_TYPE"
|
|
41
46
|
axis_2_type = "AXIS_2_TYPE"
|
|
@@ -47,6 +52,8 @@ class CryonirspBudName(Enum):
|
|
|
47
52
|
optical_density_filter_picky_bud = "OPTICAL_DENSITY_FILTER_PICKY_BUD"
|
|
48
53
|
solar_gain_ip_start_time = "SOLAR_GAIN_IP_START_TIME"
|
|
49
54
|
gain_frame_type_list = "GAIN_FRAME_TYPE_LIST"
|
|
55
|
+
lamp_gain_frame_type_list = "LAMP_GAIN_FRAME_TYPE_LIST"
|
|
56
|
+
solar_gain_frame_type_list = "SOLAR_GAIN_FRAME_TYPE_LIST"
|
|
50
57
|
|
|
51
58
|
|
|
52
59
|
class CryonirspConstants(ConstantsBase):
|
|
@@ -188,10 +195,21 @@ class CryonirspConstants(ConstantsBase):
|
|
|
188
195
|
return []
|
|
189
196
|
|
|
190
197
|
@property
|
|
191
|
-
def
|
|
198
|
+
def ci_non_dark_and_non_polcal_and_non_lamp_gain_task_exposure_conditions_list(
|
|
199
|
+
self,
|
|
200
|
+
) -> [ExposureConditions]:
|
|
201
|
+
"""Return a list of all exposure times required for all tasks other than dark, polcal, and lamp gain."""
|
|
202
|
+
raw_conditions: list[list[int, str]] = self._db_dict[
|
|
203
|
+
CryonirspBudName.ci_non_dark_and_non_polcal_and_non_lamp_gain_task_exposure_conditions_list.value
|
|
204
|
+
]
|
|
205
|
+
conditions = [ExposureConditions(*item) for item in raw_conditions]
|
|
206
|
+
return conditions
|
|
207
|
+
|
|
208
|
+
@property
|
|
209
|
+
def sp_non_dark_and_non_polcal_task_exposure_conditions_list(self) -> [ExposureConditions]:
|
|
192
210
|
"""Return a list of all exposure times required for all tasks other than dark and polcal."""
|
|
193
211
|
raw_conditions: list[list[int, str]] = self._db_dict[
|
|
194
|
-
CryonirspBudName.
|
|
212
|
+
CryonirspBudName.sp_non_dark_and_non_polcal_task_exposure_conditions_list.value
|
|
195
213
|
]
|
|
196
214
|
conditions = [ExposureConditions(*item) for item in raw_conditions]
|
|
197
215
|
return conditions
|
|
@@ -12,11 +12,12 @@ from dkist_processing_cryonirsp.models.constants import CryonirspBudName
|
|
|
12
12
|
from dkist_processing_cryonirsp.parsers.cryonirsp_l0_fits_access import CryonirspL0FitsAccess
|
|
13
13
|
|
|
14
14
|
|
|
15
|
-
class
|
|
16
|
-
"""Pickybud to check for
|
|
15
|
+
class CheckGainFramesPickyBudBase(Stem):
|
|
16
|
+
"""Pickybud to check for gain frames."""
|
|
17
17
|
|
|
18
|
-
def __init__(self):
|
|
19
|
-
super().__init__(stem_name=
|
|
18
|
+
def __init__(self, stem_name: str, task_name: str):
|
|
19
|
+
super().__init__(stem_name=stem_name)
|
|
20
|
+
self.task_name = task_name.casefold()
|
|
20
21
|
|
|
21
22
|
def setter(self, fits_obj: CryonirspL0FitsAccess) -> Type[SpilledDirt] | str:
|
|
22
23
|
"""
|
|
@@ -30,15 +31,11 @@ class CheckGainFramesPickyBud(Stem):
|
|
|
30
31
|
-------
|
|
31
32
|
The calibration frame object associated with this fits object
|
|
32
33
|
"""
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
if task in [TaskName.lamp_gain.value.casefold(), TaskName.solar_gain.value.casefold()]:
|
|
36
|
-
return task
|
|
37
|
-
return SpilledDirt
|
|
34
|
+
return parse_header_ip_task_with_gains(fits_obj).casefold()
|
|
38
35
|
|
|
39
|
-
def getter(self, key: Hashable) -> Thorn:
|
|
36
|
+
def getter(self, key: Hashable) -> Type[Thorn]:
|
|
40
37
|
"""
|
|
41
|
-
Check that
|
|
38
|
+
Check that the specific gain exists. If it does, return a Thorn.
|
|
42
39
|
|
|
43
40
|
Parameters
|
|
44
41
|
----------
|
|
@@ -49,10 +46,28 @@ class CheckGainFramesPickyBud(Stem):
|
|
|
49
46
|
-------
|
|
50
47
|
Thorn
|
|
51
48
|
"""
|
|
52
|
-
|
|
49
|
+
task_types = list(self.key_to_petal_dict.values())
|
|
53
50
|
|
|
54
|
-
if
|
|
55
|
-
raise ValueError("
|
|
56
|
-
if TaskName.solar_gain.value.casefold() not in gain_task_types:
|
|
57
|
-
raise ValueError("Solar gain frames not found.")
|
|
51
|
+
if self.task_name not in task_types:
|
|
52
|
+
raise ValueError(f"{self.task_name} frames not found.")
|
|
58
53
|
return Thorn
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
class CheckSolarGainFramesPickyBud(CheckGainFramesPickyBudBase):
|
|
57
|
+
"""Pickybud to check for solar gain frames."""
|
|
58
|
+
|
|
59
|
+
def __init__(self):
|
|
60
|
+
super().__init__(
|
|
61
|
+
stem_name=CryonirspBudName.solar_gain_frame_type_list.value,
|
|
62
|
+
task_name=TaskName.solar_gain.value,
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
class CheckLampGainFramesPickyBud(CheckGainFramesPickyBudBase):
|
|
67
|
+
"""Pickybud to check for lamp gain frames."""
|
|
68
|
+
|
|
69
|
+
def __init__(self):
|
|
70
|
+
super().__init__(
|
|
71
|
+
stem_name=CryonirspBudName.lamp_gain_frame_type_list.value,
|
|
72
|
+
task_name=TaskName.lamp_gain.value,
|
|
73
|
+
)
|
|
@@ -13,8 +13,6 @@ from dkist_processing_cryonirsp.models.constants import CryonirspBudName
|
|
|
13
13
|
from dkist_processing_cryonirsp.models.exposure_conditions import ExposureConditions
|
|
14
14
|
from dkist_processing_cryonirsp.parsers.cryonirsp_l0_fits_access import CryonirspL0FitsAccess
|
|
15
15
|
|
|
16
|
-
_DARK_AND_POLCAL_TASK_TYPES = (TaskName.dark.value, TaskName.polcal.value)
|
|
17
|
-
|
|
18
16
|
|
|
19
17
|
class CryonirspTaskExposureConditionsBud(Stem):
|
|
20
18
|
"""
|
|
@@ -53,14 +51,13 @@ class CryonirspTaskExposureConditionsBud(Stem):
|
|
|
53
51
|
return exposure_conditions_tuple
|
|
54
52
|
|
|
55
53
|
|
|
56
|
-
class
|
|
57
|
-
"""For ip task types that are
|
|
54
|
+
class CryonirspConditionalTaskExposureConditionsBudBase(Stem):
|
|
55
|
+
"""For ip task types that are not in task_types_to_ignore, produce a list of exposure conditions tuples."""
|
|
58
56
|
|
|
59
|
-
def __init__(self):
|
|
60
|
-
super().__init__(
|
|
61
|
-
stem_name=CryonirspBudName.non_dark_and_non_polcal_task_exposure_conditions_list.value
|
|
62
|
-
)
|
|
57
|
+
def __init__(self, stem_name: str, task_types_to_ignore: list[str]):
|
|
58
|
+
super().__init__(stem_name=stem_name)
|
|
63
59
|
self.metadata_key = "exposure_conditions"
|
|
60
|
+
self.task_types_to_ignore = task_types_to_ignore
|
|
64
61
|
|
|
65
62
|
def setter(self, fits_obj: CryonirspL0FitsAccess) -> ExposureConditions | Type[SpilledDirt]:
|
|
66
63
|
"""
|
|
@@ -74,7 +71,8 @@ class CryonirspNonDarkAndNonPolcalTaskExposureConditionsBud(Stem):
|
|
|
74
71
|
-------
|
|
75
72
|
The exposure time associated with this fits object
|
|
76
73
|
"""
|
|
77
|
-
|
|
74
|
+
task_type = parse_header_ip_task_with_gains(fits_obj=fits_obj)
|
|
75
|
+
if task_type.upper() not in self.task_types_to_ignore:
|
|
78
76
|
return getattr(fits_obj, self.metadata_key)
|
|
79
77
|
return SpilledDirt
|
|
80
78
|
|
|
@@ -95,16 +93,47 @@ class CryonirspNonDarkAndNonPolcalTaskExposureConditionsBud(Stem):
|
|
|
95
93
|
return exposure_conditions_tuple
|
|
96
94
|
|
|
97
95
|
|
|
98
|
-
class
|
|
96
|
+
class CryonirspSPConditionalTaskExposureConditionsBud(
|
|
97
|
+
CryonirspConditionalTaskExposureConditionsBudBase
|
|
98
|
+
):
|
|
99
|
+
"""For ip task types that are neither DARK nor POLCAL, produce a list of exposure conditions tuples."""
|
|
100
|
+
|
|
101
|
+
def __init__(self):
|
|
102
|
+
super().__init__(
|
|
103
|
+
stem_name=CryonirspBudName.sp_non_dark_and_non_polcal_task_exposure_conditions_list.value,
|
|
104
|
+
task_types_to_ignore=[TaskName.dark.value, TaskName.polcal.value],
|
|
105
|
+
)
|
|
106
|
+
self.metadata_key = "exposure_conditions"
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
class CryonirspCIConditionalTaskExposureConditionsBud(
|
|
110
|
+
CryonirspConditionalTaskExposureConditionsBudBase
|
|
111
|
+
):
|
|
112
|
+
"""For ip task types that are neither DARK nor POLCAL nor LAMP GAIN, produce a list of exposure conditions tuples."""
|
|
113
|
+
|
|
114
|
+
def __init__(self):
|
|
115
|
+
super().__init__(
|
|
116
|
+
stem_name=CryonirspBudName.ci_non_dark_and_non_polcal_and_non_lamp_gain_task_exposure_conditions_list.value,
|
|
117
|
+
task_types_to_ignore=[
|
|
118
|
+
TaskName.dark.value,
|
|
119
|
+
TaskName.polcal.value,
|
|
120
|
+
TaskName.lamp_gain.value,
|
|
121
|
+
],
|
|
122
|
+
)
|
|
123
|
+
self.metadata_key = "exposure_conditions"
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
class CryonirspPickyDarkExposureConditionsBudBase(Stem):
|
|
99
127
|
"""Parse exposure conditions tuples to ensure existence of dark frames with the required exposure conditions."""
|
|
100
128
|
|
|
101
129
|
DarkTaskTestAndExposureConditions = namedtuple(
|
|
102
130
|
"DarkTaskTestAndExposureConditions", ["is_dark", "exposure_conditions"]
|
|
103
131
|
)
|
|
104
132
|
|
|
105
|
-
def __init__(self):
|
|
106
|
-
super().__init__(stem_name=
|
|
133
|
+
def __init__(self, stem_name: str, task_types_to_ignore: list[str]):
|
|
134
|
+
super().__init__(stem_name=stem_name)
|
|
107
135
|
self.metadata_key = "exposure_conditions"
|
|
136
|
+
self.task_types_to_ignore = task_types_to_ignore
|
|
108
137
|
|
|
109
138
|
def setter(self, fits_obj: CryonirspL0FitsAccess) -> tuple | Type[SpilledDirt]:
|
|
110
139
|
"""
|
|
@@ -118,15 +147,16 @@ class CryonirspPickyDarkExposureConditionsBud(Stem):
|
|
|
118
147
|
-------
|
|
119
148
|
A tuple of a boolean indicating if the task is a dark task, and the exposure conditions for this fits object
|
|
120
149
|
"""
|
|
121
|
-
|
|
150
|
+
task_type = parse_header_ip_task_with_gains(fits_obj=fits_obj)
|
|
151
|
+
if task_type.upper() == TaskName.dark.value:
|
|
122
152
|
return self.DarkTaskTestAndExposureConditions(
|
|
123
153
|
is_dark=True, exposure_conditions=getattr(fits_obj, self.metadata_key)
|
|
124
154
|
)
|
|
125
|
-
if
|
|
155
|
+
if task_type.upper() not in self.task_types_to_ignore:
|
|
126
156
|
return self.DarkTaskTestAndExposureConditions(
|
|
127
157
|
is_dark=False, exposure_conditions=getattr(fits_obj, self.metadata_key)
|
|
128
158
|
)
|
|
129
|
-
#
|
|
159
|
+
# Ignored task types fall through
|
|
130
160
|
return SpilledDirt
|
|
131
161
|
|
|
132
162
|
def getter(self, key: Hashable) -> Type[Thorn]:
|
|
@@ -161,3 +191,30 @@ class CryonirspPickyDarkExposureConditionsBud(Stem):
|
|
|
161
191
|
f"Exposure conditions required in the set of dark frames not found. Missing conditions = {other_exposure_conditions_missing_from_dark_exposure_conditions}"
|
|
162
192
|
)
|
|
163
193
|
return Thorn
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
class CryonirspCIPickyDarkExposureConditionsBud(CryonirspPickyDarkExposureConditionsBudBase):
|
|
197
|
+
"""Parse exposure conditions tuples to ensure existence of dark frames with the required exposure conditions, ignoring polcal frames and lamp gain frames."""
|
|
198
|
+
|
|
199
|
+
def __init__(self):
|
|
200
|
+
super().__init__(
|
|
201
|
+
stem_name=CryonirspBudName.ci_picky_dark_exposure_conditions_list.value,
|
|
202
|
+
task_types_to_ignore=[
|
|
203
|
+
TaskName.dark.value,
|
|
204
|
+
TaskName.polcal.value,
|
|
205
|
+
TaskName.lamp_gain.value,
|
|
206
|
+
],
|
|
207
|
+
)
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
class CryonirspSPPickyDarkExposureConditionsBud(CryonirspPickyDarkExposureConditionsBudBase):
|
|
211
|
+
"""Parse exposure conditions tuples to ensure existence of dark frames with the required exposure conditions, ignoring polcal frames."""
|
|
212
|
+
|
|
213
|
+
def __init__(self):
|
|
214
|
+
super().__init__(
|
|
215
|
+
stem_name=CryonirspBudName.sp_picky_dark_exposure_conditions_list.value,
|
|
216
|
+
task_types_to_ignore=[
|
|
217
|
+
TaskName.dark.value,
|
|
218
|
+
TaskName.polcal.value,
|
|
219
|
+
],
|
|
220
|
+
)
|
|
@@ -39,9 +39,16 @@ class DarkCalibration(CryonirspTaskBase):
|
|
|
39
39
|
None
|
|
40
40
|
|
|
41
41
|
"""
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
arm = self.constants.arm_id
|
|
43
|
+
|
|
44
|
+
if arm == "CI":
|
|
45
|
+
target_exposure_conditions = (
|
|
46
|
+
self.constants.ci_non_dark_and_non_polcal_and_non_lamp_gain_task_exposure_conditions_list
|
|
47
|
+
)
|
|
48
|
+
if arm == "SP":
|
|
49
|
+
target_exposure_conditions = (
|
|
50
|
+
self.constants.sp_non_dark_and_non_polcal_task_exposure_conditions_list
|
|
51
|
+
)
|
|
45
52
|
|
|
46
53
|
logger.info(f"{target_exposure_conditions = }")
|
|
47
54
|
with self.apm_task_step(
|
|
@@ -25,14 +25,21 @@ from dkist_processing_cryonirsp.models.constants import CryonirspBudName
|
|
|
25
25
|
from dkist_processing_cryonirsp.models.parameters import CryonirspParsingParameters
|
|
26
26
|
from dkist_processing_cryonirsp.models.tags import CryonirspStemName
|
|
27
27
|
from dkist_processing_cryonirsp.models.tags import CryonirspTag
|
|
28
|
-
from dkist_processing_cryonirsp.parsers.check_for_gains import
|
|
28
|
+
from dkist_processing_cryonirsp.parsers.check_for_gains import CheckLampGainFramesPickyBud
|
|
29
|
+
from dkist_processing_cryonirsp.parsers.check_for_gains import CheckSolarGainFramesPickyBud
|
|
29
30
|
from dkist_processing_cryonirsp.parsers.cryonirsp_l0_fits_access import CryonirspL0FitsAccess
|
|
30
31
|
from dkist_processing_cryonirsp.parsers.cryonirsp_l0_fits_access import CryonirspRampFitsAccess
|
|
31
32
|
from dkist_processing_cryonirsp.parsers.exposure_conditions import (
|
|
32
|
-
|
|
33
|
+
CryonirspCIConditionalTaskExposureConditionsBud,
|
|
33
34
|
)
|
|
34
35
|
from dkist_processing_cryonirsp.parsers.exposure_conditions import (
|
|
35
|
-
|
|
36
|
+
CryonirspCIPickyDarkExposureConditionsBud,
|
|
37
|
+
)
|
|
38
|
+
from dkist_processing_cryonirsp.parsers.exposure_conditions import (
|
|
39
|
+
CryonirspSPConditionalTaskExposureConditionsBud,
|
|
40
|
+
)
|
|
41
|
+
from dkist_processing_cryonirsp.parsers.exposure_conditions import (
|
|
42
|
+
CryonirspSPPickyDarkExposureConditionsBud,
|
|
36
43
|
)
|
|
37
44
|
from dkist_processing_cryonirsp.parsers.exposure_conditions import (
|
|
38
45
|
CryonirspTaskExposureConditionsBud,
|
|
@@ -180,16 +187,12 @@ class ParseL0CryonirspLinearizedData(ParseDataBase, InputDatasetMixin):
|
|
|
180
187
|
NumberOfScanStepsBud(),
|
|
181
188
|
NumberOfMeasurementsBud(),
|
|
182
189
|
CryonirspSolarGainStartTimeBud(),
|
|
183
|
-
|
|
190
|
+
CheckSolarGainFramesPickyBud(),
|
|
184
191
|
NumCSStepBud(self.parameters.max_cs_step_time_sec),
|
|
185
192
|
CryonirspTaskExposureConditionsBud(
|
|
186
193
|
stem_name=CryonirspBudName.dark_frame_exposure_conditions_list.value,
|
|
187
194
|
ip_task_type=TaskName.dark.value,
|
|
188
195
|
),
|
|
189
|
-
CryonirspTaskExposureConditionsBud(
|
|
190
|
-
stem_name=CryonirspBudName.lamp_gain_exposure_conditions_list.value,
|
|
191
|
-
ip_task_type=TaskName.lamp_gain.value,
|
|
192
|
-
),
|
|
193
196
|
CryonirspTaskExposureConditionsBud(
|
|
194
197
|
stem_name=CryonirspBudName.solar_gain_exposure_conditions_list.value,
|
|
195
198
|
ip_task_type=TaskName.solar_gain.value,
|
|
@@ -202,8 +205,6 @@ class ParseL0CryonirspLinearizedData(ParseDataBase, InputDatasetMixin):
|
|
|
202
205
|
stem_name=CryonirspBudName.polcal_exposure_conditions_list.value,
|
|
203
206
|
ip_task_type=TaskName.polcal.value,
|
|
204
207
|
),
|
|
205
|
-
CryonirspNonDarkAndNonPolcalTaskExposureConditionsBud(),
|
|
206
|
-
CryonirspPickyDarkExposureConditionsBud(),
|
|
207
208
|
UniqueBud(constant_name=CryonirspBudName.axis_1_type.value, metadata_key="axis_1_type"),
|
|
208
209
|
UniqueBud(constant_name=CryonirspBudName.axis_2_type.value, metadata_key="axis_2_type"),
|
|
209
210
|
UniqueBud(constant_name=CryonirspBudName.axis_3_type.value, metadata_key="axis_3_type"),
|
|
@@ -274,10 +275,23 @@ class ParseL0CryonirspSPLinearizedData(ParseL0CryonirspLinearizedData):
|
|
|
274
275
|
ip_task_type=TaskName.solar_gain.value,
|
|
275
276
|
task_type_parsing_function=parse_header_ip_task_with_gains,
|
|
276
277
|
),
|
|
278
|
+
CheckLampGainFramesPickyBud(),
|
|
279
|
+
CryonirspTaskExposureConditionsBud(
|
|
280
|
+
stem_name=CryonirspBudName.lamp_gain_exposure_conditions_list.value,
|
|
281
|
+
ip_task_type=TaskName.lamp_gain.value,
|
|
282
|
+
),
|
|
283
|
+
CryonirspSPConditionalTaskExposureConditionsBud(),
|
|
284
|
+
CryonirspSPPickyDarkExposureConditionsBud(),
|
|
277
285
|
]
|
|
278
286
|
|
|
279
287
|
|
|
280
288
|
class ParseL0CryonirspCILinearizedData(ParseL0CryonirspLinearizedData):
|
|
281
289
|
"""Parse linearity corrected CryoNIRSP-CI input data with CI arm specific constants."""
|
|
282
290
|
|
|
283
|
-
|
|
291
|
+
@property
|
|
292
|
+
def constant_buds(self) -> list[S]:
|
|
293
|
+
"""Add CryoNIRSP-CI specific constants to common constants."""
|
|
294
|
+
return super().constant_buds + [
|
|
295
|
+
CryonirspCIConditionalTaskExposureConditionsBud(),
|
|
296
|
+
CryonirspCIPickyDarkExposureConditionsBud(),
|
|
297
|
+
]
|
|
@@ -129,7 +129,14 @@ class CryonirspConstantsDb:
|
|
|
129
129
|
ExposureConditions(0.01, AllowableOpticalDensityFilterNames.OPEN.value),
|
|
130
130
|
)
|
|
131
131
|
POLCAL_EXPOSURE_CONDITIONS_LIST: tuple[ExposureConditions] | tuple = ()
|
|
132
|
-
|
|
132
|
+
SP_NON_DARK_AND_NON_POLCAL_TASK_EXPOSURE_CONDITIONS_LIST: tuple[ExposureConditions, ...] = (
|
|
133
|
+
ExposureConditions(100.0, AllowableOpticalDensityFilterNames.OPEN.value),
|
|
134
|
+
ExposureConditions(1.0, AllowableOpticalDensityFilterNames.OPEN.value),
|
|
135
|
+
ExposureConditions(0.01, AllowableOpticalDensityFilterNames.OPEN.value),
|
|
136
|
+
)
|
|
137
|
+
CI_NON_DARK_AND_NON_POLCAL_AND_NON_LAMP_GAIN_TASK_EXPOSURE_CONDITIONS_LIST: tuple[
|
|
138
|
+
ExposureConditions, ...
|
|
139
|
+
] = (
|
|
133
140
|
ExposureConditions(100.0, AllowableOpticalDensityFilterNames.OPEN.value),
|
|
134
141
|
ExposureConditions(1.0, AllowableOpticalDensityFilterNames.OPEN.value),
|
|
135
142
|
ExposureConditions(0.01, AllowableOpticalDensityFilterNames.OPEN.value),
|
|
@@ -34,7 +34,7 @@ def sp_dark_calibration_task(
|
|
|
34
34
|
200.0, AllowableOpticalDensityFilterNames.NONE.value
|
|
35
35
|
)
|
|
36
36
|
constants_db = CryonirspConstantsDb(
|
|
37
|
-
|
|
37
|
+
SP_NON_DARK_AND_NON_POLCAL_TASK_EXPOSURE_CONDITIONS_LIST=exposure_conditions,
|
|
38
38
|
ARM_ID="SP",
|
|
39
39
|
)
|
|
40
40
|
init_cryonirsp_constants_db(recipe_run_id, constants_db)
|
|
@@ -120,7 +120,7 @@ def ci_dark_calibration_task(
|
|
|
120
120
|
)
|
|
121
121
|
|
|
122
122
|
constants_db = CryonirspConstantsDb(
|
|
123
|
-
|
|
123
|
+
CI_NON_DARK_AND_NON_POLCAL_AND_NON_LAMP_GAIN_TASK_EXPOSURE_CONDITIONS_LIST=exposure_conditions,
|
|
124
124
|
ARM_ID="CI",
|
|
125
125
|
)
|
|
126
126
|
init_cryonirsp_constants_db(recipe_run_id, constants_db)
|
|
@@ -664,8 +664,11 @@ def test_parse_cryonirsp_linearized_incomplete_final_map(
|
|
|
664
664
|
num_modstates = 2
|
|
665
665
|
num_sub_repeats = 2
|
|
666
666
|
|
|
667
|
-
# Needed so the
|
|
667
|
+
# Needed so the picky buds are happy
|
|
668
668
|
write_dark_frames_to_task(task, exposure_condition=exp_cond, tags=lin_tag)
|
|
669
|
+
write_solar_gain_frames_to_task(task, exposure_condition=exp_cond, tags=lin_tag)
|
|
670
|
+
if arm_id == "SP":
|
|
671
|
+
write_lamp_gain_frames_to_task(task, exposure_condition=exp_cond, tags=lin_tag)
|
|
669
672
|
|
|
670
673
|
# Needed so the pol checking buds are happy
|
|
671
674
|
write_polcal_frames_to_task(
|
|
@@ -884,8 +887,11 @@ def test_parse_cryonirsp_linearized_incomplete_raster_scan(
|
|
|
884
887
|
translated_header["CNNUMSCN"] = num_scan_steps
|
|
885
888
|
return translated_header
|
|
886
889
|
|
|
887
|
-
# Needed so the
|
|
890
|
+
# Needed so the picky buds are happy
|
|
888
891
|
write_dark_frames_to_task(task, exposure_condition=exp_cond, tags=lin_tag)
|
|
892
|
+
write_solar_gain_frames_to_task(task, exposure_condition=exp_cond, tags=lin_tag)
|
|
893
|
+
if arm_id == "SP":
|
|
894
|
+
write_lamp_gain_frames_to_task(task, exposure_condition=exp_cond, tags=lin_tag)
|
|
889
895
|
|
|
890
896
|
# Needed so the pol checking buds are happy
|
|
891
897
|
write_polcal_frames_to_task(
|
|
@@ -1219,10 +1225,10 @@ def test_parse_cryonirsp_linearized_data_constants(
|
|
|
1219
1225
|
assert sorted(task.constants._db_dict["DARK_FRAME_EXPOSURE_CONDITIONS_LIST"]) == sorted(
|
|
1220
1226
|
[json.loads(json.dumps(condition)) for condition in dark_exp_conditions]
|
|
1221
1227
|
)
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1228
|
+
if arm_id == "SP":
|
|
1229
|
+
assert task.constants._db_dict["LAMP_GAIN_EXPOSURE_CONDITIONS_LIST"] == [
|
|
1230
|
+
json.loads(json.dumps(lamp_exp_cond))
|
|
1231
|
+
]
|
|
1226
1232
|
assert task.constants._db_dict["SOLAR_GAIN_EXPOSURE_CONDITIONS_LIST"] == [
|
|
1227
1233
|
json.loads(json.dumps(solar_exp_cond))
|
|
1228
1234
|
]
|
|
@@ -1326,6 +1332,9 @@ def test_parse_cryonirsp_not_polarimetric_obs(parse_linearized_task, arm_id):
|
|
|
1326
1332
|
|
|
1327
1333
|
for condition in dark_exp_conditions:
|
|
1328
1334
|
write_dark_frames_to_task(task, exposure_condition=condition, tags=lin_tag)
|
|
1335
|
+
write_solar_gain_frames_to_task(task, exposure_condition=condition, tags=lin_tag)
|
|
1336
|
+
if arm_id == "SP":
|
|
1337
|
+
write_lamp_gain_frames_to_task(task, exposure_condition=condition, tags=lin_tag)
|
|
1329
1338
|
|
|
1330
1339
|
write_polcal_frames_to_task(
|
|
1331
1340
|
task,
|
|
@@ -1464,11 +1473,11 @@ def test_missing_solar_gain_frames(parse_linearized_task, arm_id):
|
|
|
1464
1473
|
num_modstates=1,
|
|
1465
1474
|
)
|
|
1466
1475
|
|
|
1467
|
-
with pytest.raises(ValueError, match="
|
|
1476
|
+
with pytest.raises(ValueError, match="solar_gain frames not found."):
|
|
1468
1477
|
task()
|
|
1469
1478
|
|
|
1470
1479
|
|
|
1471
|
-
@pytest.mark.parametrize("arm_id", ["
|
|
1480
|
+
@pytest.mark.parametrize("arm_id", ["SP"])
|
|
1472
1481
|
def test_missing_lamp_gain_frames(parse_linearized_task, arm_id):
|
|
1473
1482
|
"""
|
|
1474
1483
|
Given: A dataset missing lamp gain frames
|
|
@@ -1493,5 +1502,46 @@ def test_missing_lamp_gain_frames(parse_linearized_task, arm_id):
|
|
|
1493
1502
|
num_modstates=1,
|
|
1494
1503
|
)
|
|
1495
1504
|
|
|
1496
|
-
with pytest.raises(ValueError, match="
|
|
1505
|
+
with pytest.raises(ValueError, match="lamp_gain frames not found."):
|
|
1497
1506
|
task()
|
|
1507
|
+
|
|
1508
|
+
|
|
1509
|
+
@pytest.mark.parametrize("arm_id", ["CI"])
|
|
1510
|
+
def test_wrong_exposure_time_lamp_gain_dark(parse_linearized_task, arm_id):
|
|
1511
|
+
"""
|
|
1512
|
+
Given: lamp gain frames with a different exposure time than the dark frames
|
|
1513
|
+
When: parsing data where the lamp gain has no matching exposure time
|
|
1514
|
+
Then: everything is fine because CRYO-CI ignores lamp gains
|
|
1515
|
+
"""
|
|
1516
|
+
task = parse_linearized_task
|
|
1517
|
+
lin_tag = [CryonirspTag.linearized()]
|
|
1518
|
+
solar_gain_exposure_condition = ExposureConditions(
|
|
1519
|
+
10.0, AllowableOpticalDensityFilterNames.OPEN.value
|
|
1520
|
+
)
|
|
1521
|
+
write_solar_gain_frames_to_task(
|
|
1522
|
+
task,
|
|
1523
|
+
tags=lin_tag,
|
|
1524
|
+
exposure_condition=solar_gain_exposure_condition,
|
|
1525
|
+
num_modstates=1,
|
|
1526
|
+
)
|
|
1527
|
+
lamp_gain_exposure_condition = ExposureConditions(
|
|
1528
|
+
1000.0, AllowableOpticalDensityFilterNames.OPEN.value
|
|
1529
|
+
)
|
|
1530
|
+
write_lamp_gain_frames_to_task(
|
|
1531
|
+
task,
|
|
1532
|
+
tags=lin_tag,
|
|
1533
|
+
exposure_condition=lamp_gain_exposure_condition,
|
|
1534
|
+
num_modstates=1,
|
|
1535
|
+
)
|
|
1536
|
+
dark_exp_condition = ExposureConditions(10.0, AllowableOpticalDensityFilterNames.OPEN.value)
|
|
1537
|
+
write_dark_frames_to_task(task, exposure_condition=dark_exp_condition, tags=lin_tag)
|
|
1538
|
+
|
|
1539
|
+
task()
|
|
1540
|
+
|
|
1541
|
+
assert task.constants._db_dict["DARK_FRAME_EXPOSURE_CONDITIONS_LIST"] == [[10.0, "OPEN"]]
|
|
1542
|
+
assert task.constants._db_dict["SOLAR_GAIN_EXPOSURE_CONDITIONS_LIST"] == [[10.0, "OPEN"]]
|
|
1543
|
+
assert task.constants._db_dict[
|
|
1544
|
+
"CI_NON_DARK_AND_NON_POLCAL_AND_NON_LAMP_GAIN_TASK_EXPOSURE_CONDITIONS_LIST"
|
|
1545
|
+
] == [[10.0, "OPEN"]]
|
|
1546
|
+
with pytest.raises(KeyError):
|
|
1547
|
+
assert task.constants._db_dict["LAMP_GAIN_EXPOSURE_CONDITIONS_LIST"]
|
|
@@ -47,8 +47,7 @@ l0_pipeline.add_node(task=ParseL0CryonirspCILinearizedData, upstreams=LinearityC
|
|
|
47
47
|
l0_pipeline.add_node(task=BadPixelMapCalibration, upstreams=ParseL0CryonirspCILinearizedData)
|
|
48
48
|
l0_pipeline.add_node(task=CIBeamBoundariesCalibration, upstreams=BadPixelMapCalibration)
|
|
49
49
|
l0_pipeline.add_node(task=DarkCalibration, upstreams=CIBeamBoundariesCalibration)
|
|
50
|
-
l0_pipeline.add_node(task=
|
|
51
|
-
l0_pipeline.add_node(task=CISolarGainCalibration, upstreams=LampGainCalibration)
|
|
50
|
+
l0_pipeline.add_node(task=CISolarGainCalibration, upstreams=DarkCalibration)
|
|
52
51
|
l0_pipeline.add_node(task=CIInstrumentPolarizationCalibration, upstreams=CISolarGainCalibration)
|
|
53
52
|
l0_pipeline.add_node(task=CIScienceCalibration, upstreams=CIInstrumentPolarizationCalibration)
|
|
54
53
|
l0_pipeline.add_node(task=CIWriteL1Frame, upstreams=CIScienceCalibration)
|
|
@@ -63,8 +63,7 @@ full_trial_ci_pipeline.add_node(
|
|
|
63
63
|
)
|
|
64
64
|
full_trial_ci_pipeline.add_node(task=CIBeamBoundariesCalibration, upstreams=BadPixelMapCalibration)
|
|
65
65
|
full_trial_ci_pipeline.add_node(task=DarkCalibration, upstreams=CIBeamBoundariesCalibration)
|
|
66
|
-
full_trial_ci_pipeline.add_node(task=
|
|
67
|
-
full_trial_ci_pipeline.add_node(task=CISolarGainCalibration, upstreams=LampGainCalibration)
|
|
66
|
+
full_trial_ci_pipeline.add_node(task=CISolarGainCalibration, upstreams=DarkCalibration)
|
|
68
67
|
full_trial_ci_pipeline.add_node(
|
|
69
68
|
task=CIInstrumentPolarizationCalibration, upstreams=CISolarGainCalibration
|
|
70
69
|
)
|
{dkist_processing_cryonirsp-1.4.12.dist-info → dkist_processing_cryonirsp-1.4.15.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: dkist-processing-cryonirsp
|
|
3
|
-
Version: 1.4.
|
|
3
|
+
Version: 1.4.15
|
|
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.3.0
|
|
|
17
17
|
Requires-Dist: astropy==6.1.0
|
|
18
18
|
Requires-Dist: dkist-fits-specifications==4.10.0
|
|
19
19
|
Requires-Dist: dkist-header-validator==5.1.1
|
|
20
|
-
Requires-Dist: dkist-processing-common==10.5.
|
|
20
|
+
Requires-Dist: dkist-processing-common==10.5.9
|
|
21
21
|
Requires-Dist: dkist-processing-math==2.1.2
|
|
22
22
|
Requires-Dist: dkist-processing-pac==3.1.1
|
|
23
23
|
Requires-Dist: dkist-spectral-lines==3.0.0
|
|
@@ -48,7 +48,7 @@ Provides-Extra: asdf
|
|
|
48
48
|
Requires-Dist: dkist-processing-common[asdf]; extra == "asdf"
|
|
49
49
|
Requires-Dist: dkist-inventory[asdf]==1.5.0; extra == "asdf"
|
|
50
50
|
Provides-Extra: quality
|
|
51
|
-
Requires-Dist: dkist-quality==1.2.
|
|
51
|
+
Requires-Dist: dkist-quality==1.2.1; extra == "quality"
|
|
52
52
|
Provides-Extra: grogu
|
|
53
53
|
Requires-Dist: dkist; extra == "grogu"
|
|
54
54
|
Requires-Dist: pyparsing; extra == "grogu"
|
{dkist_processing_cryonirsp-1.4.12.dist-info → dkist_processing_cryonirsp-1.4.15.dist-info}/RECORD
RENAMED
|
@@ -2,16 +2,16 @@ changelog/.gitempty,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
2
2
|
dkist_processing_cryonirsp/__init__.py,sha256=Z6-kB7fXXUI-F7Vz1HnEaja2h8qgH9IZExRl1lUxvZg,350
|
|
3
3
|
dkist_processing_cryonirsp/config.py,sha256=xNkUNJ1BeBxJX881mTCIEbirZlD5_5txpV1QqkbfRM0,507
|
|
4
4
|
dkist_processing_cryonirsp/models/__init__.py,sha256=m6UekKftTahNJ3W5K3mZSz4Y4ZZpHRxF_ZAxuaKYL7o,12
|
|
5
|
-
dkist_processing_cryonirsp/models/constants.py,sha256=
|
|
5
|
+
dkist_processing_cryonirsp/models/constants.py,sha256=p0HTXr994UHUrDRf3o-S5lb2ic7K2TRrHWl-hTWJUlA,10650
|
|
6
6
|
dkist_processing_cryonirsp/models/exposure_conditions.py,sha256=slFq5-Qz4fRpJKDBabbm4evPWLQVYmT-Uf9rk7nI734,813
|
|
7
7
|
dkist_processing_cryonirsp/models/parameters.py,sha256=oAB_68AY2HdxK8IkvzisPKDI-c2agZeKiE5VIkHkkRI,13422
|
|
8
8
|
dkist_processing_cryonirsp/models/tags.py,sha256=1Q2ag0ud9gx3su-XUqa--gwSnf5di7CGnlkyiEFreRs,4388
|
|
9
9
|
dkist_processing_cryonirsp/models/task_name.py,sha256=xK4AKwgOx2uANbjhr0Q5Q3R9iPxLfkVKxWYY8wWjKhE,439
|
|
10
10
|
dkist_processing_cryonirsp/parsers/__init__.py,sha256=m6UekKftTahNJ3W5K3mZSz4Y4ZZpHRxF_ZAxuaKYL7o,12
|
|
11
|
-
dkist_processing_cryonirsp/parsers/check_for_gains.py,sha256=
|
|
11
|
+
dkist_processing_cryonirsp/parsers/check_for_gains.py,sha256=v-eD1LG0dlFoZXz5Y-2ZyPvRL2TZ8gWfr5cN6YNYqvo,2341
|
|
12
12
|
dkist_processing_cryonirsp/parsers/cryonirsp_l0_fits_access.py,sha256=iu5GJWVQ1PZfv5TR0u_IS2j2KZBU0yewa1ugxjDfVzk,4568
|
|
13
13
|
dkist_processing_cryonirsp/parsers/cryonirsp_l1_fits_access.py,sha256=sc8MzxYMc8E1eFrL5KguAGHViCMJhaDfiBtZPml4ELg,886
|
|
14
|
-
dkist_processing_cryonirsp/parsers/exposure_conditions.py,sha256=
|
|
14
|
+
dkist_processing_cryonirsp/parsers/exposure_conditions.py,sha256=Mcud-0PQK0oJSxbqtQUtVk0t8b6YBEFSyGsGbG5UqGg,8445
|
|
15
15
|
dkist_processing_cryonirsp/parsers/map_repeats.py,sha256=PjZ986bqkCdii-EOzU045cWqadxQC_nyyqwWYIpYdls,1566
|
|
16
16
|
dkist_processing_cryonirsp/parsers/measurements.py,sha256=6IqqrVbXVnUxYUXnQF-WlJSEP-eSffr2Gx6Kj0bjxhc,1872
|
|
17
17
|
dkist_processing_cryonirsp/parsers/modstates.py,sha256=00a4kCiwgioTpMkYY9ouFuiEsoQHcD-sJOM95qI9Fhc,1093
|
|
@@ -27,13 +27,13 @@ dkist_processing_cryonirsp/tasks/beam_boundaries_base.py,sha256=N3zk08sRcczoNGIq
|
|
|
27
27
|
dkist_processing_cryonirsp/tasks/ci_beam_boundaries.py,sha256=N-LDXCzI0JJLvhTM69W0zW6moAPaVzl96h41RTn0wNE,1893
|
|
28
28
|
dkist_processing_cryonirsp/tasks/ci_science.py,sha256=Qa-qSx_TxtXzGGjgN73TDbO1kqxBNlkt2zaBBB43erM,6693
|
|
29
29
|
dkist_processing_cryonirsp/tasks/cryonirsp_base.py,sha256=rVy7vV4il0_B5KXenmCYEcYLNaIQ8_MDiKKn8X6v8yw,2168
|
|
30
|
-
dkist_processing_cryonirsp/tasks/dark.py,sha256=
|
|
30
|
+
dkist_processing_cryonirsp/tasks/dark.py,sha256=RAIejLZFYwJcXjrpGlLRnW42xsD5EGjxyHdXvsBUztw,4127
|
|
31
31
|
dkist_processing_cryonirsp/tasks/gain.py,sha256=adrYXgCg0gmDsiczFhyU8kBQsVXj15IEfGrRE2TqVdw,8537
|
|
32
32
|
dkist_processing_cryonirsp/tasks/instrument_polarization.py,sha256=uaQWIcQkw61azIA8J1GaRHegFrpZmjWT4wER3iaRmWE,19526
|
|
33
33
|
dkist_processing_cryonirsp/tasks/l1_output_data.py,sha256=FdL_Dv-YTLgT-xH_uOOUjk4GUYMjbaSDPIg1rIQu_iY,1621
|
|
34
34
|
dkist_processing_cryonirsp/tasks/linearity_correction.py,sha256=-R0iBJDNF9o57GUd5C8YlOL6wyVUzKf5rSDFgu0kpgA,24310
|
|
35
35
|
dkist_processing_cryonirsp/tasks/make_movie_frames.py,sha256=Ql_bg1r1W1m-tTOParAdkllFJEJFdNoE16GgHyhDgdw,13900
|
|
36
|
-
dkist_processing_cryonirsp/tasks/parse.py,sha256=
|
|
36
|
+
dkist_processing_cryonirsp/tasks/parse.py,sha256=tDOC2_r8xw0RYBxe3b3Te18Y5dBnRrPtikJmuhmwT88,13117
|
|
37
37
|
dkist_processing_cryonirsp/tasks/quality_metrics.py,sha256=r4mS1Qp88tHlbNKsqed-MOsFT_6Zbhr5H8-4hrx9OGw,11424
|
|
38
38
|
dkist_processing_cryonirsp/tasks/science_base.py,sha256=-BjPNPI5jjiBR7K8p_9fa4vYCEUEdOFx7c2AC5EmFoE,17619
|
|
39
39
|
dkist_processing_cryonirsp/tasks/sp_beam_boundaries.py,sha256=3bdj6W2H_UiOhmj2xHvADwOzojteLsTL9RkTwvzB6_M,10300
|
|
@@ -49,7 +49,7 @@ dkist_processing_cryonirsp/tasks/mixin/intermediate_frame.py,sha256=fFeIvuA4AtkQ
|
|
|
49
49
|
dkist_processing_cryonirsp/tasks/mixin/linearized_frame.py,sha256=oyiMA_rzBUYtlmh1ilfE5DkuIe4FFiyptaYjcU8-joA,10176
|
|
50
50
|
dkist_processing_cryonirsp/tasks/mixin/shift_measurements.py,sha256=7ToSy9uOJ_JrFfd-X225wqW_laq4xoRJkBiAPanfb_g,11225
|
|
51
51
|
dkist_processing_cryonirsp/tests/__init__.py,sha256=m6UekKftTahNJ3W5K3mZSz4Y4ZZpHRxF_ZAxuaKYL7o,12
|
|
52
|
-
dkist_processing_cryonirsp/tests/conftest.py,sha256=
|
|
52
|
+
dkist_processing_cryonirsp/tests/conftest.py,sha256=_yAXaaaiyw4iQOGETN2sgelJsf1_AwjicXv1e1oqdqw,17485
|
|
53
53
|
dkist_processing_cryonirsp/tests/header_models.py,sha256=Ny4h5lS54bGRPDo4nOzvJgNWMzFY9DDs1IQorr_r3s8,20591
|
|
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
|
|
@@ -59,13 +59,13 @@ dkist_processing_cryonirsp/tests/test_ci_science.py,sha256=GdzUR5csW2uoJBc_y5gYE
|
|
|
59
59
|
dkist_processing_cryonirsp/tests/test_corrections.py,sha256=5nY8MccZcNDyQYV8IEokqtY_YrP08TZ-H7WQNioK-A0,4650
|
|
60
60
|
dkist_processing_cryonirsp/tests/test_cryo_base.py,sha256=lF27S1aBmMc5wRWNPKjkXZTyGDPvLo59IubYAb1McsU,7172
|
|
61
61
|
dkist_processing_cryonirsp/tests/test_cryo_constants.py,sha256=VbjM1vZYRa_057yK_aP2ta6JyT7Ob1ou4SbGEVIIKH0,2715
|
|
62
|
-
dkist_processing_cryonirsp/tests/test_dark.py,sha256=
|
|
62
|
+
dkist_processing_cryonirsp/tests/test_dark.py,sha256=wUeRG0Gw_oQ6HxKa7nozLJA_nwKZQB0nDKnpobf5Ksw,11977
|
|
63
63
|
dkist_processing_cryonirsp/tests/test_gain.py,sha256=YUgcGFh325TZBT9BbkzlkbapVJL4skTE1FVhsFNhUc8,10854
|
|
64
64
|
dkist_processing_cryonirsp/tests/test_instrument_polarization.py,sha256=GgZmPJVtsEploGFEZsddwXAh9QtnoOUdywEPdkT_l-s,19276
|
|
65
65
|
dkist_processing_cryonirsp/tests/test_linearity_correction.py,sha256=y9gDWlHsOaTMP7K5-lIIVmboa6nd0ozaqEtl6Fvt5T0,9406
|
|
66
66
|
dkist_processing_cryonirsp/tests/test_make_movie_frames.py,sha256=WznHp9dV2-jbJYzRniCAIbSHCGNc0SpSzyVDSrZkYd4,4904
|
|
67
67
|
dkist_processing_cryonirsp/tests/test_parameters.py,sha256=CbaEnxx3HGZmqZJbNzQ2IJpIg6AKlK26BT3TXUMGYAE,11438
|
|
68
|
-
dkist_processing_cryonirsp/tests/test_parse.py,sha256=
|
|
68
|
+
dkist_processing_cryonirsp/tests/test_parse.py,sha256=UXbAZb4EJ-jlrkSfQXGTp7SA9B-OG5UBgV2SkCQZHxg,55804
|
|
69
69
|
dkist_processing_cryonirsp/tests/test_quality.py,sha256=DWuL7q8x2RtPz3LN9-KEw541sv6Law9WyVQKaamkOmE,8169
|
|
70
70
|
dkist_processing_cryonirsp/tests/test_sp_beam_boundaries.py,sha256=4hONuVLQAqkQjNtpNzvmqEWLg3LI1XJLWaekkeS3SJo,4815
|
|
71
71
|
dkist_processing_cryonirsp/tests/test_sp_dispersion_axis_correction.py,sha256=lhwT_I0HQuH66I0TRvARfuNnWWjxeAvQ4fEEVmbhp_E,6098
|
|
@@ -82,9 +82,9 @@ dkist_processing_cryonirsp/tests/local_trial_workflows/l0_to_l1.py,sha256=f00YZl
|
|
|
82
82
|
dkist_processing_cryonirsp/tests/local_trial_workflows/linearize_only.py,sha256=kl9yrE1EbgxNn__x4q0WYoZIvS8zefcOPbQQdxB4_ZE,3280
|
|
83
83
|
dkist_processing_cryonirsp/tests/local_trial_workflows/local_trial_helpers.py,sha256=14XonDUbMWh6n1AwtPaDLCeSvoHCzn-MNHCkHLB4VUc,19330
|
|
84
84
|
dkist_processing_cryonirsp/workflows/__init__.py,sha256=iEbV3oiKmkfmdZjeNJxqw08IIZnYSroq-2b-ARpkLFQ,112
|
|
85
|
-
dkist_processing_cryonirsp/workflows/ci_l0_processing.py,sha256=
|
|
85
|
+
dkist_processing_cryonirsp/workflows/ci_l0_processing.py,sha256=T-BOvDDWHzs5BDH5ctSBjzGgD6Xez52AnDXsH5_7Bms,3788
|
|
86
86
|
dkist_processing_cryonirsp/workflows/sp_l0_processing.py,sha256=A74av8E8mL9WzI4vWI2GbhVrRFQ7JCMlGAioEjXkkCU,4219
|
|
87
|
-
dkist_processing_cryonirsp/workflows/trial_workflows.py,sha256=
|
|
87
|
+
dkist_processing_cryonirsp/workflows/trial_workflows.py,sha256=UvSvsho6gYWliJ_sRN_uYbt5jBdA68hVyLiyr6X5QTo,8088
|
|
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
|
|
@@ -105,7 +105,7 @@ docs/requirements_table.rst,sha256=FaqSag9kPi77gWPhzeo_tFEhRFjb3qUuNqqQe1K76NM,2
|
|
|
105
105
|
docs/scientific_changelog.rst,sha256=01AWBSHg8zElnodCgAq-hMxhk9CkX5rtEENx4iz0sjI,300
|
|
106
106
|
docs/sp_science_calibration.rst,sha256=fHBOZ2cqySxLjNi737KfynlmHZy9W4EwvuzxnyjDNvk,2597
|
|
107
107
|
licenses/LICENSE.rst,sha256=piZaQplkzOMmH1NXg6QIdo9wwo9pPCoHkvm2-DmH76E,1462
|
|
108
|
-
dkist_processing_cryonirsp-1.4.
|
|
109
|
-
dkist_processing_cryonirsp-1.4.
|
|
110
|
-
dkist_processing_cryonirsp-1.4.
|
|
111
|
-
dkist_processing_cryonirsp-1.4.
|
|
108
|
+
dkist_processing_cryonirsp-1.4.15.dist-info/METADATA,sha256=nzYxsQYcgSPkitS0xUODUPTMDhXnJhGgo3mUvL9VyZE,8410
|
|
109
|
+
dkist_processing_cryonirsp-1.4.15.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
|
110
|
+
dkist_processing_cryonirsp-1.4.15.dist-info/top_level.txt,sha256=Sm9b1ddKnsF9Bh3mqDOct1Sm7k8I9aN7vGHgpmu-MlQ,51
|
|
111
|
+
dkist_processing_cryonirsp-1.4.15.dist-info/RECORD,,
|
{dkist_processing_cryonirsp-1.4.12.dist-info → dkist_processing_cryonirsp-1.4.15.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|