dkist-processing-dlnirsp 0.32.2__py3-none-any.whl → 0.32.4__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/linearity_correction.py +55 -24
- 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/conftest.py +13 -5
- 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 +120 -21
- dkist_processing_dlnirsp/tests/test_parse.py +3 -2
- dkist_processing_dlnirsp/tests/test_science.py +7 -6
- {dkist_processing_dlnirsp-0.32.2.dist-info → dkist_processing_dlnirsp-0.32.4.dist-info}/METADATA +42 -41
- {dkist_processing_dlnirsp-0.32.2.dist-info → dkist_processing_dlnirsp-0.32.4.dist-info}/RECORD +21 -20
- {dkist_processing_dlnirsp-0.32.2.dist-info → dkist_processing_dlnirsp-0.32.4.dist-info}/WHEEL +0 -0
- {dkist_processing_dlnirsp-0.32.2.dist-info → dkist_processing_dlnirsp-0.32.4.dist-info}/entry_points.txt +0 -0
- {dkist_processing_dlnirsp-0.32.2.dist-info → dkist_processing_dlnirsp-0.32.4.dist-info}/top_level.txt +0 -0
|
@@ -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
|
|
@@ -83,21 +84,31 @@ def write_ramps_to_task(
|
|
|
83
84
|
poly_coeffs = task.parameters.linearization_poly_coeffs
|
|
84
85
|
correction_poly = np.poly1d(poly_coeffs)
|
|
85
86
|
|
|
86
|
-
match
|
|
87
|
-
case "
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
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
|
|
99
110
|
case _:
|
|
100
|
-
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 = }")
|
|
101
112
|
|
|
102
113
|
dataset = RawRampHeaders(
|
|
103
114
|
array_shape=array_shape,
|
|
@@ -238,6 +249,27 @@ def make_discrete_ramp_data(
|
|
|
238
249
|
return array
|
|
239
250
|
|
|
240
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
|
+
|
|
241
273
|
def write_vis_inputs_to_task(task, num_frames):
|
|
242
274
|
dataset = SimpleModulatedHeaders(
|
|
243
275
|
num_modstates=num_frames,
|
|
@@ -282,10 +314,9 @@ def up_the_ramp_continuous_expected_value(
|
|
|
282
314
|
def subframe_expected_value(
|
|
283
315
|
*, ramp_num: int, num_line: int, num_read: int, expected_avg_coadd_value: float, **unused_args
|
|
284
316
|
) -> float:
|
|
285
|
-
# See `
|
|
286
|
-
#
|
|
287
|
-
|
|
288
|
-
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
|
|
289
320
|
|
|
290
321
|
|
|
291
322
|
def discrete_expected_value(
|
|
@@ -414,8 +445,8 @@ def test_linearity_correction(
|
|
|
414
445
|
np.testing.assert_allclose(data, expected_value, rtol=1e-13)
|
|
415
446
|
|
|
416
447
|
header = fits.getheader(files[0])
|
|
417
|
-
assert header[
|
|
418
|
-
assert header[
|
|
448
|
+
assert header[MetadataKey.fpa_exposure_time_ms] == expected_total_exp
|
|
449
|
+
assert header[MetadataKey.sensor_readout_exposure_time_ms] == expected_NDR_exp
|
|
419
450
|
|
|
420
451
|
|
|
421
452
|
def test_VIS_linearity_correction(
|
|
@@ -471,6 +502,8 @@ def test_VIS_linearity_correction(
|
|
|
471
502
|
[[3, 2], [3, 2], [3, 2]],
|
|
472
503
|
id="3line,2read,3line,2read,3line,2read,1line",
|
|
473
504
|
),
|
|
505
|
+
pytest.param("3subframe", [[1], [1], [1]], id="3subframe"),
|
|
506
|
+
pytest.param("5subframe,37line", [[1], [1], [1], [1], [1]], id="5subframe,37line"),
|
|
474
507
|
],
|
|
475
508
|
)
|
|
476
509
|
def test_parse_camera_sample_sequence(linearity_correction_task, camera_sequence, expected_results):
|
|
@@ -572,6 +605,19 @@ def test_linearity_correction_with_invalid_ramps(
|
|
|
572
605
|
"Missing some ramp frames. Expected 10 from sample sequence",
|
|
573
606
|
id="wrong_number_from_seq",
|
|
574
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
|
+
),
|
|
575
621
|
pytest.param(
|
|
576
622
|
[
|
|
577
623
|
DummyRampFitsAccess(
|
|
@@ -583,6 +629,39 @@ def test_linearity_correction_with_invalid_ramps(
|
|
|
583
629
|
"Malformed camera sample sequence",
|
|
584
630
|
id="bad_cam_seq",
|
|
585
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
|
+
),
|
|
586
665
|
pytest.param(
|
|
587
666
|
[
|
|
588
667
|
DummyRampFitsAccess(camera_readout_mode="UpTheRamp"),
|
|
@@ -622,6 +701,26 @@ def test_linearity_correction_with_invalid_ramps(
|
|
|
622
701
|
"",
|
|
623
702
|
id="valid",
|
|
624
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
|
+
),
|
|
625
724
|
],
|
|
626
725
|
)
|
|
627
726
|
def test_is_ramp_valid(linearity_correction_task, ramp_list, valid, message, caplog):
|
|
@@ -633,7 +732,7 @@ def test_is_ramp_valid(linearity_correction_task, ramp_list, valid, message, cap
|
|
|
633
732
|
logger.add(caplog.handler)
|
|
634
733
|
assert linearity_correction_task.is_ramp_valid(ramp_list) is valid
|
|
635
734
|
if not valid:
|
|
636
|
-
assert re.search(message, caplog.text)
|
|
735
|
+
assert re.search(message, caplog.text), f"Did not find {message} in {caplog.text}"
|
|
637
736
|
|
|
638
737
|
|
|
639
738
|
def test_correction_polynomial(linearity_correction_task, assign_input_dataset_doc_to_task):
|
|
@@ -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
|
|
@@ -45,7 +46,7 @@ def raw_ramp_parse_task(tmp_path, recipe_run_id, arm_id):
|
|
|
45
46
|
ramp_length_sec = 1.0
|
|
46
47
|
array_shape = (3, 3)
|
|
47
48
|
modulator_spin_mode = "Really fast"
|
|
48
|
-
camera_readout_mode = "
|
|
49
|
+
camera_readout_mode = "UpTheRamp"
|
|
49
50
|
with ParseL0DlnirspRampData(
|
|
50
51
|
recipe_run_id=recipe_run_id,
|
|
51
52
|
workflow_name="workflow_name",
|
|
@@ -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.2.dist-info → dkist_processing_dlnirsp-0.32.4.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.4
|
|
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
|
|
@@ -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"
|
|
@@ -93,44 +94,44 @@ Requires-Dist: aiohappyeyeballs==2.6.1; extra == "frozen"
|
|
|
93
94
|
Requires-Dist: aiohttp==3.13.2; extra == "frozen"
|
|
94
95
|
Requires-Dist: aiosignal==1.4.0; extra == "frozen"
|
|
95
96
|
Requires-Dist: aiosmtplib==5.0.0; extra == "frozen"
|
|
96
|
-
Requires-Dist: alembic==1.17.
|
|
97
|
+
Requires-Dist: alembic==1.17.2; extra == "frozen"
|
|
97
98
|
Requires-Dist: amqp==5.3.1; extra == "frozen"
|
|
98
99
|
Requires-Dist: annotated-types==0.7.0; extra == "frozen"
|
|
99
|
-
Requires-Dist: anyio==4.
|
|
100
|
+
Requires-Dist: anyio==4.12.0; extra == "frozen"
|
|
100
101
|
Requires-Dist: apache-airflow==2.11.0; extra == "frozen"
|
|
101
|
-
Requires-Dist: apache-airflow-providers-celery==3.
|
|
102
|
-
Requires-Dist: apache-airflow-providers-common-compat==1.
|
|
103
|
-
Requires-Dist: apache-airflow-providers-common-io==1.
|
|
104
|
-
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"
|
|
105
106
|
Requires-Dist: apache-airflow-providers-fab==1.5.3; extra == "frozen"
|
|
106
|
-
Requires-Dist: apache-airflow-providers-ftp==3.
|
|
107
|
-
Requires-Dist: apache-airflow-providers-http==5.
|
|
108
|
-
Requires-Dist: apache-airflow-providers-imap==3.
|
|
109
|
-
Requires-Dist: apache-airflow-providers-postgres==6.
|
|
110
|
-
Requires-Dist: apache-airflow-providers-smtp==2.
|
|
111
|
-
Requires-Dist: apache-airflow-providers-sqlite==4.
|
|
112
|
-
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"
|
|
113
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
|
-
Requires-Dist: asgiref==3.
|
|
118
|
-
Requires-Dist: asteval==1.0.
|
|
118
|
+
Requires-Dist: asgiref==3.11.0; extra == "frozen"
|
|
119
|
+
Requires-Dist: asteval==1.0.7; extra == "frozen"
|
|
119
120
|
Requires-Dist: astropy==7.0.2; extra == "frozen"
|
|
120
|
-
Requires-Dist: astropy-iers-data==0.2025.
|
|
121
|
-
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"
|
|
122
123
|
Requires-Dist: attrs==25.4.0; extra == "frozen"
|
|
123
124
|
Requires-Dist: babel==2.17.0; extra == "frozen"
|
|
124
|
-
Requires-Dist: billiard==4.2.
|
|
125
|
+
Requires-Dist: billiard==4.2.4; extra == "frozen"
|
|
125
126
|
Requires-Dist: blinker==1.9.0; extra == "frozen"
|
|
126
|
-
Requires-Dist: boto3==1.
|
|
127
|
-
Requires-Dist: botocore==1.
|
|
127
|
+
Requires-Dist: boto3==1.42.0; extra == "frozen"
|
|
128
|
+
Requires-Dist: botocore==1.41.6; extra == "frozen"
|
|
128
129
|
Requires-Dist: cachelib==0.13.0; extra == "frozen"
|
|
129
|
-
Requires-Dist: celery==5.
|
|
130
|
-
Requires-Dist: certifi==2025.
|
|
130
|
+
Requires-Dist: celery==5.6.0; extra == "frozen"
|
|
131
|
+
Requires-Dist: certifi==2025.11.12; extra == "frozen"
|
|
131
132
|
Requires-Dist: cffi==2.0.0; extra == "frozen"
|
|
132
133
|
Requires-Dist: charset-normalizer==3.4.4; extra == "frozen"
|
|
133
|
-
Requires-Dist: click==8.3.
|
|
134
|
+
Requires-Dist: click==8.3.1; 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"
|
|
@@ -149,7 +150,7 @@ Requires-Dist: dill==0.4.0; extra == "frozen"
|
|
|
149
150
|
Requires-Dist: dkist-header-validator==5.2.1; extra == "frozen"
|
|
150
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.4; 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"
|
|
@@ -157,14 +158,15 @@ Requires-Dist: dkist-spectral-lines==3.0.0; extra == "frozen"
|
|
|
157
158
|
Requires-Dist: dkist_fits_specifications==4.17.0; extra == "frozen"
|
|
158
159
|
Requires-Dist: dnspython==2.8.0; extra == "frozen"
|
|
159
160
|
Requires-Dist: email-validator==2.3.0; extra == "frozen"
|
|
161
|
+
Requires-Dist: exceptiongroup==1.3.1; extra == "frozen"
|
|
160
162
|
Requires-Dist: fastjsonschema==2.21.2; extra == "frozen"
|
|
161
163
|
Requires-Dist: flower==2.0.1; extra == "frozen"
|
|
162
|
-
Requires-Dist: fonttools==4.
|
|
164
|
+
Requires-Dist: fonttools==4.61.0; extra == "frozen"
|
|
163
165
|
Requires-Dist: frozenlist==1.8.0; extra == "frozen"
|
|
164
166
|
Requires-Dist: fsspec==2025.10.0; extra == "frozen"
|
|
165
167
|
Requires-Dist: globus-sdk==3.65.0; extra == "frozen"
|
|
166
|
-
Requires-Dist: google-re2==1.1.
|
|
167
|
-
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"
|
|
168
170
|
Requires-Dist: gqlclient==1.2.3; extra == "frozen"
|
|
169
171
|
Requires-Dist: greenlet==3.2.4; extra == "frozen"
|
|
170
172
|
Requires-Dist: grpcio==1.76.0; extra == "frozen"
|
|
@@ -174,7 +176,6 @@ Requires-Dist: httpcore==1.0.9; extra == "frozen"
|
|
|
174
176
|
Requires-Dist: httpx==0.28.1; extra == "frozen"
|
|
175
177
|
Requires-Dist: humanize==4.14.0; extra == "frozen"
|
|
176
178
|
Requires-Dist: idna==3.11; extra == "frozen"
|
|
177
|
-
Requires-Dist: imageio==2.37.0; extra == "frozen"
|
|
178
179
|
Requires-Dist: imageio-ffmpeg==0.6.0; extra == "frozen"
|
|
179
180
|
Requires-Dist: importlib_metadata==8.7.0; extra == "frozen"
|
|
180
181
|
Requires-Dist: inflection==0.5.1; 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: sniffio==1.3.1; extra == "frozen"
|
|
284
284
|
Requires-Dist: solar-wavelength-calibration==1.0.1; 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.2.dist-info → dkist_processing_dlnirsp-0.32.4.dist-info}/RECORD
RENAMED
|
@@ -5,16 +5,17 @@ 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=iXaAxey-apXzj68b33-YLk7O7o0GtKAiJ_0JLoc6VOc,963
|
|
8
9
|
dkist_processing_dlnirsp/models/parameters.py,sha256=PsaZSNE4Uyov1xGMqRqh6kb5F8NnDDm3QRHkoiDAsYY,15812
|
|
9
10
|
dkist_processing_dlnirsp/models/tags.py,sha256=xD_XaCjMXmd70P0FoHy92XSdlabIk07RGVEyFpXpGfM,5791
|
|
10
11
|
dkist_processing_dlnirsp/models/task_name.py,sha256=LmEoI_h4UecvIMGcO5U8mGTqfToPjABuFbsYkC_rZyw,506
|
|
11
12
|
dkist_processing_dlnirsp/parsers/__init__.py,sha256=O6KcssCD39an60pqLISt1aHQ4u5ADg0TMNw1dB694Ug,81
|
|
12
|
-
dkist_processing_dlnirsp/parsers/dlnirsp_l0_fits_access.py,sha256=
|
|
13
|
+
dkist_processing_dlnirsp/parsers/dlnirsp_l0_fits_access.py,sha256=ziUeSWPOiFV0HdkCCfFZGPOZB-PB1OhK2qjYbVdsAb4,4314
|
|
13
14
|
dkist_processing_dlnirsp/parsers/dlnirsp_l1_fits_acess.py,sha256=K-9HRVZ02IUl0wRnhlTMnwSikTt7vYi_zSWYs0V_6-Y,878
|
|
14
15
|
dkist_processing_dlnirsp/parsers/mosaic.py,sha256=0z0sTbDQFhg2hyCp6hSKFpuaS-rOSUBvuBOT6mSSadA,31061
|
|
15
|
-
dkist_processing_dlnirsp/parsers/task.py,sha256=
|
|
16
|
-
dkist_processing_dlnirsp/parsers/time.py,sha256=
|
|
17
|
-
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
|
|
18
19
|
dkist_processing_dlnirsp/parsers/wcs_corrections.py,sha256=yeTLowmtAIs5sjNStIKmBTZUxttOtldJSeW_adsXFYQ,1786
|
|
19
20
|
dkist_processing_dlnirsp/tasks/__init__.py,sha256=6N5xdCM3FeTpzmBUgUnJ5mKF2N3vBfcj-SNqVQ9ZHiw,996
|
|
20
21
|
dkist_processing_dlnirsp/tasks/assemble_movie.py,sha256=BxUO7_Zj_QGLXqNpp87bLawyLo4G0I0DTLZPMXpi5Mo,5539
|
|
@@ -26,19 +27,19 @@ dkist_processing_dlnirsp/tasks/ifu_drift.py,sha256=JeFgl6uk6lYU4jJ-gBYtRESyUa9mb
|
|
|
26
27
|
dkist_processing_dlnirsp/tasks/instrument_polarization.py,sha256=G79qXg1080zsd8ZwwYSSupUGWPRNBevyag49H32gh60,28201
|
|
27
28
|
dkist_processing_dlnirsp/tasks/l1_output_data.py,sha256=Psta0476jih-cfmpdnzmquys030sW4f4VX6ksAb-g1o,465
|
|
28
29
|
dkist_processing_dlnirsp/tasks/lamp.py,sha256=twoMHMnE2jm2OYxkeHFcjqcyQYVtEjSU2_z2mmn3Ybs,5390
|
|
29
|
-
dkist_processing_dlnirsp/tasks/linearity_correction.py,sha256=
|
|
30
|
+
dkist_processing_dlnirsp/tasks/linearity_correction.py,sha256=dYiGcBzKF0Lr_sTdwQ2OUguYgm00ky5oJ3KV4mJo6UI,22633
|
|
30
31
|
dkist_processing_dlnirsp/tasks/make_movie_frames.py,sha256=zxyAWNnPFbG7jpUEe3ekRyJGjk706T9a-yiA3eoWi5M,6290
|
|
31
|
-
dkist_processing_dlnirsp/tasks/parse.py,sha256
|
|
32
|
+
dkist_processing_dlnirsp/tasks/parse.py,sha256=ZtqM6dyxxnnbVTAun040EuxfQZEQcnkXzZffXSBTYkk,10919
|
|
32
33
|
dkist_processing_dlnirsp/tasks/quality_metrics.py,sha256=1ScLAinv3WG-0M7u_26gnogbJ_D84K9CP7eRvEuwb9E,7346
|
|
33
|
-
dkist_processing_dlnirsp/tasks/science.py,sha256=
|
|
34
|
+
dkist_processing_dlnirsp/tasks/science.py,sha256=sNI4AYO10qe3JL62KWXR87MnfX9m85Jo4_PkQ0qd5TQ,35737
|
|
34
35
|
dkist_processing_dlnirsp/tasks/solar.py,sha256=NyLYkRophfXaVtvnGuNEvkcE8JNcmCJVuobNYAZ7KjQ,11135
|
|
35
36
|
dkist_processing_dlnirsp/tasks/wavelength_calibration.py,sha256=6jidRwMbGoZcuVbnFv3IizEFFkGxHMTI249Q8pyVIUA,17023
|
|
36
|
-
dkist_processing_dlnirsp/tasks/write_l1.py,sha256=
|
|
37
|
+
dkist_processing_dlnirsp/tasks/write_l1.py,sha256=Smd9Fzp3Kx4F3nHYJJRAXqNy9n71TsYovuvFjLcUYs4,9732
|
|
37
38
|
dkist_processing_dlnirsp/tasks/mixin/__init__.py,sha256=5PMbkD6K0zTfhCxv8vg2lvJCNP81qItJ_R_7Yy3Mpwc,26
|
|
38
39
|
dkist_processing_dlnirsp/tasks/mixin/corrections.py,sha256=MRZXCEc0KBE-9cQUpRP-K3ioDYRH8_ORFlJcH2SsmWA,6803
|
|
39
40
|
dkist_processing_dlnirsp/tasks/mixin/group_id.py,sha256=u28XLVtvZ_lmzzaSX2SuA2MOiY69GC8AJsic2Vi2OSQ,11137
|
|
40
41
|
dkist_processing_dlnirsp/tests/__init__.py,sha256=UHIAs0SglAXeB7UeDgVwo1EE9QPRq3rG3BZkiCpBq7M,42
|
|
41
|
-
dkist_processing_dlnirsp/tests/conftest.py,sha256=
|
|
42
|
+
dkist_processing_dlnirsp/tests/conftest.py,sha256=Xp02ZyHi6X3FzyY_IQOjLsH3gOA9zK7KGo9gpeeO6jw,68768
|
|
42
43
|
dkist_processing_dlnirsp/tests/test_assemble_movie.py,sha256=hKAIHCRQu8fZwCuWsX_4WHFrDpC0bDQ9CCI9A5bRkqg,5665
|
|
43
44
|
dkist_processing_dlnirsp/tests/test_assemble_quality.py,sha256=djZsVSuRGl3akH3LmYjWvYuNSUFFQfS5y0S3Op7lQIE,1327
|
|
44
45
|
dkist_processing_dlnirsp/tests/test_bad_pixel_map.py,sha256=g5jWhVGSHMOtkcdiZ27G51ciud4ySjoDAjvMGLlgTIM,6093
|
|
@@ -46,18 +47,18 @@ dkist_processing_dlnirsp/tests/test_corrections.py,sha256=hefVNm3bgwfGQ7Wn0hi077
|
|
|
46
47
|
dkist_processing_dlnirsp/tests/test_dark.py,sha256=qv7SvUNgafzfdyIW11I6eSFeaXjw34-9X1ipnqKE1cY,3726
|
|
47
48
|
dkist_processing_dlnirsp/tests/test_dlnirsp_base.py,sha256=PCFklqGEqrgIhTYcatu7RfOxr_b_XjHotc36MRbUvnk,1853
|
|
48
49
|
dkist_processing_dlnirsp/tests/test_dlnirsp_constants.py,sha256=RFNf-Hj835NlE45vygxh01kJm8YdCJJ3UUwzJRYJHE8,6411
|
|
49
|
-
dkist_processing_dlnirsp/tests/test_dlnirsp_fits_access.py,sha256=
|
|
50
|
+
dkist_processing_dlnirsp/tests/test_dlnirsp_fits_access.py,sha256=5C5NPOkNigoNhIFNUKyrJvyt_mRjke1tkfXQcv1cnPI,5639
|
|
50
51
|
dkist_processing_dlnirsp/tests/test_geometric.py,sha256=94RDg1mGEMTibD2oPOoCKil5yUQMp_0vO4cDWzG3644,7742
|
|
51
52
|
dkist_processing_dlnirsp/tests/test_group_id.py,sha256=TpNllN6OZuYF8almsayk7pRTc4J8TcLGp1SHCBG6QAU,6279
|
|
52
53
|
dkist_processing_dlnirsp/tests/test_ifu_drift.py,sha256=K6ushbVQVE6AATjiP3hEgF6oyZp41SbGkI_Sa_kyrNs,9066
|
|
53
54
|
dkist_processing_dlnirsp/tests/test_instrument_polarization_calibration.py,sha256=pPXjfzi3EcaawNqvXsz3OcCF1XITEJeCzQ8-iOjlm7U,23430
|
|
54
55
|
dkist_processing_dlnirsp/tests/test_lamp.py,sha256=umy4ydYR5M3dqXTQP14qbamOleutyD1jSj3325aitl0,3940
|
|
55
|
-
dkist_processing_dlnirsp/tests/test_linearity_correction.py,sha256=
|
|
56
|
+
dkist_processing_dlnirsp/tests/test_linearity_correction.py,sha256=JkPNtsRad2JQQ2QiJjQar9tJuCi9-ksOdEYHW_-kl58,31793
|
|
56
57
|
dkist_processing_dlnirsp/tests/test_make_movie_frames.py,sha256=fR1xJEFJMK0xUu8-EyOS_6mIX_ZO2J_nM0k3ud8xtYM,3648
|
|
57
58
|
dkist_processing_dlnirsp/tests/test_parameters.py,sha256=KpBeisM4BIF5Kl6ZxZqk3yCozndmLMlzNgo0ij0hmYw,10328
|
|
58
|
-
dkist_processing_dlnirsp/tests/test_parse.py,sha256=
|
|
59
|
+
dkist_processing_dlnirsp/tests/test_parse.py,sha256=UIII4R6JruUEFIlYDRwTwiBqyf4ldYxAhCWHM-jcd6E,38005
|
|
59
60
|
dkist_processing_dlnirsp/tests/test_quality.py,sha256=OBWva_E6T5RfDuo73LiTdTr7uh2FO04VpBAsSOLfjVQ,6122
|
|
60
|
-
dkist_processing_dlnirsp/tests/test_science.py,sha256=
|
|
61
|
+
dkist_processing_dlnirsp/tests/test_science.py,sha256=1DKqKNAEZEsVCffYz_TiEc2REG7cBIfGeig1kJK4ZtE,20902
|
|
61
62
|
dkist_processing_dlnirsp/tests/test_solar.py,sha256=jTNnxs5fE8R_hLvmdAU9x4RXJaSpJWGQajL7kzXTxPQ,12111
|
|
62
63
|
dkist_processing_dlnirsp/tests/test_trial_create_quality_report.py,sha256=3RUOVYs5b87oHZAXcd0cH_IX9qpL9gFhlcKBRr3ThXQ,2784
|
|
63
64
|
dkist_processing_dlnirsp/tests/test_wavelength_calibration.py,sha256=GFGXtl0KdClolknAwfR0aG5t-Ux5N5mynol4dKp0cn8,14830
|
|
@@ -68,8 +69,8 @@ dkist_processing_dlnirsp/tests/local_trial_workflows/l0_linearize_only.py,sha256
|
|
|
68
69
|
dkist_processing_dlnirsp/tests/local_trial_workflows/l0_polcals_as_science.py,sha256=ZDefUSKggIH2ebzUziQWU_A2yWeX68vjqzC11MNkzJU,19338
|
|
69
70
|
dkist_processing_dlnirsp/tests/local_trial_workflows/l0_solar_gain_as_science.py,sha256=Nv8qi-U2mUpWRn8rfx0ckn6v9OUGbfSND-fX9WVRaU0,20102
|
|
70
71
|
dkist_processing_dlnirsp/tests/local_trial_workflows/l0_to_l1.py,sha256=MfCqHOO9RC24FRqGUKfPiTGUZh7rft9NklYKej-oM00,17757
|
|
71
|
-
dkist_processing_dlnirsp/tests/local_trial_workflows/local_trial_dev_mockers.py,sha256=
|
|
72
|
-
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
|
|
73
74
|
dkist_processing_dlnirsp/tests/local_trial_workflows/translate_files.py,sha256=bsOqBtGE9SdOZL2ROJ-murJHjymYrE_nEPNHJgy7pDc,1882
|
|
74
75
|
dkist_processing_dlnirsp/workflows/__init__.py,sha256=bDRNGCIayR8Z-dcOClvk5nTmHgKORTrZUVX9e3UpCc8,165
|
|
75
76
|
dkist_processing_dlnirsp/workflows/l0_processing.py,sha256=qEBPV7xOacZTO3y4Pkjrxq1IxkOiPUPKjDHQ1xs98_M,4106
|
|
@@ -93,8 +94,8 @@ docs/science_calibration.rst,sha256=JUMeS7KyIsL9cUuy-IdV2tQ-wQ2lBx6j8u_51ThJzVg,
|
|
|
93
94
|
docs/scientific_changelog.rst,sha256=01AWBSHg8zElnodCgAq-hMxhk9CkX5rtEENx4iz0sjI,300
|
|
94
95
|
docs/wavelength_calibration.rst,sha256=VP45e0g4r-dReQmypQVqduvezQiKwq47STlAJn0w8iQ,4095
|
|
95
96
|
licenses/LICENSE.rst,sha256=piZaQplkzOMmH1NXg6QIdo9wwo9pPCoHkvm2-DmH76E,1462
|
|
96
|
-
dkist_processing_dlnirsp-0.32.
|
|
97
|
-
dkist_processing_dlnirsp-0.32.
|
|
98
|
-
dkist_processing_dlnirsp-0.32.
|
|
99
|
-
dkist_processing_dlnirsp-0.32.
|
|
100
|
-
dkist_processing_dlnirsp-0.32.
|
|
97
|
+
dkist_processing_dlnirsp-0.32.4.dist-info/METADATA,sha256=GK82oJCthMugdfm892PLdLdJv9z3qKqzbA1QBWfT0EI,29368
|
|
98
|
+
dkist_processing_dlnirsp-0.32.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
99
|
+
dkist_processing_dlnirsp-0.32.4.dist-info/entry_points.txt,sha256=p4-7cpIfxmQGFUDIP5n5noE5KADHN2-JvV03e0gOx9s,140
|
|
100
|
+
dkist_processing_dlnirsp-0.32.4.dist-info/top_level.txt,sha256=4WmLV9LQM78KTFnkHmtaOJvVHAPpz0m9ruzDS-B_cUo,49
|
|
101
|
+
dkist_processing_dlnirsp-0.32.4.dist-info/RECORD,,
|