dkist-processing-dlnirsp 0.32.3__py3-none-any.whl → 0.32.5__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 +0 -2
- dkist_processing_dlnirsp/tasks/linearity_correction.py +59 -26
- dkist_processing_dlnirsp/tasks/wavelength_calibration.py +0 -3
- dkist_processing_dlnirsp/tests/conftest.py +13 -5
- dkist_processing_dlnirsp/tests/test_linearity_correction.py +117 -19
- dkist_processing_dlnirsp/tests/test_parse.py +1 -1
- {dkist_processing_dlnirsp-0.32.3.dist-info → dkist_processing_dlnirsp-0.32.5.dist-info}/METADATA +45 -44
- {dkist_processing_dlnirsp-0.32.3.dist-info → dkist_processing_dlnirsp-0.32.5.dist-info}/RECORD +13 -13
- docs/linearization.rst +2 -1
- docs/wavelength_calibration.rst +2 -2
- {dkist_processing_dlnirsp-0.32.3.dist-info → dkist_processing_dlnirsp-0.32.5.dist-info}/WHEEL +0 -0
- {dkist_processing_dlnirsp-0.32.3.dist-info → dkist_processing_dlnirsp-0.32.5.dist-info}/entry_points.txt +0 -0
- {dkist_processing_dlnirsp-0.32.3.dist-info → dkist_processing_dlnirsp-0.32.5.dist-info}/top_level.txt +0 -0
|
@@ -28,14 +28,32 @@ class LinearityCorrection(DlnirspTaskBase):
|
|
|
28
28
|
|
|
29
29
|
record_provenance = True
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
valid_camera_sequence_regex: re.Pattern = re.compile(
|
|
32
|
+
r"^(\d*subframe)?(?(1)|(?:\d*line,\d*read,?)+)(?:,\d*line)?$"
|
|
33
|
+
)
|
|
32
34
|
"""
|
|
33
|
-
regex pattern
|
|
35
|
+
regex pattern that defines all valid camera-sample sequences.
|
|
36
|
+
|
|
37
|
+
It must start with either "Xline,Yread", which can repeat any number of times, or "Xsubframe" which must be by itself.
|
|
38
|
+
Either of these sequences may be padded with ",Zline" reset frames.
|
|
39
|
+
"""
|
|
40
|
+
|
|
41
|
+
uptheramp_coadd_regex: re.Pattern = re.compile(r"(\d*)line,(\d*)read")
|
|
42
|
+
"""
|
|
43
|
+
regex pattern used to parse line-read-line values for a single UpTheRamp coadd.
|
|
34
44
|
|
|
35
45
|
This is where we decide that camera sequences are one or more coadd sequences, where each coadd sequence is
|
|
36
46
|
"Xline,Yread". The total sequence may be padded with ",Zline" reset frames, which are not captured by this regex.
|
|
37
47
|
"""
|
|
38
48
|
|
|
49
|
+
subframe_sequence_regex: re.Pattern = re.compile(r"(\d*)subframe")
|
|
50
|
+
"""
|
|
51
|
+
regex pattern used to parse coadds in SubFrame mode
|
|
52
|
+
|
|
53
|
+
Simply looks for "Xsubframe" and captures the "X". The sequence may be padded with ",Zline" reset frames, which are
|
|
54
|
+
not captured by this regex.
|
|
55
|
+
"""
|
|
56
|
+
|
|
39
57
|
def run(self):
|
|
40
58
|
"""
|
|
41
59
|
Linearize IR camera frames or tag VIS camera frames as LINEARIZED.
|
|
@@ -110,17 +128,16 @@ class LinearityCorrection(DlnirspTaskBase):
|
|
|
110
128
|
)
|
|
111
129
|
num_coadds = len(coadd_sequence_nums_list)
|
|
112
130
|
|
|
113
|
-
line_read_line_indices = coadd_sequence_nums_list[0]
|
|
114
|
-
num_bias, num_read = line_read_line_indices[:2]
|
|
115
|
-
|
|
116
|
-
ndr_per_coadd = num_bias + num_read
|
|
117
|
-
|
|
118
131
|
# In `is_ramp_valid` we already confirmed that all NDRs have the same values and that they are one of the
|
|
119
132
|
# expected values
|
|
120
133
|
camera_readout_mode = ramp_obj_list[0].camera_readout_mode
|
|
121
134
|
modulator_spin_mode = ramp_obj_list[0].modulator_spin_mode
|
|
122
135
|
match camera_readout_mode:
|
|
123
136
|
case "UpTheRamp":
|
|
137
|
+
line_read_line_indices = coadd_sequence_nums_list[0]
|
|
138
|
+
num_bias, num_read = line_read_line_indices[:2]
|
|
139
|
+
ndr_per_coadd = num_bias + num_read
|
|
140
|
+
|
|
124
141
|
match modulator_spin_mode:
|
|
125
142
|
case "Continuous":
|
|
126
143
|
linearization_func = partial(
|
|
@@ -136,6 +153,11 @@ class LinearityCorrection(DlnirspTaskBase):
|
|
|
136
153
|
)
|
|
137
154
|
|
|
138
155
|
case "SubFrame":
|
|
156
|
+
# `self.valid_camera_sequence_regex`, along with `parse_camera_sample_sequence`, provides assurance that
|
|
157
|
+
# by the time we get here these assumptions are valid
|
|
158
|
+
num_bias = 0
|
|
159
|
+
num_read = 1
|
|
160
|
+
ndr_per_coadd = 1
|
|
139
161
|
linearization_func = self.linearize_subframe_coadd
|
|
140
162
|
|
|
141
163
|
coadd_stack = np.zeros((num_coadds, *ramp_obj_list[0].data.shape))
|
|
@@ -160,13 +182,15 @@ class LinearityCorrection(DlnirspTaskBase):
|
|
|
160
182
|
r"""
|
|
161
183
|
Linearize a single coadd taken in "SubFrame" camera readout mode. This method applies to all modulator spin modes.
|
|
162
184
|
|
|
185
|
+
In "SubFrame" mode a single coadd contains a single read of the detector with no bias frames.
|
|
186
|
+
|
|
163
187
|
The final, linearized coadd, :math:`\mathrm{ADU}_{lin}` is
|
|
164
188
|
|
|
165
189
|
.. math::
|
|
166
|
-
\mathrm{ADU}_{lin} = f(\mathrm{ADU}_{raw
|
|
190
|
+
\mathrm{ADU}_{lin} = f(\mathrm{ADU}_{raw})
|
|
167
191
|
|
|
168
192
|
where :math:`f(x)` is the `correction polynomial <apply_correction_polynomial>` and
|
|
169
|
-
:math:`\mathrm{ADU}_{raw
|
|
193
|
+
:math:`\mathrm{ADU}_{raw}` is the single read frame in the coadd.
|
|
170
194
|
"""
|
|
171
195
|
# Need to cast as float because raw are uint16 and will thus explode for values below 0
|
|
172
196
|
last_read = coadd_obj_list[-1].data.astype(float)
|
|
@@ -291,16 +315,25 @@ class LinearityCorrection(DlnirspTaskBase):
|
|
|
291
315
|
"3line,45read,3line,45read,2line"
|
|
292
316
|
`[[3, 45], [3, 45]]`
|
|
293
317
|
|
|
318
|
+
"4subframe,89line"
|
|
319
|
+
`[[1], [1], [1], [1]]`
|
|
320
|
+
|
|
294
321
|
Returns
|
|
295
322
|
-------
|
|
296
|
-
A list of lists. Top-level list contains an item for each coadd.
|
|
297
|
-
length 2. The numbers in these inner lists correspond to the number of bias and read frames in that coadd,
|
|
298
|
-
respectively.
|
|
323
|
+
A list of lists. Top-level list contains an item for each coadd. In UpTheRamp mode these items are themselves
|
|
324
|
+
lists of length 2. The numbers in these inner lists correspond to the number of bias and read frames in that coadd,
|
|
325
|
+
respectively. In SubFrame mode the inner lists will always be length 1 and should be equal to `[1]`.
|
|
299
326
|
"""
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
327
|
+
if "subframe" in camera_sample_sequence:
|
|
328
|
+
coadd_matches = self.subframe_sequence_regex.findall(camera_sample_sequence)
|
|
329
|
+
# `is_ramp_valid` ensures we only have a single match here
|
|
330
|
+
num_coadd = int(coadd_matches[0])
|
|
331
|
+
coadd_sequence_numbers = [[1]] * num_coadd
|
|
332
|
+
else:
|
|
333
|
+
coadd_matches = self.uptheramp_coadd_regex.findall(camera_sample_sequence)
|
|
334
|
+
coadd_sequence_numbers = [
|
|
335
|
+
[int(num) for num in coadd_match] for coadd_match in coadd_matches
|
|
336
|
+
]
|
|
304
337
|
|
|
305
338
|
return coadd_sequence_numbers
|
|
306
339
|
|
|
@@ -310,15 +343,15 @@ class LinearityCorrection(DlnirspTaskBase):
|
|
|
310
343
|
|
|
311
344
|
Current validity checks are:
|
|
312
345
|
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
346
|
+
#. All frames in the ramp have the same value for NUM_FRAMES_IN_RAMP
|
|
347
|
+
#. All frames in the ramp have the same value for CAMERA_READOUT_MODE
|
|
348
|
+
#. All frames in the ramp have the same value for MODULATOR_SPIN_MODE
|
|
349
|
+
#. The CAMERA_READOUT and MODULATOR_SPIN modes have expected values
|
|
350
|
+
#. The value of NUM_FRAMES_IN_RAMP equals the length of actual frames found
|
|
351
|
+
#. All frames in the ramp have the same value for CAMERA_SAMPLE_SEQUENCE
|
|
352
|
+
#. The camera sample sequence has the expected form (`valid_camera_sequence_regex`)
|
|
353
|
+
#. All coadds in the ramp have the same camera sample sequence
|
|
354
|
+
#. The ramp length is equal to the expected length from the camera sample sequence
|
|
322
355
|
|
|
323
356
|
If a ramp is not valid then the reason is logged and `False` is returned.
|
|
324
357
|
"""
|
|
@@ -382,7 +415,7 @@ class LinearityCorrection(DlnirspTaskBase):
|
|
|
382
415
|
return False
|
|
383
416
|
|
|
384
417
|
camera_sample_sequence = camera_sample_sequence_set.pop()
|
|
385
|
-
if
|
|
418
|
+
if not self.valid_camera_sequence_regex.search(camera_sample_sequence):
|
|
386
419
|
logger.info(
|
|
387
420
|
f"Malformed camera sample sequence: '{camera_sample_sequence}'. "
|
|
388
421
|
f"{common_status_str}"
|
|
@@ -4,12 +4,10 @@ import astropy.units as u
|
|
|
4
4
|
import numpy as np
|
|
5
5
|
from astropy.convolution import convolve_fft
|
|
6
6
|
from astropy.convolution import interpolate_replace_nans
|
|
7
|
-
from astropy.coordinates import EarthLocation
|
|
8
7
|
from astropy.time import Time
|
|
9
8
|
from astropy.units import Quantity
|
|
10
9
|
from astropy.wcs import WCS
|
|
11
10
|
from dkist_processing_common.codecs.asdf import asdf_decoder
|
|
12
|
-
from dkist_processing_common.codecs.asdf import asdf_encoder
|
|
13
11
|
from dkist_processing_common.codecs.fits import fits_array_decoder
|
|
14
12
|
from dkist_processing_common.codecs.json import json_decoder
|
|
15
13
|
from dkist_processing_common.codecs.json import json_encoder
|
|
@@ -178,7 +176,6 @@ class WavelengthCalibration(DlnirspTaskBase, CorrectionsMixin, QualityMixin):
|
|
|
178
176
|
|
|
179
177
|
with self.telemetry_span("Run wavelength solution fit"):
|
|
180
178
|
fit_result = fitter(
|
|
181
|
-
input_wavelength_vector=input_wavelength_vector,
|
|
182
179
|
input_spectrum=input_spectrum,
|
|
183
180
|
method="leastsq",
|
|
184
181
|
)
|
|
@@ -436,7 +436,19 @@ class RawRampHeaders(DlnirspHeaders):
|
|
|
436
436
|
raise ValueError(f"{array_shape = } is weird")
|
|
437
437
|
array_shape = array_shape[1:]
|
|
438
438
|
|
|
439
|
-
|
|
439
|
+
match camera_readout_mode:
|
|
440
|
+
case "UpTheRamp":
|
|
441
|
+
self.num_frames_per_coadd = num_line + num_read
|
|
442
|
+
coadd_read_sequence = f"{num_line}line,{num_read}read"
|
|
443
|
+
cam_read_sequence = ",".join([coadd_read_sequence] * num_coadd)
|
|
444
|
+
case "SubFrame":
|
|
445
|
+
self.num_frames_per_coadd = 1
|
|
446
|
+
cam_read_sequence = f"{num_coadd}subframe"
|
|
447
|
+
num_line = 0
|
|
448
|
+
num_read = 1
|
|
449
|
+
case _:
|
|
450
|
+
raise ValueError(f"Don't know how to make data for {camera_readout_mode = }")
|
|
451
|
+
|
|
440
452
|
num_NDR_per_ramp = self.num_frames_per_coadd * num_coadd + num_reset
|
|
441
453
|
num_frames = num_ramps * num_NDR_per_ramp
|
|
442
454
|
dataset_shape = (num_frames, *array_shape)
|
|
@@ -446,12 +458,8 @@ class RawRampHeaders(DlnirspHeaders):
|
|
|
446
458
|
self.ramp_length_sec = TimeDelta(ramp_length_sec, format="sec")
|
|
447
459
|
self.num_coadd = num_coadd
|
|
448
460
|
self.num_line = num_line
|
|
449
|
-
self.num_read = num_read
|
|
450
461
|
self.num_reset = num_reset
|
|
451
462
|
|
|
452
|
-
coadd_read_sequence = f"{num_line}line,{num_read}read"
|
|
453
|
-
cam_read_sequence = ",".join([coadd_read_sequence] * num_coadd)
|
|
454
|
-
|
|
455
463
|
if num_reset > 0:
|
|
456
464
|
cam_read_sequence += f",{num_reset}line"
|
|
457
465
|
|
|
@@ -84,21 +84,31 @@ def write_ramps_to_task(
|
|
|
84
84
|
poly_coeffs = task.parameters.linearization_poly_coeffs
|
|
85
85
|
correction_poly = np.poly1d(poly_coeffs)
|
|
86
86
|
|
|
87
|
-
match
|
|
88
|
-
case "
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
87
|
+
match camera_readout_mode:
|
|
88
|
+
case "UpTheRamp":
|
|
89
|
+
match modulator_spin_mode:
|
|
90
|
+
case "Continuous":
|
|
91
|
+
ramp_data_func = partial(
|
|
92
|
+
make_continuous_ramp_data, bias=bias_value, correction_poly=correction_poly
|
|
93
|
+
)
|
|
94
|
+
case "Discrete":
|
|
95
|
+
ramp_data_func = partial(
|
|
96
|
+
make_discrete_ramp_data,
|
|
97
|
+
slopes=slopes,
|
|
98
|
+
intercepts=intercepts,
|
|
99
|
+
bias=bias_value,
|
|
100
|
+
correction_poly=correction_poly,
|
|
101
|
+
)
|
|
102
|
+
case _:
|
|
103
|
+
raise ValueError(
|
|
104
|
+
f"Don't know how to make data for {camera_readout_mode = } and {modulator_spin_mode = }"
|
|
105
|
+
)
|
|
106
|
+
case "SubFrame":
|
|
107
|
+
ramp_data_func = partial(make_subframe_data, correction_poly=correction_poly)
|
|
108
|
+
num_line = 0
|
|
109
|
+
num_read = 1
|
|
100
110
|
case _:
|
|
101
|
-
raise ValueError(f"Don't know how to make data for {
|
|
111
|
+
raise ValueError(f"Don't know how to make data for {camera_readout_mode = }")
|
|
102
112
|
|
|
103
113
|
dataset = RawRampHeaders(
|
|
104
114
|
array_shape=array_shape,
|
|
@@ -239,6 +249,27 @@ def make_discrete_ramp_data(
|
|
|
239
249
|
return array
|
|
240
250
|
|
|
241
251
|
|
|
252
|
+
def make_subframe_data(
|
|
253
|
+
frame: RawRampHeaders, correction_poly: np.poly1d = np.poly1d([1])
|
|
254
|
+
) -> np.ndarray:
|
|
255
|
+
shape = frame.array_shape
|
|
256
|
+
if frame.frame_in_ramp("") <= frame.num_coadd:
|
|
257
|
+
# One of the subframes. These are the values we use
|
|
258
|
+
true_value = (frame.current_coadd_in_ramp + 1) * 1000
|
|
259
|
+
|
|
260
|
+
else:
|
|
261
|
+
# A reset frame. Who cares
|
|
262
|
+
true_value = np.nan
|
|
263
|
+
|
|
264
|
+
# We want the polynomial corrected frame value to equal `true_value`, but the value of the polynomial will change
|
|
265
|
+
# depending on the "raw" value (`value`). So here we solve for the raw value numerically.
|
|
266
|
+
# Basically, solve for x such that `x / poly(x) == true_value`
|
|
267
|
+
fit_func = lambda x: x / correction_poly(x) - true_value
|
|
268
|
+
value = fsolve(fit_func, true_value)
|
|
269
|
+
|
|
270
|
+
return np.ones(shape) * value
|
|
271
|
+
|
|
272
|
+
|
|
242
273
|
def write_vis_inputs_to_task(task, num_frames):
|
|
243
274
|
dataset = SimpleModulatedHeaders(
|
|
244
275
|
num_modstates=num_frames,
|
|
@@ -283,10 +314,9 @@ def up_the_ramp_continuous_expected_value(
|
|
|
283
314
|
def subframe_expected_value(
|
|
284
315
|
*, ramp_num: int, num_line: int, num_read: int, expected_avg_coadd_value: float, **unused_args
|
|
285
316
|
) -> float:
|
|
286
|
-
# See `
|
|
287
|
-
#
|
|
288
|
-
|
|
289
|
-
return ramp_num * 100 + (num_line + num_read) * 10 + expected_avg_coadd_value
|
|
317
|
+
# See `make_subframe_ramp_data` for where this comes from; each coadd has the value of it's coadd number (1-indexed)
|
|
318
|
+
# times 1000
|
|
319
|
+
return expected_avg_coadd_value * 1000
|
|
290
320
|
|
|
291
321
|
|
|
292
322
|
def discrete_expected_value(
|
|
@@ -472,6 +502,8 @@ def test_VIS_linearity_correction(
|
|
|
472
502
|
[[3, 2], [3, 2], [3, 2]],
|
|
473
503
|
id="3line,2read,3line,2read,3line,2read,1line",
|
|
474
504
|
),
|
|
505
|
+
pytest.param("3subframe", [[1], [1], [1]], id="3subframe"),
|
|
506
|
+
pytest.param("5subframe,37line", [[1], [1], [1], [1], [1]], id="5subframe,37line"),
|
|
475
507
|
],
|
|
476
508
|
)
|
|
477
509
|
def test_parse_camera_sample_sequence(linearity_correction_task, camera_sequence, expected_results):
|
|
@@ -573,6 +605,19 @@ def test_linearity_correction_with_invalid_ramps(
|
|
|
573
605
|
"Missing some ramp frames. Expected 10 from sample sequence",
|
|
574
606
|
id="wrong_number_from_seq",
|
|
575
607
|
),
|
|
608
|
+
pytest.param(
|
|
609
|
+
[
|
|
610
|
+
DummyRampFitsAccess(
|
|
611
|
+
num_frames_in_ramp=2, camera_sample_sequence="5subframe,23line"
|
|
612
|
+
),
|
|
613
|
+
DummyRampFitsAccess(
|
|
614
|
+
num_frames_in_ramp=2, camera_sample_sequence="5subframe,23line"
|
|
615
|
+
),
|
|
616
|
+
],
|
|
617
|
+
False,
|
|
618
|
+
"Missing some ramp frames. Expected 28 from sample sequence",
|
|
619
|
+
id="wrong_number_from_seq_subframe",
|
|
620
|
+
),
|
|
576
621
|
pytest.param(
|
|
577
622
|
[
|
|
578
623
|
DummyRampFitsAccess(
|
|
@@ -584,6 +629,39 @@ def test_linearity_correction_with_invalid_ramps(
|
|
|
584
629
|
"Malformed camera sample sequence",
|
|
585
630
|
id="bad_cam_seq",
|
|
586
631
|
),
|
|
632
|
+
pytest.param(
|
|
633
|
+
[
|
|
634
|
+
DummyRampFitsAccess(
|
|
635
|
+
num_frames_in_ramp=1,
|
|
636
|
+
camera_sample_sequence="3subframe,2read",
|
|
637
|
+
),
|
|
638
|
+
],
|
|
639
|
+
False,
|
|
640
|
+
"Malformed camera sample sequence",
|
|
641
|
+
id="bad_cam_seq_subframe_mix",
|
|
642
|
+
),
|
|
643
|
+
pytest.param(
|
|
644
|
+
[
|
|
645
|
+
DummyRampFitsAccess(
|
|
646
|
+
num_frames_in_ramp=1,
|
|
647
|
+
camera_sample_sequence="10line,3subframe",
|
|
648
|
+
),
|
|
649
|
+
],
|
|
650
|
+
False,
|
|
651
|
+
"Malformed camera sample sequence",
|
|
652
|
+
id="bad_cam_seq_line_subframe",
|
|
653
|
+
),
|
|
654
|
+
pytest.param(
|
|
655
|
+
[
|
|
656
|
+
DummyRampFitsAccess(
|
|
657
|
+
num_frames_in_ramp=1,
|
|
658
|
+
camera_sample_sequence="3subframe,3subframe",
|
|
659
|
+
),
|
|
660
|
+
],
|
|
661
|
+
False,
|
|
662
|
+
"Malformed camera sample sequence",
|
|
663
|
+
id="bad_cam_seq_multiple_subframe",
|
|
664
|
+
),
|
|
587
665
|
pytest.param(
|
|
588
666
|
[
|
|
589
667
|
DummyRampFitsAccess(camera_readout_mode="UpTheRamp"),
|
|
@@ -623,6 +701,26 @@ def test_linearity_correction_with_invalid_ramps(
|
|
|
623
701
|
"",
|
|
624
702
|
id="valid",
|
|
625
703
|
),
|
|
704
|
+
pytest.param(
|
|
705
|
+
[
|
|
706
|
+
DummyRampFitsAccess(num_frames_in_ramp=2, camera_sample_sequence="2subframe"),
|
|
707
|
+
DummyRampFitsAccess(num_frames_in_ramp=2, camera_sample_sequence="2subframe"),
|
|
708
|
+
],
|
|
709
|
+
True,
|
|
710
|
+
"",
|
|
711
|
+
id="valid_subframe",
|
|
712
|
+
),
|
|
713
|
+
pytest.param(
|
|
714
|
+
[
|
|
715
|
+
DummyRampFitsAccess(num_frames_in_ramp=4, camera_sample_sequence="3subframe,1line"),
|
|
716
|
+
DummyRampFitsAccess(num_frames_in_ramp=4, camera_sample_sequence="3subframe,1line"),
|
|
717
|
+
DummyRampFitsAccess(num_frames_in_ramp=4, camera_sample_sequence="3subframe,1line"),
|
|
718
|
+
DummyRampFitsAccess(num_frames_in_ramp=4, camera_sample_sequence="3subframe,1line"),
|
|
719
|
+
],
|
|
720
|
+
True,
|
|
721
|
+
"",
|
|
722
|
+
id="valid_subframe_reset",
|
|
723
|
+
),
|
|
626
724
|
],
|
|
627
725
|
)
|
|
628
726
|
def test_is_ramp_valid(linearity_correction_task, ramp_list, valid, message, caplog):
|
|
@@ -634,7 +732,7 @@ def test_is_ramp_valid(linearity_correction_task, ramp_list, valid, message, cap
|
|
|
634
732
|
logger.add(caplog.handler)
|
|
635
733
|
assert linearity_correction_task.is_ramp_valid(ramp_list) is valid
|
|
636
734
|
if not valid:
|
|
637
|
-
assert re.search(message, caplog.text)
|
|
735
|
+
assert re.search(message, caplog.text), f"Did not find {message} in {caplog.text}"
|
|
638
736
|
|
|
639
737
|
|
|
640
738
|
def test_correction_polynomial(linearity_correction_task, assign_input_dataset_doc_to_task):
|
|
@@ -46,7 +46,7 @@ def raw_ramp_parse_task(tmp_path, recipe_run_id, arm_id):
|
|
|
46
46
|
ramp_length_sec = 1.0
|
|
47
47
|
array_shape = (3, 3)
|
|
48
48
|
modulator_spin_mode = "Really fast"
|
|
49
|
-
camera_readout_mode = "
|
|
49
|
+
camera_readout_mode = "UpTheRamp"
|
|
50
50
|
with ParseL0DlnirspRampData(
|
|
51
51
|
recipe_run_id=recipe_run_id,
|
|
52
52
|
workflow_name="workflow_name",
|
{dkist_processing_dlnirsp-0.32.3.dist-info → dkist_processing_dlnirsp-0.32.5.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.5
|
|
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.8.
|
|
16
|
+
Requires-Dist: dkist-processing-common==11.8.1
|
|
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
|
|
@@ -28,7 +28,7 @@ Requires-Dist: peakutils==1.3.5
|
|
|
28
28
|
Requires-Dist: sunpy==6.1.1
|
|
29
29
|
Requires-Dist: moviepy==2.1.2
|
|
30
30
|
Requires-Dist: asdf==3.5.0
|
|
31
|
-
Requires-Dist: solar-wavelength-calibration==
|
|
31
|
+
Requires-Dist: solar-wavelength-calibration==2.0.0
|
|
32
32
|
Provides-Extra: test
|
|
33
33
|
Requires-Dist: pytest; extra == "test"
|
|
34
34
|
Requires-Dist: pytest-cov; extra == "test"
|
|
@@ -94,44 +94,44 @@ Requires-Dist: aiohappyeyeballs==2.6.1; extra == "frozen"
|
|
|
94
94
|
Requires-Dist: aiohttp==3.13.2; extra == "frozen"
|
|
95
95
|
Requires-Dist: aiosignal==1.4.0; extra == "frozen"
|
|
96
96
|
Requires-Dist: aiosmtplib==5.0.0; extra == "frozen"
|
|
97
|
-
Requires-Dist: alembic==1.17.
|
|
97
|
+
Requires-Dist: alembic==1.17.2; extra == "frozen"
|
|
98
98
|
Requires-Dist: amqp==5.3.1; extra == "frozen"
|
|
99
99
|
Requires-Dist: annotated-types==0.7.0; extra == "frozen"
|
|
100
|
-
Requires-Dist: anyio==4.
|
|
100
|
+
Requires-Dist: anyio==4.12.0; extra == "frozen"
|
|
101
101
|
Requires-Dist: apache-airflow==2.11.0; extra == "frozen"
|
|
102
|
-
Requires-Dist: apache-airflow-providers-celery==3.
|
|
103
|
-
Requires-Dist: apache-airflow-providers-common-compat==1.
|
|
104
|
-
Requires-Dist: apache-airflow-providers-common-io==1.
|
|
105
|
-
Requires-Dist: apache-airflow-providers-common-sql==1.
|
|
102
|
+
Requires-Dist: apache-airflow-providers-celery==3.13.1; extra == "frozen"
|
|
103
|
+
Requires-Dist: apache-airflow-providers-common-compat==1.10.0; extra == "frozen"
|
|
104
|
+
Requires-Dist: apache-airflow-providers-common-io==1.7.0; extra == "frozen"
|
|
105
|
+
Requires-Dist: apache-airflow-providers-common-sql==1.29.0; extra == "frozen"
|
|
106
106
|
Requires-Dist: apache-airflow-providers-fab==1.5.3; extra == "frozen"
|
|
107
|
-
Requires-Dist: apache-airflow-providers-ftp==3.
|
|
108
|
-
Requires-Dist: apache-airflow-providers-http==5.
|
|
109
|
-
Requires-Dist: apache-airflow-providers-imap==3.
|
|
110
|
-
Requires-Dist: apache-airflow-providers-postgres==6.
|
|
111
|
-
Requires-Dist: apache-airflow-providers-smtp==2.
|
|
112
|
-
Requires-Dist: apache-airflow-providers-sqlite==4.
|
|
113
|
-
Requires-Dist: apispec==6.
|
|
107
|
+
Requires-Dist: apache-airflow-providers-ftp==3.14.0; extra == "frozen"
|
|
108
|
+
Requires-Dist: apache-airflow-providers-http==5.6.0; extra == "frozen"
|
|
109
|
+
Requires-Dist: apache-airflow-providers-imap==3.10.0; extra == "frozen"
|
|
110
|
+
Requires-Dist: apache-airflow-providers-postgres==6.5.0; extra == "frozen"
|
|
111
|
+
Requires-Dist: apache-airflow-providers-smtp==2.4.0; extra == "frozen"
|
|
112
|
+
Requires-Dist: apache-airflow-providers-sqlite==4.2.0; extra == "frozen"
|
|
113
|
+
Requires-Dist: apispec==6.9.0; extra == "frozen"
|
|
114
114
|
Requires-Dist: argcomplete==3.6.3; extra == "frozen"
|
|
115
115
|
Requires-Dist: asdf==3.5.0; extra == "frozen"
|
|
116
116
|
Requires-Dist: asdf_standard==1.4.0; extra == "frozen"
|
|
117
117
|
Requires-Dist: asdf_transform_schemas==0.6.0; extra == "frozen"
|
|
118
|
-
Requires-Dist: asgiref==3.
|
|
119
|
-
Requires-Dist: asteval==1.0.
|
|
118
|
+
Requires-Dist: asgiref==3.11.0; extra == "frozen"
|
|
119
|
+
Requires-Dist: asteval==1.0.7; extra == "frozen"
|
|
120
120
|
Requires-Dist: astropy==7.0.2; extra == "frozen"
|
|
121
|
-
Requires-Dist: astropy-iers-data==0.2025.
|
|
122
|
-
Requires-Dist: asyncpg==0.
|
|
121
|
+
Requires-Dist: astropy-iers-data==0.2025.12.1.0.45.12; extra == "frozen"
|
|
122
|
+
Requires-Dist: asyncpg==0.31.0; extra == "frozen"
|
|
123
123
|
Requires-Dist: attrs==25.4.0; extra == "frozen"
|
|
124
124
|
Requires-Dist: babel==2.17.0; extra == "frozen"
|
|
125
|
-
Requires-Dist: billiard==4.2.
|
|
125
|
+
Requires-Dist: billiard==4.2.4; extra == "frozen"
|
|
126
126
|
Requires-Dist: blinker==1.9.0; extra == "frozen"
|
|
127
|
-
Requires-Dist: boto3==1.
|
|
128
|
-
Requires-Dist: botocore==1.
|
|
127
|
+
Requires-Dist: boto3==1.42.1; extra == "frozen"
|
|
128
|
+
Requires-Dist: botocore==1.42.1; extra == "frozen"
|
|
129
129
|
Requires-Dist: cachelib==0.13.0; extra == "frozen"
|
|
130
|
-
Requires-Dist: celery==5.
|
|
131
|
-
Requires-Dist: certifi==2025.
|
|
130
|
+
Requires-Dist: celery==5.6.0; extra == "frozen"
|
|
131
|
+
Requires-Dist: certifi==2025.11.12; extra == "frozen"
|
|
132
132
|
Requires-Dist: cffi==2.0.0; extra == "frozen"
|
|
133
133
|
Requires-Dist: charset-normalizer==3.4.4; extra == "frozen"
|
|
134
|
-
Requires-Dist: click==8.3.
|
|
134
|
+
Requires-Dist: click==8.3.1; extra == "frozen"
|
|
135
135
|
Requires-Dist: click-didyoumean==0.3.1; extra == "frozen"
|
|
136
136
|
Requires-Dist: click-plugins==1.1.1.2; extra == "frozen"
|
|
137
137
|
Requires-Dist: click-repl==0.3.0; extra == "frozen"
|
|
@@ -148,9 +148,9 @@ Requires-Dist: dacite==1.9.2; extra == "frozen"
|
|
|
148
148
|
Requires-Dist: decorator==5.2.1; extra == "frozen"
|
|
149
149
|
Requires-Dist: dill==0.4.0; extra == "frozen"
|
|
150
150
|
Requires-Dist: dkist-header-validator==5.2.1; extra == "frozen"
|
|
151
|
-
Requires-Dist: dkist-processing-common==11.8.
|
|
151
|
+
Requires-Dist: dkist-processing-common==11.8.1; extra == "frozen"
|
|
152
152
|
Requires-Dist: dkist-processing-core==6.0.0; extra == "frozen"
|
|
153
|
-
Requires-Dist: dkist-processing-dlnirsp==0.32.
|
|
153
|
+
Requires-Dist: dkist-processing-dlnirsp==0.32.5; extra == "frozen"
|
|
154
154
|
Requires-Dist: dkist-processing-math==2.2.1; extra == "frozen"
|
|
155
155
|
Requires-Dist: dkist-processing-pac==3.1.1; extra == "frozen"
|
|
156
156
|
Requires-Dist: dkist-service-configuration==4.1.7; extra == "frozen"
|
|
@@ -158,14 +158,15 @@ Requires-Dist: dkist-spectral-lines==3.0.0; extra == "frozen"
|
|
|
158
158
|
Requires-Dist: dkist_fits_specifications==4.17.0; extra == "frozen"
|
|
159
159
|
Requires-Dist: dnspython==2.8.0; extra == "frozen"
|
|
160
160
|
Requires-Dist: email-validator==2.3.0; extra == "frozen"
|
|
161
|
+
Requires-Dist: exceptiongroup==1.3.1; extra == "frozen"
|
|
161
162
|
Requires-Dist: fastjsonschema==2.21.2; extra == "frozen"
|
|
162
163
|
Requires-Dist: flower==2.0.1; extra == "frozen"
|
|
163
|
-
Requires-Dist: fonttools==4.
|
|
164
|
+
Requires-Dist: fonttools==4.61.0; extra == "frozen"
|
|
164
165
|
Requires-Dist: frozenlist==1.8.0; extra == "frozen"
|
|
165
166
|
Requires-Dist: fsspec==2025.10.0; extra == "frozen"
|
|
166
167
|
Requires-Dist: globus-sdk==3.65.0; extra == "frozen"
|
|
167
|
-
Requires-Dist: google-re2==1.1.
|
|
168
|
-
Requires-Dist: googleapis-common-protos==1.
|
|
168
|
+
Requires-Dist: google-re2==1.1.20251105; extra == "frozen"
|
|
169
|
+
Requires-Dist: googleapis-common-protos==1.72.0; extra == "frozen"
|
|
169
170
|
Requires-Dist: gqlclient==1.2.3; extra == "frozen"
|
|
170
171
|
Requires-Dist: greenlet==3.2.4; extra == "frozen"
|
|
171
172
|
Requires-Dist: grpcio==1.76.0; extra == "frozen"
|
|
@@ -184,7 +185,7 @@ Requires-Dist: jsonschema==4.25.1; extra == "frozen"
|
|
|
184
185
|
Requires-Dist: jsonschema-specifications==2025.9.1; extra == "frozen"
|
|
185
186
|
Requires-Dist: jupyter_core==5.9.1; extra == "frozen"
|
|
186
187
|
Requires-Dist: kiwisolver==1.4.9; extra == "frozen"
|
|
187
|
-
Requires-Dist: kombu==5.6.
|
|
188
|
+
Requires-Dist: kombu==5.6.1; extra == "frozen"
|
|
188
189
|
Requires-Dist: lazy-object-proxy==1.12.0; extra == "frozen"
|
|
189
190
|
Requires-Dist: lazy_loader==0.4; extra == "frozen"
|
|
190
191
|
Requires-Dist: limits==5.6.0; extra == "frozen"
|
|
@@ -205,7 +206,7 @@ Requires-Dist: more-itertools==10.8.0; extra == "frozen"
|
|
|
205
206
|
Requires-Dist: moviepy==2.1.2; extra == "frozen"
|
|
206
207
|
Requires-Dist: multidict==6.7.0; extra == "frozen"
|
|
207
208
|
Requires-Dist: nbformat==5.10.4; extra == "frozen"
|
|
208
|
-
Requires-Dist: networkx==3.
|
|
209
|
+
Requires-Dist: networkx==3.6; extra == "frozen"
|
|
209
210
|
Requires-Dist: numba==0.61.2; extra == "frozen"
|
|
210
211
|
Requires-Dist: numpy==2.2.5; extra == "frozen"
|
|
211
212
|
Requires-Dist: object-clerk==1.0.0; extra == "frozen"
|
|
@@ -251,13 +252,13 @@ Requires-Dist: proglog==0.1.12; extra == "frozen"
|
|
|
251
252
|
Requires-Dist: prometheus_client==0.23.1; extra == "frozen"
|
|
252
253
|
Requires-Dist: prompt_toolkit==3.0.52; extra == "frozen"
|
|
253
254
|
Requires-Dist: propcache==0.4.1; extra == "frozen"
|
|
254
|
-
Requires-Dist: protobuf==6.33.
|
|
255
|
+
Requires-Dist: protobuf==6.33.1; extra == "frozen"
|
|
255
256
|
Requires-Dist: psutil==7.1.3; extra == "frozen"
|
|
256
257
|
Requires-Dist: psycopg2-binary==2.9.11; extra == "frozen"
|
|
257
258
|
Requires-Dist: pycparser==2.23; extra == "frozen"
|
|
258
|
-
Requires-Dist: pydantic==2.12.
|
|
259
|
-
Requires-Dist: pydantic-settings==2.
|
|
260
|
-
Requires-Dist: pydantic_core==2.41.
|
|
259
|
+
Requires-Dist: pydantic==2.12.5; extra == "frozen"
|
|
260
|
+
Requires-Dist: pydantic-settings==2.12.0; extra == "frozen"
|
|
261
|
+
Requires-Dist: pydantic_core==2.41.5; extra == "frozen"
|
|
261
262
|
Requires-Dist: pyerfa==2.0.1.5; extra == "frozen"
|
|
262
263
|
Requires-Dist: pyparsing==3.2.5; extra == "frozen"
|
|
263
264
|
Requires-Dist: python-daemon==3.1.2; extra == "frozen"
|
|
@@ -273,17 +274,16 @@ Requires-Dist: requests-toolbelt==1.0.0; extra == "frozen"
|
|
|
273
274
|
Requires-Dist: rfc3339-validator==0.1.4; extra == "frozen"
|
|
274
275
|
Requires-Dist: rich==13.9.4; extra == "frozen"
|
|
275
276
|
Requires-Dist: rich-argparse==1.7.2; extra == "frozen"
|
|
276
|
-
Requires-Dist: rpds-py==0.
|
|
277
|
-
Requires-Dist: s3transfer==0.
|
|
277
|
+
Requires-Dist: rpds-py==0.30.0; extra == "frozen"
|
|
278
|
+
Requires-Dist: s3transfer==0.16.0; extra == "frozen"
|
|
278
279
|
Requires-Dist: scikit-image==0.25.2; extra == "frozen"
|
|
279
280
|
Requires-Dist: scipy==1.15.3; extra == "frozen"
|
|
280
281
|
Requires-Dist: semantic-version==2.10.0; extra == "frozen"
|
|
281
282
|
Requires-Dist: setproctitle==1.3.7; extra == "frozen"
|
|
282
283
|
Requires-Dist: six==1.17.0; extra == "frozen"
|
|
283
|
-
Requires-Dist:
|
|
284
|
-
Requires-Dist: solar-wavelength-calibration==1.0.1; extra == "frozen"
|
|
284
|
+
Requires-Dist: solar-wavelength-calibration==2.0.0; extra == "frozen"
|
|
285
285
|
Requires-Dist: sqids==0.5.1; extra == "frozen"
|
|
286
|
-
Requires-Dist: sqlparse==0.5.
|
|
286
|
+
Requires-Dist: sqlparse==0.5.4; extra == "frozen"
|
|
287
287
|
Requires-Dist: sunpy==6.1.1; extra == "frozen"
|
|
288
288
|
Requires-Dist: tabulate==0.9.0; extra == "frozen"
|
|
289
289
|
Requires-Dist: talus==1.3.4; extra == "frozen"
|
|
@@ -297,16 +297,17 @@ Requires-Dist: traitlets==5.14.3; extra == "frozen"
|
|
|
297
297
|
Requires-Dist: typing-inspection==0.4.2; extra == "frozen"
|
|
298
298
|
Requires-Dist: typing_extensions==4.15.0; extra == "frozen"
|
|
299
299
|
Requires-Dist: tzdata==2025.2; extra == "frozen"
|
|
300
|
+
Requires-Dist: tzlocal==5.3.1; extra == "frozen"
|
|
300
301
|
Requires-Dist: uc-micro-py==1.0.3; extra == "frozen"
|
|
301
302
|
Requires-Dist: uncertainties==3.2.3; extra == "frozen"
|
|
302
|
-
Requires-Dist: universal_pathlib==0.3.
|
|
303
|
+
Requires-Dist: universal_pathlib==0.3.6; extra == "frozen"
|
|
303
304
|
Requires-Dist: urllib3==2.5.0; extra == "frozen"
|
|
304
305
|
Requires-Dist: vine==5.1.0; extra == "frozen"
|
|
305
306
|
Requires-Dist: voluptuous==0.15.2; extra == "frozen"
|
|
306
307
|
Requires-Dist: wcwidth==0.2.14; extra == "frozen"
|
|
307
308
|
Requires-Dist: wirerope==1.0.0; extra == "frozen"
|
|
308
309
|
Requires-Dist: wrapt==1.17.3; extra == "frozen"
|
|
309
|
-
Requires-Dist: yamale==6.
|
|
310
|
+
Requires-Dist: yamale==6.1.0; extra == "frozen"
|
|
310
311
|
Requires-Dist: yarl==1.22.0; extra == "frozen"
|
|
311
312
|
Requires-Dist: zipp==3.23.0; extra == "frozen"
|
|
312
313
|
|
{dkist_processing_dlnirsp-0.32.3.dist-info → dkist_processing_dlnirsp-0.32.5.dist-info}/RECORD
RENAMED
|
@@ -5,7 +5,7 @@ dkist_processing_dlnirsp/dev_scripts/__init__.py,sha256=tITkbcFg1a-24sdFaWK8OyLr
|
|
|
5
5
|
dkist_processing_dlnirsp/dev_scripts/test_slitbeam_group_assignment.py,sha256=ac-8G-P2L_xW6m3tOooFlHs1N5_C6F_7k2VAU2a9_1A,4171
|
|
6
6
|
dkist_processing_dlnirsp/models/__init__.py,sha256=ItaZgbjndT5uwEv2YDQZCVAHGbiB_sjzkX8MMbIgcSo,45
|
|
7
7
|
dkist_processing_dlnirsp/models/constants.py,sha256=0TV_K6WbvUlDQdNRxx_qblQ_dwN7RGU7ng2iDOBQedo,6386
|
|
8
|
-
dkist_processing_dlnirsp/models/fits_access.py,sha256=
|
|
8
|
+
dkist_processing_dlnirsp/models/fits_access.py,sha256=5HH8NM2tAh63Aauy6oCXKJGJ2AbQPBP5L1DitVfFEs0,895
|
|
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
|
|
@@ -27,19 +27,19 @@ dkist_processing_dlnirsp/tasks/ifu_drift.py,sha256=JeFgl6uk6lYU4jJ-gBYtRESyUa9mb
|
|
|
27
27
|
dkist_processing_dlnirsp/tasks/instrument_polarization.py,sha256=G79qXg1080zsd8ZwwYSSupUGWPRNBevyag49H32gh60,28201
|
|
28
28
|
dkist_processing_dlnirsp/tasks/l1_output_data.py,sha256=Psta0476jih-cfmpdnzmquys030sW4f4VX6ksAb-g1o,465
|
|
29
29
|
dkist_processing_dlnirsp/tasks/lamp.py,sha256=twoMHMnE2jm2OYxkeHFcjqcyQYVtEjSU2_z2mmn3Ybs,5390
|
|
30
|
-
dkist_processing_dlnirsp/tasks/linearity_correction.py,sha256=
|
|
30
|
+
dkist_processing_dlnirsp/tasks/linearity_correction.py,sha256=z3MpWHp0lZYB2zrfHfH7HlcKoro6TPxwEN8rpqVv08c,22716
|
|
31
31
|
dkist_processing_dlnirsp/tasks/make_movie_frames.py,sha256=zxyAWNnPFbG7jpUEe3ekRyJGjk706T9a-yiA3eoWi5M,6290
|
|
32
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
34
|
dkist_processing_dlnirsp/tasks/science.py,sha256=sNI4AYO10qe3JL62KWXR87MnfX9m85Jo4_PkQ0qd5TQ,35737
|
|
35
35
|
dkist_processing_dlnirsp/tasks/solar.py,sha256=NyLYkRophfXaVtvnGuNEvkcE8JNcmCJVuobNYAZ7KjQ,11135
|
|
36
|
-
dkist_processing_dlnirsp/tasks/wavelength_calibration.py,sha256=
|
|
36
|
+
dkist_processing_dlnirsp/tasks/wavelength_calibration.py,sha256=QhFlbX8h9UqkK2vx779nK6LBksp2P2yPqhAxrwcuJ4o,16851
|
|
37
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
|
|
41
41
|
dkist_processing_dlnirsp/tests/__init__.py,sha256=UHIAs0SglAXeB7UeDgVwo1EE9QPRq3rG3BZkiCpBq7M,42
|
|
42
|
-
dkist_processing_dlnirsp/tests/conftest.py,sha256=
|
|
42
|
+
dkist_processing_dlnirsp/tests/conftest.py,sha256=Xp02ZyHi6X3FzyY_IQOjLsH3gOA9zK7KGo9gpeeO6jw,68768
|
|
43
43
|
dkist_processing_dlnirsp/tests/test_assemble_movie.py,sha256=hKAIHCRQu8fZwCuWsX_4WHFrDpC0bDQ9CCI9A5bRkqg,5665
|
|
44
44
|
dkist_processing_dlnirsp/tests/test_assemble_quality.py,sha256=djZsVSuRGl3akH3LmYjWvYuNSUFFQfS5y0S3Op7lQIE,1327
|
|
45
45
|
dkist_processing_dlnirsp/tests/test_bad_pixel_map.py,sha256=g5jWhVGSHMOtkcdiZ27G51ciud4ySjoDAjvMGLlgTIM,6093
|
|
@@ -53,10 +53,10 @@ dkist_processing_dlnirsp/tests/test_group_id.py,sha256=TpNllN6OZuYF8almsayk7pRTc
|
|
|
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=JkPNtsRad2JQQ2QiJjQar9tJuCi9-ksOdEYHW_-kl58,31793
|
|
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=UIII4R6JruUEFIlYDRwTwiBqyf4ldYxAhCWHM-jcd6E,38005
|
|
60
60
|
dkist_processing_dlnirsp/tests/test_quality.py,sha256=OBWva_E6T5RfDuo73LiTdTr7uh2FO04VpBAsSOLfjVQ,6122
|
|
61
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
|
|
@@ -86,16 +86,16 @@ docs/index.rst,sha256=c2KAA_icOw7Ao3rWVv7lRBTEZ-9JWidL615Xrt6fSq4,378
|
|
|
86
86
|
docs/l0_to_l1_dlnirsp.rst,sha256=94gxaVBIIR9ljJBDAhZyViwbNUuHTaIwTuxBgSnsh60,630
|
|
87
87
|
docs/l0_to_l1_dlnirsp_full-trial.rst,sha256=ZUs2RCqlklRKq6B64H-RymiY_JH9xjHp4msl-9bIOpM,561
|
|
88
88
|
docs/landing_page.rst,sha256=py2OrDVuT_gZtTOzrt-8HI-PG6hO3jhM4BRxMLoMHQo,1058
|
|
89
|
-
docs/linearization.rst,sha256=
|
|
89
|
+
docs/linearization.rst,sha256=NFdOoeoUtmWjvcX6IL_NsJ-bbbGNkCKLew8nag-pC_I,4131
|
|
90
90
|
docs/make.bat,sha256=mBAhtURwhQ7yc95pqwJzlhqBSvRknr1aqZ5s8NKvdKs,4513
|
|
91
91
|
docs/polarization_calibration.rst,sha256=vJuRGfJlTEzFxUwabyuWXchXswKoqgg23_ch31Y-eb4,5174
|
|
92
92
|
docs/requirements_table.rst,sha256=6HeQU9qSmYf_gL04YVGlcP7M6P8RGPw481n9eYWB32s,295
|
|
93
93
|
docs/science_calibration.rst,sha256=JUMeS7KyIsL9cUuy-IdV2tQ-wQ2lBx6j8u_51ThJzVg,3661
|
|
94
94
|
docs/scientific_changelog.rst,sha256=01AWBSHg8zElnodCgAq-hMxhk9CkX5rtEENx4iz0sjI,300
|
|
95
|
-
docs/wavelength_calibration.rst,sha256=
|
|
95
|
+
docs/wavelength_calibration.rst,sha256=QGUd5Xmv5f7WQ1EKvw2CcgiMJQULjzdCW1hSQ8h8jj0,4123
|
|
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.5.dist-info/METADATA,sha256=R76N0MRQdWzBQkqlxfJyJu7xaXB-gbvPKi-bUri5uuM,29368
|
|
98
|
+
dkist_processing_dlnirsp-0.32.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
99
|
+
dkist_processing_dlnirsp-0.32.5.dist-info/entry_points.txt,sha256=p4-7cpIfxmQGFUDIP5n5noE5KADHN2-JvV03e0gOx9s,140
|
|
100
|
+
dkist_processing_dlnirsp-0.32.5.dist-info/top_level.txt,sha256=4WmLV9LQM78KTFnkHmtaOJvVHAPpz0m9ruzDS-B_cUo,49
|
|
101
|
+
dkist_processing_dlnirsp-0.32.5.dist-info/RECORD,,
|
docs/linearization.rst
CHANGED
|
@@ -59,5 +59,6 @@ SubFrame
|
|
|
59
59
|
|
|
60
60
|
See `~dkist_processing_dlnirsp.tasks.linearity_correction.LinearityCorrection.linearize_subframe_coadd` for a more detailed description.
|
|
61
61
|
|
|
62
|
-
In this mode
|
|
62
|
+
In this mode each coadd is a single read of the detector and there are no bias frames.
|
|
63
|
+
Thus, the linearized value of each coadd is simply the value of the single read.
|
|
63
64
|
If a ramp contains multiple coadds then they are averaged together to produce the linearized frame.
|
docs/wavelength_calibration.rst
CHANGED
|
@@ -13,9 +13,9 @@ are:
|
|
|
13
13
|
|
|
14
14
|
#. Compute a representative spectrum by taking a spatial average near the center of the FOV of an average of all solar gain images.
|
|
15
15
|
|
|
16
|
-
#. Use the L0 headers to
|
|
16
|
+
#. Use information in the L0 headers to describe the spectrograph setup used during data acquisition.
|
|
17
17
|
|
|
18
|
-
#. Feed both the representative spectrum and
|
|
18
|
+
#. Feed both the representative spectrum and spectrograph information into the `solar-wavelength-calibration <https://docs.dkist.nso.edu/projects/solar-wavelength-calibration/en/latest/>`_ library.
|
|
19
19
|
|
|
20
20
|
#. Save the fit result as a set of header values that parameterize the solution (see below).
|
|
21
21
|
|
{dkist_processing_dlnirsp-0.32.3.dist-info → dkist_processing_dlnirsp-0.32.5.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|