dkist-processing-cryonirsp 1.13.0__py3-none-any.whl → 1.14.0__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/tasks/bad_pixel_map.py +5 -5
- dkist_processing_cryonirsp/tasks/beam_boundaries_base.py +8 -10
- dkist_processing_cryonirsp/tasks/dark.py +4 -4
- dkist_processing_cryonirsp/tasks/gain.py +6 -6
- dkist_processing_cryonirsp/tasks/instrument_polarization.py +15 -15
- dkist_processing_cryonirsp/tasks/make_movie_frames.py +2 -2
- dkist_processing_cryonirsp/tasks/quality_metrics.py +14 -14
- dkist_processing_cryonirsp/tasks/science_base.py +5 -5
- dkist_processing_cryonirsp/tasks/sp_geometric.py +9 -9
- dkist_processing_cryonirsp/tasks/sp_solar_gain.py +14 -12
- dkist_processing_cryonirsp/tasks/sp_wavelength_calibration.py +5 -5
- dkist_processing_cryonirsp/tests/local_trial_workflows/l0_cals_only.py +0 -21
- dkist_processing_cryonirsp/tests/local_trial_workflows/l0_to_l1.py +0 -20
- {dkist_processing_cryonirsp-1.13.0.dist-info → dkist_processing_cryonirsp-1.14.0.dist-info}/METADATA +145 -54
- {dkist_processing_cryonirsp-1.13.0.dist-info → dkist_processing_cryonirsp-1.14.0.dist-info}/RECORD +17 -17
- {dkist_processing_cryonirsp-1.13.0.dist-info → dkist_processing_cryonirsp-1.14.0.dist-info}/WHEEL +0 -0
- {dkist_processing_cryonirsp-1.13.0.dist-info → dkist_processing_cryonirsp-1.14.0.dist-info}/top_level.txt +0 -0
|
@@ -49,11 +49,11 @@ class BadPixelMapCalibration(CryonirspTaskBase):
|
|
|
49
49
|
None
|
|
50
50
|
|
|
51
51
|
"""
|
|
52
|
-
with self.
|
|
52
|
+
with self.telemetry_span(f"Compute average uncorrected solar gain image"):
|
|
53
53
|
average_solar_gain_array = self.compute_average_gain_array()
|
|
54
54
|
|
|
55
|
-
with self.
|
|
56
|
-
with self.
|
|
55
|
+
with self.telemetry_span(f"Compute the bad pixel map"):
|
|
56
|
+
with self.telemetry_span("Smooth array with median filter"):
|
|
57
57
|
filter_size = self.parameters.bad_pixel_map_median_filter_size
|
|
58
58
|
filtered_array = spnd.median_filter(
|
|
59
59
|
average_solar_gain_array,
|
|
@@ -62,7 +62,7 @@ class BadPixelMapCalibration(CryonirspTaskBase):
|
|
|
62
62
|
cval=np.nanmedian(average_solar_gain_array),
|
|
63
63
|
)
|
|
64
64
|
|
|
65
|
-
with self.
|
|
65
|
+
with self.telemetry_span("Identify bad pixels"):
|
|
66
66
|
thresh = self.parameters.bad_pixel_map_threshold_factor
|
|
67
67
|
|
|
68
68
|
diff = filtered_array - average_solar_gain_array
|
|
@@ -72,7 +72,7 @@ class BadPixelMapCalibration(CryonirspTaskBase):
|
|
|
72
72
|
zeros = np.where(average_solar_gain_array == 0.0)
|
|
73
73
|
bad_pixel_map[zeros] = 1
|
|
74
74
|
|
|
75
|
-
with self.
|
|
75
|
+
with self.telemetry_span("Writing bad pixel map"):
|
|
76
76
|
self.write(
|
|
77
77
|
data=bad_pixel_map,
|
|
78
78
|
tags=[CryonirspTag.intermediate_frame(), CryonirspTag.task_bad_pixel_map()],
|
|
@@ -62,11 +62,11 @@ class BeamBoundariesCalibrationBase(CryonirspTaskBase):
|
|
|
62
62
|
|
|
63
63
|
"""
|
|
64
64
|
# Step 1:
|
|
65
|
-
with self.
|
|
65
|
+
with self.telemetry_span(f"Compute average solar gain image"):
|
|
66
66
|
average_solar_gain_array = self.compute_average_gain_array()
|
|
67
67
|
|
|
68
68
|
# Step 2:
|
|
69
|
-
with self.
|
|
69
|
+
with self.telemetry_span(f"Retrieve bad pixel map"):
|
|
70
70
|
bad_pixel_map = next(
|
|
71
71
|
self.read(
|
|
72
72
|
tags=[CryonirspTag.intermediate_frame(), CryonirspTag.task_bad_pixel_map()],
|
|
@@ -78,21 +78,19 @@ class BeamBoundariesCalibrationBase(CryonirspTaskBase):
|
|
|
78
78
|
)
|
|
79
79
|
|
|
80
80
|
# Step 3
|
|
81
|
-
with self.
|
|
81
|
+
with self.telemetry_span(f"Smooth the array to get good segmentation"):
|
|
82
82
|
smoothed_solar_gain_array = self.smooth_gain_array(corrected_solar_gain_array)
|
|
83
83
|
|
|
84
84
|
# Step 4
|
|
85
|
-
with self.
|
|
85
|
+
with self.telemetry_span(f"Split the beam horizontally"):
|
|
86
86
|
split_beams = self.split_beams(smoothed_solar_gain_array)
|
|
87
87
|
|
|
88
88
|
# Step 5
|
|
89
|
-
with self.
|
|
90
|
-
f"Segment the beams into illuminated and non-illuminated pixels"
|
|
91
|
-
):
|
|
89
|
+
with self.telemetry_span(f"Segment the beams into illuminated and non-illuminated pixels"):
|
|
92
90
|
segmented_beams = self.segment_arrays(split_beams)
|
|
93
91
|
|
|
94
92
|
# Step 6:
|
|
95
|
-
with self.
|
|
93
|
+
with self.telemetry_span(
|
|
96
94
|
f"Compute the inscribed rectangular extents of the illuminated portions of the sensor"
|
|
97
95
|
):
|
|
98
96
|
illuminated_boundaries = self.compute_boundaries_of_beam_illumination_regions(
|
|
@@ -100,14 +98,14 @@ class BeamBoundariesCalibrationBase(CryonirspTaskBase):
|
|
|
100
98
|
)
|
|
101
99
|
|
|
102
100
|
# Steps 7 - 9:
|
|
103
|
-
with self.
|
|
101
|
+
with self.telemetry_span(f"Compute the boundaries of the illuminated beams"):
|
|
104
102
|
split_beams_float = [split_beam.astype(float) for split_beam in split_beams]
|
|
105
103
|
boundaries = self.compute_final_beam_boundaries(
|
|
106
104
|
split_beams_float, illuminated_boundaries
|
|
107
105
|
)
|
|
108
106
|
|
|
109
107
|
# Step 10:
|
|
110
|
-
with self.
|
|
108
|
+
with self.telemetry_span("Writing beam boundaries"):
|
|
111
109
|
for beam, bounds in enumerate(boundaries, start=1):
|
|
112
110
|
self.write(
|
|
113
111
|
data=bounds.beam_boundaries_array,
|
|
@@ -58,7 +58,7 @@ class DarkCalibration(CryonirspTaskBase):
|
|
|
58
58
|
)
|
|
59
59
|
|
|
60
60
|
logger.info(f"{target_exposure_conditions = }")
|
|
61
|
-
with self.
|
|
61
|
+
with self.telemetry_span(
|
|
62
62
|
f"Calculating dark frames for {self.constants.num_beams} beams and {len(target_exposure_conditions)} exp times"
|
|
63
63
|
):
|
|
64
64
|
total_dark_frames_used = 0
|
|
@@ -90,12 +90,12 @@ class DarkCalibration(CryonirspTaskBase):
|
|
|
90
90
|
beam_boundary=beam_boundary,
|
|
91
91
|
)
|
|
92
92
|
|
|
93
|
-
with self.
|
|
93
|
+
with self.telemetry_span(
|
|
94
94
|
f"Calculating dark for {exposure_conditions = } and {beam = }"
|
|
95
95
|
):
|
|
96
96
|
averaged_dark_array = average_numpy_arrays(linearized_dark_arrays)
|
|
97
97
|
|
|
98
|
-
with self.
|
|
98
|
+
with self.telemetry_span(
|
|
99
99
|
f"Writing dark for {exposure_conditions = } {beam = }"
|
|
100
100
|
):
|
|
101
101
|
self.write(
|
|
@@ -109,7 +109,7 @@ class DarkCalibration(CryonirspTaskBase):
|
|
|
109
109
|
encoder=fits_array_encoder,
|
|
110
110
|
)
|
|
111
111
|
|
|
112
|
-
with self.
|
|
112
|
+
with self.telemetry_span("Computing and logging quality metrics"):
|
|
113
113
|
no_of_raw_dark_frames: int = self.scratch.count_all(
|
|
114
114
|
tags=[
|
|
115
115
|
CryonirspTag.linearized_frame(),
|
|
@@ -81,7 +81,7 @@ class GainCalibrationBase(CryonirspTaskBase):
|
|
|
81
81
|
target_exposure_conditions = self.exposure_conditions
|
|
82
82
|
|
|
83
83
|
logger.info(f"{target_exposure_conditions = }")
|
|
84
|
-
with self.
|
|
84
|
+
with self.telemetry_span(
|
|
85
85
|
f"Generate {self.gain_type} for {len(target_exposure_conditions)} exposure times"
|
|
86
86
|
):
|
|
87
87
|
for beam in range(1, self.constants.num_beams + 1):
|
|
@@ -96,7 +96,7 @@ class GainCalibrationBase(CryonirspTaskBase):
|
|
|
96
96
|
|
|
97
97
|
for exposure_conditions in target_exposure_conditions:
|
|
98
98
|
apm_str = f"{beam = } and {exposure_conditions = }"
|
|
99
|
-
with self.
|
|
99
|
+
with self.telemetry_span(f"Remove dark signal for {apm_str}"):
|
|
100
100
|
dark_array = next(
|
|
101
101
|
self.read(
|
|
102
102
|
tags=[
|
|
@@ -117,7 +117,7 @@ class GainCalibrationBase(CryonirspTaskBase):
|
|
|
117
117
|
subtract_array_from_arrays(avg_gain_array, dark_array)
|
|
118
118
|
)
|
|
119
119
|
|
|
120
|
-
with self.
|
|
120
|
+
with self.telemetry_span(f"Correct bad pixels for {apm_str}"):
|
|
121
121
|
bad_pixel_map = next(
|
|
122
122
|
self.read(
|
|
123
123
|
tags=[
|
|
@@ -133,12 +133,12 @@ class GainCalibrationBase(CryonirspTaskBase):
|
|
|
133
133
|
)
|
|
134
134
|
|
|
135
135
|
if self.normalize_gain_switch:
|
|
136
|
-
with self.
|
|
136
|
+
with self.telemetry_span(f"Normalize final gain for {apm_str}"):
|
|
137
137
|
normalized_gain_array = self.normalize_gain(bad_pixel_corrected_array)
|
|
138
138
|
else:
|
|
139
139
|
normalized_gain_array = bad_pixel_corrected_array
|
|
140
140
|
|
|
141
|
-
with self.
|
|
141
|
+
with self.telemetry_span(
|
|
142
142
|
f"Writing gain array for {beam = } and {exposure_conditions = }"
|
|
143
143
|
):
|
|
144
144
|
self.write(
|
|
@@ -152,7 +152,7 @@ class GainCalibrationBase(CryonirspTaskBase):
|
|
|
152
152
|
encoder=fits_array_encoder,
|
|
153
153
|
)
|
|
154
154
|
|
|
155
|
-
with self.
|
|
155
|
+
with self.telemetry_span("Computing and logging quality metrics"):
|
|
156
156
|
no_of_raw_gain_frames: int = self.scratch.count_all(
|
|
157
157
|
tags=[
|
|
158
158
|
CryonirspTag.linearized_frame(),
|
|
@@ -88,10 +88,10 @@ class InstrumentPolarizationCalibrationBase(CryonirspTaskBase, ABC):
|
|
|
88
88
|
f"Demodulation matrices will span FOV with shape {(self.parameters.polcal_num_spatial_bins, self.parameters.polcal_num_spatial_bins)}"
|
|
89
89
|
)
|
|
90
90
|
for beam in range(1, self.constants.num_beams + 1):
|
|
91
|
-
with self.
|
|
91
|
+
with self.telemetry_span(f"Reducing CS steps for {beam = }"):
|
|
92
92
|
local_reduced_arrays, global_reduced_arrays = self.reduce_cs_steps(beam)
|
|
93
93
|
|
|
94
|
-
with self.
|
|
94
|
+
with self.telemetry_span(f"Fit CU parameters for {beam = }"):
|
|
95
95
|
local_dresser = Dresser()
|
|
96
96
|
local_dresser.add_drawer(Drawer(local_reduced_arrays))
|
|
97
97
|
global_dresser = Dresser()
|
|
@@ -104,7 +104,7 @@ class InstrumentPolarizationCalibrationBase(CryonirspTaskBase, ABC):
|
|
|
104
104
|
fit_TM=False,
|
|
105
105
|
)
|
|
106
106
|
|
|
107
|
-
with self.
|
|
107
|
+
with self.telemetry_span(f"Resampling demodulation matrices for {beam = }"):
|
|
108
108
|
demod_matrices = pac_fitter.demodulation_matrices
|
|
109
109
|
# Reshaping the demodulation matrix to get rid of unit length dimensions
|
|
110
110
|
logger.info(f"Resampling demodulation matrices for {beam = }")
|
|
@@ -113,7 +113,7 @@ class InstrumentPolarizationCalibrationBase(CryonirspTaskBase, ABC):
|
|
|
113
113
|
f"Shape of resampled demodulation matrices for {beam = }: {demod_matrices.shape}"
|
|
114
114
|
)
|
|
115
115
|
|
|
116
|
-
with self.
|
|
116
|
+
with self.telemetry_span(f"Writing demodulation matrices for {beam = }"):
|
|
117
117
|
self.write(
|
|
118
118
|
data=demod_matrices,
|
|
119
119
|
tags=[
|
|
@@ -123,10 +123,10 @@ class InstrumentPolarizationCalibrationBase(CryonirspTaskBase, ABC):
|
|
|
123
123
|
encoder=fits_array_encoder,
|
|
124
124
|
)
|
|
125
125
|
|
|
126
|
-
with self.
|
|
126
|
+
with self.telemetry_span("Computing and recording polcal quality metrics"):
|
|
127
127
|
self.record_polcal_quality_metrics(beam, polcal_fitter=pac_fitter)
|
|
128
128
|
|
|
129
|
-
with self.
|
|
129
|
+
with self.telemetry_span("Computing and logging quality metrics"):
|
|
130
130
|
no_of_raw_polcal_frames: int = self.scratch.count_all(
|
|
131
131
|
tags=[
|
|
132
132
|
CryonirspTag.linearized_frame(),
|
|
@@ -271,11 +271,11 @@ class InstrumentPolarizationCalibrationBase(CryonirspTaskBase, ABC):
|
|
|
271
271
|
avg_inst_pol_cal_header = next(pol_cal_headers)
|
|
272
272
|
avg_inst_pol_cal_array = average_numpy_arrays(pol_cal_arrays)
|
|
273
273
|
|
|
274
|
-
with self.
|
|
274
|
+
with self.telemetry_span(f"Apply basic corrections for {apm_str}"):
|
|
275
275
|
dark_corrected_array = subtract_array_from_arrays(avg_inst_pol_cal_array, dark_array)
|
|
276
276
|
gain_corrected_array = next(divide_arrays_by_array(dark_corrected_array, gain_array))
|
|
277
277
|
|
|
278
|
-
with self.
|
|
278
|
+
with self.telemetry_span(f"Extract macro pixels from {apm_str}"):
|
|
279
279
|
self.set_original_beam_size(gain_corrected_array)
|
|
280
280
|
output_shape = (
|
|
281
281
|
self.parameters.polcal_num_spatial_bins,
|
|
@@ -284,7 +284,7 @@ class InstrumentPolarizationCalibrationBase(CryonirspTaskBase, ABC):
|
|
|
284
284
|
local_binned_array = next(resize_arrays(gain_corrected_array, output_shape))
|
|
285
285
|
global_binned_array = next(resize_arrays(gain_corrected_array, (1, 1)))
|
|
286
286
|
|
|
287
|
-
with self.
|
|
287
|
+
with self.telemetry_span(f"Create reduced CryonirspL0FitsAccess for {apm_str}"):
|
|
288
288
|
local_result = CryonirspL0FitsAccess(
|
|
289
289
|
fits.ImageHDU(local_binned_array[:, :], avg_inst_pol_cal_header),
|
|
290
290
|
auto_squeeze=False,
|
|
@@ -349,7 +349,7 @@ class InstrumentPolarizationCalibrationBase(CryonirspTaskBase, ABC):
|
|
|
349
349
|
self, target_exposure_conditions_list: [ExposureConditions]
|
|
350
350
|
):
|
|
351
351
|
"""Compute the polcal dark calibration."""
|
|
352
|
-
with self.
|
|
352
|
+
with self.telemetry_span(
|
|
353
353
|
f"Calculating dark frames for {len(target_exposure_conditions_list)} exp times"
|
|
354
354
|
):
|
|
355
355
|
for beam in range(1, self.constants.num_beams + 1):
|
|
@@ -361,7 +361,7 @@ class InstrumentPolarizationCalibrationBase(CryonirspTaskBase, ABC):
|
|
|
361
361
|
)
|
|
362
362
|
beam_boundary = BeamBoundary(*beam_array)
|
|
363
363
|
for exposure_conditions in target_exposure_conditions_list:
|
|
364
|
-
with self.
|
|
364
|
+
with self.telemetry_span(
|
|
365
365
|
f"Calculating polcal dark array(s) for {exposure_conditions = } and {beam = }"
|
|
366
366
|
):
|
|
367
367
|
linearized_dark_arrays = self.read(
|
|
@@ -376,7 +376,7 @@ class InstrumentPolarizationCalibrationBase(CryonirspTaskBase, ABC):
|
|
|
376
376
|
beam_boundary=beam_boundary,
|
|
377
377
|
)
|
|
378
378
|
averaged_dark_array = average_numpy_arrays(linearized_dark_arrays)
|
|
379
|
-
with self.
|
|
379
|
+
with self.telemetry_span(
|
|
380
380
|
f"Writing dark for {exposure_conditions = } and {beam = }"
|
|
381
381
|
):
|
|
382
382
|
self.write(
|
|
@@ -392,7 +392,7 @@ class InstrumentPolarizationCalibrationBase(CryonirspTaskBase, ABC):
|
|
|
392
392
|
|
|
393
393
|
def generate_polcal_gain_calibration(self, exposure_conditions_list: [ExposureConditions]):
|
|
394
394
|
"""Compute the polcal gain calibration."""
|
|
395
|
-
with self.
|
|
395
|
+
with self.telemetry_span(
|
|
396
396
|
f"Generate gains for {len(exposure_conditions_list)} exposure conditions"
|
|
397
397
|
):
|
|
398
398
|
for beam in range(1, self.constants.num_beams + 1):
|
|
@@ -423,7 +423,7 @@ class InstrumentPolarizationCalibrationBase(CryonirspTaskBase, ABC):
|
|
|
423
423
|
raise ValueError(
|
|
424
424
|
f"No matching polcal dark found for {exposure_conditions = } s and {beam = }"
|
|
425
425
|
) from e
|
|
426
|
-
with self.
|
|
426
|
+
with self.telemetry_span(
|
|
427
427
|
f"Calculating polcal gain array(s) for {exposure_conditions = } and {beam = }"
|
|
428
428
|
):
|
|
429
429
|
linearized_gain_arrays = self.read(
|
|
@@ -460,7 +460,7 @@ class InstrumentPolarizationCalibrationBase(CryonirspTaskBase, ABC):
|
|
|
460
460
|
bad_pixel_corrected_array
|
|
461
461
|
)
|
|
462
462
|
|
|
463
|
-
with self.
|
|
463
|
+
with self.telemetry_span(
|
|
464
464
|
f"Writing gain array for exposure time {exposure_conditions} and {beam = }"
|
|
465
465
|
):
|
|
466
466
|
self.write(
|
|
@@ -23,10 +23,10 @@ class MakeCryonirspMovieFramesBase(CryonirspTaskBase, ABC):
|
|
|
23
23
|
def run(self):
|
|
24
24
|
"""Create movie frames using all stokes states if they exist, otherwise only use intensity."""
|
|
25
25
|
if self.constants.correct_for_polarization:
|
|
26
|
-
with self.
|
|
26
|
+
with self.telemetry_span("Make full stokes movie"):
|
|
27
27
|
self.make_full_stokes_movie_frames()
|
|
28
28
|
else:
|
|
29
|
-
with self.
|
|
29
|
+
with self.telemetry_span("Make intensity only movie"):
|
|
30
30
|
self.make_intensity_movie_frames()
|
|
31
31
|
|
|
32
32
|
@abstractmethod
|
|
@@ -108,26 +108,26 @@ class CryonirspL1QualityMetrics(CryonirspTaskBase, QualityMixin):
|
|
|
108
108
|
def run(self) -> None:
|
|
109
109
|
"""Calculate sensitivity and noise quality metrics."""
|
|
110
110
|
if self.constants.correct_for_polarization:
|
|
111
|
-
with self.
|
|
112
|
-
"Calculating L1 Sensitivity metrics for all stokes states"
|
|
113
|
-
):
|
|
111
|
+
with self.telemetry_span("Calculating L1 Sensitivity metrics for all stokes states"):
|
|
114
112
|
self.compute_full_stokes_sensitivity()
|
|
115
|
-
with self.
|
|
113
|
+
with self.telemetry_span(
|
|
114
|
+
"Calculating L1 Cryonirsp noise metrics for all stokes states"
|
|
115
|
+
):
|
|
116
116
|
self.compute_full_stokes_noise()
|
|
117
117
|
else:
|
|
118
|
-
with self.
|
|
118
|
+
with self.telemetry_span("Calculating L1 Sensitivity metrics for intensity only"):
|
|
119
119
|
self.compute_intensity_only_sensitivity()
|
|
120
|
-
with self.
|
|
120
|
+
with self.telemetry_span("Calculating L1 Cryonirsp noise metrics for intensity only"):
|
|
121
121
|
self.compute_intensity_only_noise()
|
|
122
122
|
|
|
123
123
|
def compute_full_stokes_sensitivity(self):
|
|
124
124
|
"""Compute the sensitivities of each map scan for each stokes state."""
|
|
125
125
|
for stokes_state in self.constants.stokes_params:
|
|
126
|
-
with self.
|
|
126
|
+
with self.telemetry_span(f"Calculating sensitivity for stokes = {stokes_state}"):
|
|
127
127
|
quality_data = self.calculate_sensitivity_for_stokes_state(
|
|
128
128
|
stokes_state=stokes_state
|
|
129
129
|
)
|
|
130
|
-
with self.
|
|
130
|
+
with self.telemetry_span(f"Writing sensitivity data for stokes = {stokes_state}"):
|
|
131
131
|
self.quality_store_sensitivity(
|
|
132
132
|
stokes=stokes_state,
|
|
133
133
|
datetimes=quality_data.datetimes,
|
|
@@ -136,9 +136,9 @@ class CryonirspL1QualityMetrics(CryonirspTaskBase, QualityMixin):
|
|
|
136
136
|
|
|
137
137
|
def compute_intensity_only_sensitivity(self):
|
|
138
138
|
"""Compute the sensitivities of each map scan for the intensity stokes state only."""
|
|
139
|
-
with self.
|
|
139
|
+
with self.telemetry_span(f"Calculating sensitivity for intensity only"):
|
|
140
140
|
quality_data = self.calculate_sensitivity_for_stokes_state(stokes_state="I")
|
|
141
|
-
with self.
|
|
141
|
+
with self.telemetry_span("Writing sensitivity data for intensity only"):
|
|
142
142
|
self.quality_store_sensitivity(
|
|
143
143
|
stokes="I", datetimes=quality_data.datetimes, values=quality_data.values
|
|
144
144
|
)
|
|
@@ -146,9 +146,9 @@ class CryonirspL1QualityMetrics(CryonirspTaskBase, QualityMixin):
|
|
|
146
146
|
def compute_full_stokes_noise(self):
|
|
147
147
|
"""Compute noise in data broken down by each stokes state."""
|
|
148
148
|
for stokes in self.constants.stokes_params:
|
|
149
|
-
with self.
|
|
149
|
+
with self.telemetry_span(f"Compile noise values for {stokes=}"):
|
|
150
150
|
noise_data = self.compile_noise_data(stokes=stokes)
|
|
151
|
-
with self.
|
|
151
|
+
with self.telemetry_span(f"Write noise values for {stokes=}"):
|
|
152
152
|
self.quality_store_noise(
|
|
153
153
|
datetimes=noise_data.datetimes, values=noise_data.values, stokes=stokes
|
|
154
154
|
)
|
|
@@ -156,9 +156,9 @@ class CryonirspL1QualityMetrics(CryonirspTaskBase, QualityMixin):
|
|
|
156
156
|
def compute_intensity_only_noise(self):
|
|
157
157
|
"""Compute noise in data for the intensity stokes state only."""
|
|
158
158
|
stokes = "I"
|
|
159
|
-
with self.
|
|
159
|
+
with self.telemetry_span(f"Compile noise values for {stokes=}"):
|
|
160
160
|
noise_data = self.compile_noise_data(stokes=stokes)
|
|
161
|
-
with self.
|
|
161
|
+
with self.telemetry_span(f"Write noise values for {stokes=}"):
|
|
162
162
|
self.quality_store_noise(
|
|
163
163
|
datetimes=noise_data.datetimes, values=noise_data.values, stokes=stokes
|
|
164
164
|
)
|
|
@@ -70,17 +70,17 @@ class ScienceCalibrationBase(CryonirspTaskBase, ABC):
|
|
|
70
70
|
None
|
|
71
71
|
|
|
72
72
|
"""
|
|
73
|
-
with self.
|
|
73
|
+
with self.telemetry_span("Loading calibration objects"):
|
|
74
74
|
calibrations = self.collect_calibration_objects()
|
|
75
75
|
|
|
76
|
-
with self.
|
|
76
|
+
with self.telemetry_span(
|
|
77
77
|
f"Calibrating Science Frames for "
|
|
78
78
|
f"{self.constants.num_map_scans} map scans and "
|
|
79
79
|
f"{self.constants.num_scan_steps} scan steps"
|
|
80
80
|
):
|
|
81
81
|
self.calibrate_and_write_frames(calibrations=calibrations)
|
|
82
82
|
|
|
83
|
-
with self.
|
|
83
|
+
with self.telemetry_span("Computing and logging quality metrics"):
|
|
84
84
|
no_of_raw_science_frames: int = self.scratch.count_all(
|
|
85
85
|
tags=[
|
|
86
86
|
CryonirspTag.linearized_frame(),
|
|
@@ -227,7 +227,7 @@ class ScienceCalibrationBase(CryonirspTaskBase, ABC):
|
|
|
227
227
|
array_stack = np.zeros(array_shape + (self.constants.num_modstates,))
|
|
228
228
|
header_stack = []
|
|
229
229
|
|
|
230
|
-
with self.
|
|
230
|
+
with self.telemetry_span(f"Correcting {self.constants.num_modstates} modstates"):
|
|
231
231
|
for modstate in range(1, self.constants.num_modstates + 1):
|
|
232
232
|
# Correct the arrays
|
|
233
233
|
corrected_array, corrected_header = self.apply_basic_corrections(
|
|
@@ -243,7 +243,7 @@ class ScienceCalibrationBase(CryonirspTaskBase, ABC):
|
|
|
243
243
|
array_stack[:, :, modstate - 1] = corrected_array
|
|
244
244
|
header_stack.append(corrected_header)
|
|
245
245
|
|
|
246
|
-
with self.
|
|
246
|
+
with self.telemetry_span("Applying instrument polarization correction"):
|
|
247
247
|
intermediate_array = self.polarization_correction(
|
|
248
248
|
array_stack, calibrations.demod_matrices[CryonirspTag.beam(beam)]
|
|
249
249
|
)
|
|
@@ -71,39 +71,39 @@ class SPGeometricCalibration(CryonirspTaskBase, ShiftMeasurementsMixin):
|
|
|
71
71
|
"""
|
|
72
72
|
# The basic corrections are done outside the loop structure below as it makes these loops much
|
|
73
73
|
# simpler than they would be otherwise. See the comments in do_basic_corrections for more details.
|
|
74
|
-
with self.
|
|
74
|
+
with self.telemetry_span("Basic corrections"):
|
|
75
75
|
self.do_basic_corrections()
|
|
76
76
|
|
|
77
77
|
for beam in range(1, self.constants.num_beams + 1):
|
|
78
|
-
with self.
|
|
79
|
-
with self.
|
|
78
|
+
with self.telemetry_span(f"Generating geometric calibrations for {beam = }"):
|
|
79
|
+
with self.telemetry_span(f"Computing and writing angle for {beam = }"):
|
|
80
80
|
angle = self.compute_beam_angle(beam=beam)
|
|
81
81
|
self.write_angle(angle=angle, beam=beam)
|
|
82
82
|
|
|
83
|
-
with self.
|
|
83
|
+
with self.telemetry_span(f"Removing angle from {beam = }"):
|
|
84
84
|
angle_corr_array = self.remove_beam_angle(angle=angle, beam=beam)
|
|
85
85
|
|
|
86
|
-
with self.
|
|
86
|
+
with self.telemetry_span(f"Computing offset for {beam = }"):
|
|
87
87
|
beam_offset = self.compute_offset(
|
|
88
88
|
array=angle_corr_array,
|
|
89
89
|
beam=beam,
|
|
90
90
|
)
|
|
91
91
|
self.write_beam_offset(offset=beam_offset, beam=beam)
|
|
92
92
|
|
|
93
|
-
with self.
|
|
93
|
+
with self.telemetry_span(f"Removing offset for {beam = }"):
|
|
94
94
|
self.remove_beam_offset(
|
|
95
95
|
array=angle_corr_array,
|
|
96
96
|
offset=beam_offset,
|
|
97
97
|
beam=beam,
|
|
98
98
|
)
|
|
99
99
|
|
|
100
|
-
with self.
|
|
100
|
+
with self.telemetry_span(f"Computing spectral shifts for {beam = }"):
|
|
101
101
|
spec_shifts = self.compute_spectral_shifts(beam=beam)
|
|
102
102
|
|
|
103
|
-
with self.
|
|
103
|
+
with self.telemetry_span(f"Writing spectral shifts for {beam = }"):
|
|
104
104
|
self.write_spectral_shifts(shifts=spec_shifts, beam=beam)
|
|
105
105
|
|
|
106
|
-
with self.
|
|
106
|
+
with self.telemetry_span("Computing and logging quality metrics"):
|
|
107
107
|
no_of_raw_geo_frames: int = self.scratch.count_all(
|
|
108
108
|
tags=[
|
|
109
109
|
CryonirspTag.linearized_frame(),
|
|
@@ -60,29 +60,31 @@ class SPSolarGainCalibration(CryonirspTaskBase):
|
|
|
60
60
|
"""
|
|
61
61
|
target_exposure_conditions = self.constants.solar_gain_exposure_conditions_list
|
|
62
62
|
|
|
63
|
-
with self.
|
|
63
|
+
with self.telemetry_span(
|
|
64
|
+
f"Computing SP gain calibrations for {target_exposure_conditions=}"
|
|
65
|
+
):
|
|
64
66
|
for exposure_conditions in target_exposure_conditions:
|
|
65
67
|
for beam in range(1, self.constants.num_beams + 1):
|
|
66
|
-
with self.
|
|
68
|
+
with self.telemetry_span(
|
|
67
69
|
f"Perform initial corrections for {beam = } and {exposure_conditions = }"
|
|
68
70
|
):
|
|
69
71
|
spectral_corrected_solar_array = self.do_initial_corrections(
|
|
70
72
|
beam=beam, exposure_conditions=exposure_conditions
|
|
71
73
|
)
|
|
72
74
|
|
|
73
|
-
with self.
|
|
75
|
+
with self.telemetry_span(
|
|
74
76
|
f"Compute the characteristic spectrum for {beam = } and {exposure_conditions = }"
|
|
75
77
|
):
|
|
76
78
|
char_spectrum = self.compute_char_spectrum(
|
|
77
79
|
array=spectral_corrected_solar_array, beam=beam
|
|
78
80
|
)
|
|
79
81
|
|
|
80
|
-
with self.
|
|
82
|
+
with self.telemetry_span(
|
|
81
83
|
f"Re-apply the spectral and geometric distortions for {beam = } and {exposure_conditions = }"
|
|
82
84
|
):
|
|
83
85
|
distorted_char_spectrum = self.distort_char_spectrum(char_spectrum)
|
|
84
86
|
|
|
85
|
-
with self.
|
|
87
|
+
with self.telemetry_span(
|
|
86
88
|
f"Remove the solar spectrum for {beam = } and {exposure_conditions = }"
|
|
87
89
|
):
|
|
88
90
|
# This is the final gain image, as we do not normalize
|
|
@@ -93,7 +95,7 @@ class SPSolarGainCalibration(CryonirspTaskBase):
|
|
|
93
95
|
)
|
|
94
96
|
|
|
95
97
|
if self.parameters.fringe_correction_on:
|
|
96
|
-
with self.
|
|
98
|
+
with self.telemetry_span(
|
|
97
99
|
f"Computing final solar gain based on fringe-corrected flux-scaled lamp gain for {beam = } and {exposure_conditions = }"
|
|
98
100
|
):
|
|
99
101
|
# Compute a solar gain based on a fringe-corrected lamp gain
|
|
@@ -101,7 +103,7 @@ class SPSolarGainCalibration(CryonirspTaskBase):
|
|
|
101
103
|
beam, exposure_conditions
|
|
102
104
|
)
|
|
103
105
|
|
|
104
|
-
with self.
|
|
106
|
+
with self.telemetry_span(
|
|
105
107
|
f"Writing the final solar gain array for {beam = } and {exposure_conditions = }"
|
|
106
108
|
):
|
|
107
109
|
self.write_solar_gain_calibration(
|
|
@@ -109,7 +111,7 @@ class SPSolarGainCalibration(CryonirspTaskBase):
|
|
|
109
111
|
beam=beam,
|
|
110
112
|
)
|
|
111
113
|
|
|
112
|
-
with self.
|
|
114
|
+
with self.telemetry_span("Computing and logging quality metrics"):
|
|
113
115
|
no_of_raw_solar_frames: int = self.scratch.count_all(
|
|
114
116
|
tags=[
|
|
115
117
|
CryonirspTag.linearized_frame(),
|
|
@@ -449,18 +451,18 @@ class SPSolarGainCalibration(CryonirspTaskBase):
|
|
|
449
451
|
"""
|
|
450
452
|
apm_str = f"{beam = } and {exposure_conditions = }"
|
|
451
453
|
|
|
452
|
-
with self.
|
|
454
|
+
with self.telemetry_span(f"Perform initial corrections for {apm_str}"):
|
|
453
455
|
corrected_solar_array = self.do_dark_and_bad_pixel_corrections(
|
|
454
456
|
beam=beam, exposure_conditions=exposure_conditions
|
|
455
457
|
)
|
|
456
458
|
|
|
457
|
-
with self.
|
|
459
|
+
with self.telemetry_span(f"Compute the flux-scaled lamp gain for {apm_str}"):
|
|
458
460
|
scaled_lamp_array = self.compute_flux_scaled_lamp_gain(corrected_solar_array, beam)
|
|
459
461
|
|
|
460
|
-
with self.
|
|
462
|
+
with self.telemetry_span(f"Apply spectral filtering for {apm_str}"):
|
|
461
463
|
filtered_lamp_array = self.apply_spectral_and_spatial_filtering(scaled_lamp_array)
|
|
462
464
|
|
|
463
|
-
with self.
|
|
465
|
+
with self.telemetry_span(f"Isolate and remove fringes for {apm_str}"):
|
|
464
466
|
final_gain_array = self.isolate_and_remove_fringes(
|
|
465
467
|
filtered_lamp_array, scaled_lamp_array
|
|
466
468
|
)
|
|
@@ -62,7 +62,7 @@ class SPWavelengthCalibration(CryonirspTaskBase):
|
|
|
62
62
|
-------
|
|
63
63
|
None
|
|
64
64
|
"""
|
|
65
|
-
with self.
|
|
65
|
+
with self.telemetry_span("Load input spectrum and wavelength"):
|
|
66
66
|
logger.info("Loading input spectrum")
|
|
67
67
|
input_spectrum = next(
|
|
68
68
|
self.read(
|
|
@@ -99,7 +99,7 @@ class SPWavelengthCalibration(CryonirspTaskBase):
|
|
|
99
99
|
resolving_power = self.get_resolving_power()
|
|
100
100
|
logger.info(f"{resolving_power = }")
|
|
101
101
|
|
|
102
|
-
with self.
|
|
102
|
+
with self.telemetry_span("Compute brute-force CRVAL initial guess"):
|
|
103
103
|
atlas = Atlas(config=self.parameters.wavecal_atlas_download_config)
|
|
104
104
|
crval = calculate_initial_crval_guess(
|
|
105
105
|
input_wavelength_vector=input_wavelength_vector,
|
|
@@ -111,7 +111,7 @@ class SPWavelengthCalibration(CryonirspTaskBase):
|
|
|
111
111
|
)
|
|
112
112
|
logger.info(f"{crval = !s}")
|
|
113
113
|
|
|
114
|
-
with self.
|
|
114
|
+
with self.telemetry_span("Set up wavelength fit"):
|
|
115
115
|
logger.info("Setting bounds")
|
|
116
116
|
bounds = BoundsModel(
|
|
117
117
|
crval=LengthBoundRange(min=crval - (5 * u.nm), max=crval + (5 * u.nm)),
|
|
@@ -158,14 +158,14 @@ class SPWavelengthCalibration(CryonirspTaskBase):
|
|
|
158
158
|
|
|
159
159
|
logger.info(f"Input parameters: {input_parameters.lmfit_parameters.pretty_repr()}")
|
|
160
160
|
|
|
161
|
-
with self.
|
|
161
|
+
with self.telemetry_span("Run wavelength solution fit"):
|
|
162
162
|
fit_result = fitter(
|
|
163
163
|
input_wavelength_vector=input_wavelength_vector,
|
|
164
164
|
input_spectrum=input_spectrum,
|
|
165
165
|
spectral_weights=weights,
|
|
166
166
|
)
|
|
167
167
|
|
|
168
|
-
with self.
|
|
168
|
+
with self.telemetry_span("Save wavelength solution and quality metrics"):
|
|
169
169
|
self.write(
|
|
170
170
|
data=fit_result.wavelength_parameters.to_header(
|
|
171
171
|
axis_num=1, add_alternate_keys=True
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import argparse
|
|
2
|
-
import json
|
|
3
2
|
import os
|
|
4
3
|
import sys
|
|
5
4
|
from datetime import datetime
|
|
@@ -170,21 +169,6 @@ def spoof_obs_lin_parsed_constants(
|
|
|
170
169
|
return SetCalOnlyConstants
|
|
171
170
|
|
|
172
171
|
|
|
173
|
-
def setup_APM_config() -> None:
|
|
174
|
-
mesh_config = {
|
|
175
|
-
"system-monitoring-log-apm": {
|
|
176
|
-
"mesh_address": "system-monitoring-log-apm.service.sim.consul",
|
|
177
|
-
"mesh_port": 8200,
|
|
178
|
-
},
|
|
179
|
-
"automated-processing-scratch-inventory": {"mesh_address": "localhost", "mesh_port": 6379},
|
|
180
|
-
"internal-api-gateway": {"mesh_address": "localhost", "mesh_port": 80},
|
|
181
|
-
}
|
|
182
|
-
apm_options = {"TRANSACTION_MAX_SPANS": 10000}
|
|
183
|
-
os.environ["MESH_CONFIG"] = json.dumps(mesh_config)
|
|
184
|
-
os.environ["ELASTIC_APM_ENABLED"] = "true"
|
|
185
|
-
os.environ["ELASTIC_APM_OTHER_OPTIONS"] = json.dumps(apm_options)
|
|
186
|
-
|
|
187
|
-
|
|
188
172
|
def CI_workflow(
|
|
189
173
|
manual_processing_run: ManualProcessing,
|
|
190
174
|
load_beam_boundaries: bool = False,
|
|
@@ -289,13 +273,10 @@ def main(
|
|
|
289
273
|
load_solar: bool = False,
|
|
290
274
|
load_wavelength_correction: bool = False,
|
|
291
275
|
load_inst_pol: bool = False,
|
|
292
|
-
use_apm: bool = False,
|
|
293
276
|
param_path: Path = None,
|
|
294
277
|
dummy_wavelength: float = 1083.0,
|
|
295
278
|
polarimetric: bool = True,
|
|
296
279
|
):
|
|
297
|
-
if use_apm:
|
|
298
|
-
setup_APM_config()
|
|
299
280
|
with ManualProcessing(
|
|
300
281
|
workflow_path=Path(scratch_path),
|
|
301
282
|
recipe_run_id=recipe_run_id,
|
|
@@ -491,7 +472,6 @@ if __name__ == "__main__":
|
|
|
491
472
|
help="Load instrument polarization calibration from previously saved run",
|
|
492
473
|
action="store_true",
|
|
493
474
|
)
|
|
494
|
-
parser.add_argument("-A", "--use-apm", help="Send APM spans to SIM", action="store_true")
|
|
495
475
|
parser.add_argument(
|
|
496
476
|
"-p",
|
|
497
477
|
"--param-path",
|
|
@@ -526,7 +506,6 @@ if __name__ == "__main__":
|
|
|
526
506
|
load_solar=args.load_solar,
|
|
527
507
|
load_wavelength_correction=args.load_wavelength_correction,
|
|
528
508
|
load_inst_pol=args.load_inst_pol,
|
|
529
|
-
use_apm=args.use_apm,
|
|
530
509
|
param_path=Path(args.param_path),
|
|
531
510
|
polarimetric=not args.intensity_only,
|
|
532
511
|
)
|
|
@@ -191,21 +191,6 @@ class ValidateL1Output(CryonirspTaskBase):
|
|
|
191
191
|
spec214_validator.validate(f, extra=False)
|
|
192
192
|
|
|
193
193
|
|
|
194
|
-
def setup_APM_config() -> None:
|
|
195
|
-
mesh_config = {
|
|
196
|
-
"system-monitoring-log-apm": {
|
|
197
|
-
"mesh_address": "system-monitoring-log-apm.service.sim.consul",
|
|
198
|
-
"mesh_port": 8200,
|
|
199
|
-
},
|
|
200
|
-
"automated-processing-scratch-inventory": {"mesh_address": "localhost", "mesh_port": 6379},
|
|
201
|
-
"internal-api-gateway": {"mesh_address": "localhost", "mesh_port": 80},
|
|
202
|
-
}
|
|
203
|
-
apm_options = {"TRANSACTION_MAX_SPANS": 10000}
|
|
204
|
-
os.environ["MESH_CONFIG"] = json.dumps(mesh_config)
|
|
205
|
-
os.environ["ELASTIC_APM_ENABLED"] = "true"
|
|
206
|
-
os.environ["ELASTIC_APM_OTHER_OPTIONS"] = json.dumps(apm_options)
|
|
207
|
-
|
|
208
|
-
|
|
209
194
|
def CI_workflow(
|
|
210
195
|
manual_processing_run: ManualProcessing,
|
|
211
196
|
load_beam_boundaries: bool = False,
|
|
@@ -322,12 +307,9 @@ def main(
|
|
|
322
307
|
load_solar: bool = False,
|
|
323
308
|
load_inst_pol: bool = False,
|
|
324
309
|
load_wavelength_calibration: bool = False,
|
|
325
|
-
use_apm: bool = False,
|
|
326
310
|
param_path: Path = None,
|
|
327
311
|
transfer_trial_data: str | None = None,
|
|
328
312
|
):
|
|
329
|
-
if use_apm:
|
|
330
|
-
setup_APM_config()
|
|
331
313
|
with ManualProcessing(
|
|
332
314
|
workflow_path=Path(scratch_path),
|
|
333
315
|
recipe_run_id=recipe_run_id,
|
|
@@ -573,7 +555,6 @@ if __name__ == "__main__":
|
|
|
573
555
|
help="Load instrument polarization calibration from previously saved run",
|
|
574
556
|
action="store_true",
|
|
575
557
|
)
|
|
576
|
-
parser.add_argument("-A", "--use-apm", help="Send APM spans to SIM", action="store_true")
|
|
577
558
|
parser.add_argument(
|
|
578
559
|
"-p",
|
|
579
560
|
"--param-path",
|
|
@@ -603,7 +584,6 @@ if __name__ == "__main__":
|
|
|
603
584
|
load_solar=args.load_solar,
|
|
604
585
|
load_wavelength_calibration=args.load_wavelength_calibration,
|
|
605
586
|
load_inst_pol=args.load_inst_pol,
|
|
606
|
-
use_apm=args.use_apm,
|
|
607
587
|
param_path=Path(args.param_path),
|
|
608
588
|
transfer_trial_data=args.transfer_trial_data,
|
|
609
589
|
)
|
{dkist_processing_cryonirsp-1.13.0.dist-info → dkist_processing_cryonirsp-1.14.0.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dkist-processing-cryonirsp
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.14.0
|
|
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,12 +17,12 @@ Requires-Dist: Pillow==10.4.0
|
|
|
17
17
|
Requires-Dist: astropy==7.0.2
|
|
18
18
|
Requires-Dist: dkist-fits-specifications==4.17.0
|
|
19
19
|
Requires-Dist: dkist-header-validator==5.2.1
|
|
20
|
-
Requires-Dist: dkist-processing-common==11.
|
|
20
|
+
Requires-Dist: dkist-processing-common==11.6.0
|
|
21
21
|
Requires-Dist: dkist-processing-math==2.2.1
|
|
22
22
|
Requires-Dist: dkist-processing-pac==3.1.1
|
|
23
23
|
Requires-Dist: dkist-spectral-lines==3.0.0
|
|
24
24
|
Requires-Dist: largestinteriorrectangle==0.2.1
|
|
25
|
-
Requires-Dist: dkist-service-configuration==
|
|
25
|
+
Requires-Dist: dkist-service-configuration==4.1.7
|
|
26
26
|
Requires-Dist: moviepy==2.1.2
|
|
27
27
|
Requires-Dist: numba==0.61.2
|
|
28
28
|
Requires-Dist: numpy==2.2.5
|
|
@@ -70,7 +70,7 @@ Requires-Dist: Flask-AppBuilder==4.5.3; extra == "frozen"
|
|
|
70
70
|
Requires-Dist: Flask-Babel==2.0.0; extra == "frozen"
|
|
71
71
|
Requires-Dist: Flask-Caching==2.3.1; extra == "frozen"
|
|
72
72
|
Requires-Dist: Flask-JWT-Extended==4.7.1; extra == "frozen"
|
|
73
|
-
Requires-Dist: Flask-Limiter==3.
|
|
73
|
+
Requires-Dist: Flask-Limiter==3.13; extra == "frozen"
|
|
74
74
|
Requires-Dist: Flask-Login==0.6.3; extra == "frozen"
|
|
75
75
|
Requires-Dist: Flask-SQLAlchemy==2.5.1; extra == "frozen"
|
|
76
76
|
Requires-Dist: Flask-Session==0.5.0; extra == "frozen"
|
|
@@ -80,55 +80,56 @@ Requires-Dist: Mako==1.3.10; extra == "frozen"
|
|
|
80
80
|
Requires-Dist: MarkupSafe==3.0.2; extra == "frozen"
|
|
81
81
|
Requires-Dist: PeakUtils==1.3.5; extra == "frozen"
|
|
82
82
|
Requires-Dist: PyJWT==2.10.1; extra == "frozen"
|
|
83
|
-
Requires-Dist: PyYAML==6.0.
|
|
83
|
+
Requires-Dist: PyYAML==6.0.3; extra == "frozen"
|
|
84
84
|
Requires-Dist: Pygments==2.19.2; extra == "frozen"
|
|
85
85
|
Requires-Dist: SQLAlchemy==1.4.54; extra == "frozen"
|
|
86
86
|
Requires-Dist: SQLAlchemy-JSONField==1.0.2; extra == "frozen"
|
|
87
87
|
Requires-Dist: SQLAlchemy-Utils==0.42.0; extra == "frozen"
|
|
88
88
|
Requires-Dist: WTForms==3.2.1; extra == "frozen"
|
|
89
89
|
Requires-Dist: Werkzeug==2.2.3; extra == "frozen"
|
|
90
|
-
Requires-Dist: aioftp==0.
|
|
90
|
+
Requires-Dist: aioftp==0.27.2; extra == "frozen"
|
|
91
91
|
Requires-Dist: aiohappyeyeballs==2.6.1; extra == "frozen"
|
|
92
92
|
Requires-Dist: aiohttp==3.12.15; extra == "frozen"
|
|
93
93
|
Requires-Dist: aiosignal==1.4.0; extra == "frozen"
|
|
94
|
+
Requires-Dist: aiosmtplib==4.0.2; extra == "frozen"
|
|
94
95
|
Requires-Dist: alembic==1.16.5; extra == "frozen"
|
|
95
96
|
Requires-Dist: amqp==5.3.1; extra == "frozen"
|
|
96
97
|
Requires-Dist: annotated-types==0.7.0; extra == "frozen"
|
|
97
|
-
Requires-Dist: anyio==4.
|
|
98
|
+
Requires-Dist: anyio==4.11.0; extra == "frozen"
|
|
98
99
|
Requires-Dist: apache-airflow==2.11.0; extra == "frozen"
|
|
99
|
-
Requires-Dist: apache-airflow-providers-celery==3.
|
|
100
|
-
Requires-Dist: apache-airflow-providers-common-compat==1.7.
|
|
101
|
-
Requires-Dist: apache-airflow-providers-common-io==1.6.
|
|
102
|
-
Requires-Dist: apache-airflow-providers-common-sql==1.
|
|
100
|
+
Requires-Dist: apache-airflow-providers-celery==3.10.0; extra == "frozen"
|
|
101
|
+
Requires-Dist: apache-airflow-providers-common-compat==1.7.4; extra == "frozen"
|
|
102
|
+
Requires-Dist: apache-airflow-providers-common-io==1.6.3; extra == "frozen"
|
|
103
|
+
Requires-Dist: apache-airflow-providers-common-sql==1.28.1; extra == "frozen"
|
|
103
104
|
Requires-Dist: apache-airflow-providers-fab==1.5.3; extra == "frozen"
|
|
104
105
|
Requires-Dist: apache-airflow-providers-ftp==3.13.2; extra == "frozen"
|
|
105
|
-
Requires-Dist: apache-airflow-providers-http==5.3.
|
|
106
|
+
Requires-Dist: apache-airflow-providers-http==5.3.4; extra == "frozen"
|
|
106
107
|
Requires-Dist: apache-airflow-providers-imap==3.9.2; extra == "frozen"
|
|
107
|
-
Requires-Dist: apache-airflow-providers-postgres==6.
|
|
108
|
-
Requires-Dist: apache-airflow-providers-smtp==2.
|
|
108
|
+
Requires-Dist: apache-airflow-providers-postgres==6.3.0; extra == "frozen"
|
|
109
|
+
Requires-Dist: apache-airflow-providers-smtp==2.3.0; extra == "frozen"
|
|
109
110
|
Requires-Dist: apache-airflow-providers-sqlite==4.1.2; extra == "frozen"
|
|
110
|
-
Requires-Dist: apispec==6.8.
|
|
111
|
+
Requires-Dist: apispec==6.8.4; extra == "frozen"
|
|
111
112
|
Requires-Dist: argcomplete==3.6.2; extra == "frozen"
|
|
112
113
|
Requires-Dist: asdf==3.5.0; extra == "frozen"
|
|
113
114
|
Requires-Dist: asdf_standard==1.4.0; extra == "frozen"
|
|
114
115
|
Requires-Dist: asdf_transform_schemas==0.6.0; extra == "frozen"
|
|
115
|
-
Requires-Dist: asgiref==3.9.
|
|
116
|
+
Requires-Dist: asgiref==3.9.2; extra == "frozen"
|
|
116
117
|
Requires-Dist: asteval==1.0.6; extra == "frozen"
|
|
117
118
|
Requires-Dist: astropy==7.0.2; extra == "frozen"
|
|
118
|
-
Requires-Dist: astropy-iers-data==0.2025.9.
|
|
119
|
+
Requires-Dist: astropy-iers-data==0.2025.9.22.0.37.25; extra == "frozen"
|
|
119
120
|
Requires-Dist: asyncpg==0.30.0; extra == "frozen"
|
|
120
121
|
Requires-Dist: attrs==25.3.0; extra == "frozen"
|
|
121
122
|
Requires-Dist: babel==2.17.0; extra == "frozen"
|
|
122
|
-
Requires-Dist: billiard==4.2.
|
|
123
|
+
Requires-Dist: billiard==4.2.2; extra == "frozen"
|
|
123
124
|
Requires-Dist: blinker==1.9.0; extra == "frozen"
|
|
124
|
-
Requires-Dist: boto3==1.40.
|
|
125
|
-
Requires-Dist: botocore==1.40.
|
|
125
|
+
Requires-Dist: boto3==1.40.39; extra == "frozen"
|
|
126
|
+
Requires-Dist: botocore==1.40.39; extra == "frozen"
|
|
126
127
|
Requires-Dist: cachelib==0.13.0; extra == "frozen"
|
|
127
|
-
Requires-Dist: celery==5.
|
|
128
|
+
Requires-Dist: celery==5.3.1; extra == "frozen"
|
|
128
129
|
Requires-Dist: certifi==2025.8.3; extra == "frozen"
|
|
129
|
-
Requires-Dist: cffi==
|
|
130
|
+
Requires-Dist: cffi==2.0.0; extra == "frozen"
|
|
130
131
|
Requires-Dist: charset-normalizer==3.4.3; extra == "frozen"
|
|
131
|
-
Requires-Dist: click==8.
|
|
132
|
+
Requires-Dist: click==8.3.0; extra == "frozen"
|
|
132
133
|
Requires-Dist: click-didyoumean==0.3.1; extra == "frozen"
|
|
133
134
|
Requires-Dist: click-plugins==1.1.1.2; extra == "frozen"
|
|
134
135
|
Requires-Dist: click-repl==0.3.0; extra == "frozen"
|
|
@@ -139,34 +140,32 @@ Requires-Dist: connexion==2.14.2; extra == "frozen"
|
|
|
139
140
|
Requires-Dist: contourpy==1.3.3; extra == "frozen"
|
|
140
141
|
Requires-Dist: cron_descriptor==2.0.6; extra == "frozen"
|
|
141
142
|
Requires-Dist: croniter==6.0.0; extra == "frozen"
|
|
142
|
-
Requires-Dist: cryptography==
|
|
143
|
+
Requires-Dist: cryptography==46.0.1; extra == "frozen"
|
|
143
144
|
Requires-Dist: cycler==0.12.1; extra == "frozen"
|
|
144
145
|
Requires-Dist: dacite==1.9.2; extra == "frozen"
|
|
145
146
|
Requires-Dist: decorator==5.2.1; extra == "frozen"
|
|
146
147
|
Requires-Dist: dill==0.4.0; extra == "frozen"
|
|
147
148
|
Requires-Dist: dkist-header-validator==5.2.1; extra == "frozen"
|
|
148
|
-
Requires-Dist: dkist-processing-common==11.
|
|
149
|
-
Requires-Dist: dkist-processing-core==
|
|
150
|
-
Requires-Dist: dkist-processing-cryonirsp==1.
|
|
149
|
+
Requires-Dist: dkist-processing-common==11.6.0; extra == "frozen"
|
|
150
|
+
Requires-Dist: dkist-processing-core==6.0.0; extra == "frozen"
|
|
151
|
+
Requires-Dist: dkist-processing-cryonirsp==1.14.0; extra == "frozen"
|
|
151
152
|
Requires-Dist: dkist-processing-math==2.2.1; extra == "frozen"
|
|
152
153
|
Requires-Dist: dkist-processing-pac==3.1.1; extra == "frozen"
|
|
153
|
-
Requires-Dist: dkist-service-configuration==
|
|
154
|
+
Requires-Dist: dkist-service-configuration==4.1.7; extra == "frozen"
|
|
154
155
|
Requires-Dist: dkist-spectral-lines==3.0.0; extra == "frozen"
|
|
155
156
|
Requires-Dist: dkist_fits_specifications==4.17.0; extra == "frozen"
|
|
156
157
|
Requires-Dist: dnspython==2.8.0; extra == "frozen"
|
|
157
|
-
Requires-Dist: ecs-logging==2.2.0; extra == "frozen"
|
|
158
|
-
Requires-Dist: elastic-apm==6.24.0; extra == "frozen"
|
|
159
158
|
Requires-Dist: email-validator==2.3.0; extra == "frozen"
|
|
160
159
|
Requires-Dist: fastjsonschema==2.21.2; extra == "frozen"
|
|
161
160
|
Requires-Dist: flower==2.0.1; extra == "frozen"
|
|
162
|
-
Requires-Dist: fonttools==4.
|
|
161
|
+
Requires-Dist: fonttools==4.60.0; extra == "frozen"
|
|
163
162
|
Requires-Dist: frozenlist==1.7.0; extra == "frozen"
|
|
164
163
|
Requires-Dist: fsspec==2025.9.0; extra == "frozen"
|
|
165
|
-
Requires-Dist: globus-sdk==3.
|
|
164
|
+
Requires-Dist: globus-sdk==3.64.0; extra == "frozen"
|
|
166
165
|
Requires-Dist: google-re2==1.1.20250805; extra == "frozen"
|
|
167
166
|
Requires-Dist: googleapis-common-protos==1.70.0; extra == "frozen"
|
|
168
167
|
Requires-Dist: gqlclient==1.2.3; extra == "frozen"
|
|
169
|
-
Requires-Dist: grpcio==1.
|
|
168
|
+
Requires-Dist: grpcio==1.75.1; extra == "frozen"
|
|
170
169
|
Requires-Dist: gunicorn==23.0.0; extra == "frozen"
|
|
171
170
|
Requires-Dist: h11==0.16.0; extra == "frozen"
|
|
172
171
|
Requires-Dist: httpcore==1.0.9; extra == "frozen"
|
|
@@ -209,14 +208,30 @@ Requires-Dist: networkx==3.5; extra == "frozen"
|
|
|
209
208
|
Requires-Dist: numba==0.61.2; extra == "frozen"
|
|
210
209
|
Requires-Dist: numpy==2.2.5; extra == "frozen"
|
|
211
210
|
Requires-Dist: object-clerk==1.0.0; extra == "frozen"
|
|
212
|
-
Requires-Dist: opentelemetry-api==1.
|
|
213
|
-
Requires-Dist: opentelemetry-exporter-otlp==1.
|
|
214
|
-
Requires-Dist: opentelemetry-exporter-otlp-proto-common==1.
|
|
215
|
-
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc==1.
|
|
216
|
-
Requires-Dist: opentelemetry-exporter-otlp-proto-http==1.
|
|
217
|
-
Requires-Dist: opentelemetry-
|
|
218
|
-
Requires-Dist: opentelemetry-
|
|
219
|
-
Requires-Dist: opentelemetry-
|
|
211
|
+
Requires-Dist: opentelemetry-api==1.37.0; extra == "frozen"
|
|
212
|
+
Requires-Dist: opentelemetry-exporter-otlp==1.37.0; extra == "frozen"
|
|
213
|
+
Requires-Dist: opentelemetry-exporter-otlp-proto-common==1.37.0; extra == "frozen"
|
|
214
|
+
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc==1.37.0; extra == "frozen"
|
|
215
|
+
Requires-Dist: opentelemetry-exporter-otlp-proto-http==1.37.0; extra == "frozen"
|
|
216
|
+
Requires-Dist: opentelemetry-instrumentation==0.58b0; extra == "frozen"
|
|
217
|
+
Requires-Dist: opentelemetry-instrumentation-aiohttp-client==0.58b0; extra == "frozen"
|
|
218
|
+
Requires-Dist: opentelemetry-instrumentation-asgi==0.58b0; extra == "frozen"
|
|
219
|
+
Requires-Dist: opentelemetry-instrumentation-botocore==0.58b0; extra == "frozen"
|
|
220
|
+
Requires-Dist: opentelemetry-instrumentation-celery==0.58b0; extra == "frozen"
|
|
221
|
+
Requires-Dist: opentelemetry-instrumentation-dbapi==0.58b0; extra == "frozen"
|
|
222
|
+
Requires-Dist: opentelemetry-instrumentation-fastapi==0.58b0; extra == "frozen"
|
|
223
|
+
Requires-Dist: opentelemetry-instrumentation-pika==0.58b0; extra == "frozen"
|
|
224
|
+
Requires-Dist: opentelemetry-instrumentation-psycopg2==0.58b0; extra == "frozen"
|
|
225
|
+
Requires-Dist: opentelemetry-instrumentation-pymongo==0.58b0; extra == "frozen"
|
|
226
|
+
Requires-Dist: opentelemetry-instrumentation-redis==0.58b0; extra == "frozen"
|
|
227
|
+
Requires-Dist: opentelemetry-instrumentation-requests==0.58b0; extra == "frozen"
|
|
228
|
+
Requires-Dist: opentelemetry-instrumentation-sqlalchemy==0.58b0; extra == "frozen"
|
|
229
|
+
Requires-Dist: opentelemetry-instrumentation-system-metrics==0.58b0; extra == "frozen"
|
|
230
|
+
Requires-Dist: opentelemetry-propagator-aws-xray==1.0.2; extra == "frozen"
|
|
231
|
+
Requires-Dist: opentelemetry-proto==1.37.0; extra == "frozen"
|
|
232
|
+
Requires-Dist: opentelemetry-sdk==1.37.0; extra == "frozen"
|
|
233
|
+
Requires-Dist: opentelemetry-semantic-conventions==0.58b0; extra == "frozen"
|
|
234
|
+
Requires-Dist: opentelemetry-util-http==0.58b0; extra == "frozen"
|
|
220
235
|
Requires-Dist: ordered-set==4.1.0; extra == "frozen"
|
|
221
236
|
Requires-Dist: packaging==25.0; extra == "frozen"
|
|
222
237
|
Requires-Dist: pandas==2.3.2; extra == "frozen"
|
|
@@ -231,33 +246,33 @@ Requires-Dist: pluggy==1.6.0; extra == "frozen"
|
|
|
231
246
|
Requires-Dist: pooch==1.8.2; extra == "frozen"
|
|
232
247
|
Requires-Dist: prison==0.2.1; extra == "frozen"
|
|
233
248
|
Requires-Dist: proglog==0.1.12; extra == "frozen"
|
|
234
|
-
Requires-Dist: prometheus_client==0.
|
|
249
|
+
Requires-Dist: prometheus_client==0.23.1; extra == "frozen"
|
|
235
250
|
Requires-Dist: prompt_toolkit==3.0.52; extra == "frozen"
|
|
236
251
|
Requires-Dist: propcache==0.3.2; extra == "frozen"
|
|
237
|
-
Requires-Dist: protobuf==6.32.
|
|
238
|
-
Requires-Dist: psutil==7.
|
|
252
|
+
Requires-Dist: protobuf==6.32.1; extra == "frozen"
|
|
253
|
+
Requires-Dist: psutil==7.1.0; extra == "frozen"
|
|
239
254
|
Requires-Dist: psycopg2-binary==2.9.10; extra == "frozen"
|
|
240
|
-
Requires-Dist: pycparser==2.
|
|
241
|
-
Requires-Dist: pydantic==2.11.
|
|
242
|
-
Requires-Dist: pydantic-settings==2.
|
|
255
|
+
Requires-Dist: pycparser==2.23; extra == "frozen"
|
|
256
|
+
Requires-Dist: pydantic==2.11.9; extra == "frozen"
|
|
257
|
+
Requires-Dist: pydantic-settings==2.11.0; extra == "frozen"
|
|
243
258
|
Requires-Dist: pydantic_core==2.33.2; extra == "frozen"
|
|
244
259
|
Requires-Dist: pyerfa==2.0.1.5; extra == "frozen"
|
|
245
|
-
Requires-Dist: pyparsing==3.2.
|
|
260
|
+
Requires-Dist: pyparsing==3.2.5; extra == "frozen"
|
|
246
261
|
Requires-Dist: python-daemon==3.1.2; extra == "frozen"
|
|
247
262
|
Requires-Dist: python-dateutil==2.9.0.post0; extra == "frozen"
|
|
248
263
|
Requires-Dist: python-dotenv==1.1.1; extra == "frozen"
|
|
249
264
|
Requires-Dist: python-nvd3==0.16.0; extra == "frozen"
|
|
250
265
|
Requires-Dist: python-slugify==8.0.4; extra == "frozen"
|
|
251
266
|
Requires-Dist: pytz==2025.2; extra == "frozen"
|
|
252
|
-
Requires-Dist: redis==4.
|
|
267
|
+
Requires-Dist: redis==6.4.0; extra == "frozen"
|
|
253
268
|
Requires-Dist: referencing==0.36.2; extra == "frozen"
|
|
254
269
|
Requires-Dist: requests==2.32.5; extra == "frozen"
|
|
255
270
|
Requires-Dist: requests-toolbelt==1.0.0; extra == "frozen"
|
|
256
271
|
Requires-Dist: rfc3339-validator==0.1.4; extra == "frozen"
|
|
257
|
-
Requires-Dist: rich==
|
|
272
|
+
Requires-Dist: rich==14.1.0; extra == "frozen"
|
|
258
273
|
Requires-Dist: rich-argparse==1.7.1; extra == "frozen"
|
|
259
274
|
Requires-Dist: rpds-py==0.27.1; extra == "frozen"
|
|
260
|
-
Requires-Dist: s3transfer==0.
|
|
275
|
+
Requires-Dist: s3transfer==0.14.0; extra == "frozen"
|
|
261
276
|
Requires-Dist: scikit-image==0.25.2; extra == "frozen"
|
|
262
277
|
Requires-Dist: scipy==1.15.3; extra == "frozen"
|
|
263
278
|
Requires-Dist: semantic-version==2.10.0; extra == "frozen"
|
|
@@ -273,7 +288,7 @@ Requires-Dist: talus==1.3.4; extra == "frozen"
|
|
|
273
288
|
Requires-Dist: tenacity==8.5.0; extra == "frozen"
|
|
274
289
|
Requires-Dist: termcolor==3.1.0; extra == "frozen"
|
|
275
290
|
Requires-Dist: text-unidecode==1.3; extra == "frozen"
|
|
276
|
-
Requires-Dist: tifffile==2025.
|
|
291
|
+
Requires-Dist: tifffile==2025.9.20; extra == "frozen"
|
|
277
292
|
Requires-Dist: tornado==6.5.2; extra == "frozen"
|
|
278
293
|
Requires-Dist: tqdm==4.67.1; extra == "frozen"
|
|
279
294
|
Requires-Dist: traitlets==5.14.3; extra == "frozen"
|
|
@@ -286,7 +301,7 @@ Requires-Dist: universal_pathlib==0.2.6; extra == "frozen"
|
|
|
286
301
|
Requires-Dist: urllib3==2.5.0; extra == "frozen"
|
|
287
302
|
Requires-Dist: vine==5.1.0; extra == "frozen"
|
|
288
303
|
Requires-Dist: voluptuous==0.15.2; extra == "frozen"
|
|
289
|
-
Requires-Dist: wcwidth==0.2.
|
|
304
|
+
Requires-Dist: wcwidth==0.2.14; extra == "frozen"
|
|
290
305
|
Requires-Dist: wirerope==1.0.0; extra == "frozen"
|
|
291
306
|
Requires-Dist: wrapt==1.17.3; extra == "frozen"
|
|
292
307
|
Requires-Dist: yamale==6.0.0; extra == "frozen"
|
|
@@ -309,7 +324,83 @@ in their own package facilitates using the build_utils to test the integrity of
|
|
|
309
324
|
|
|
310
325
|
Environment Variables
|
|
311
326
|
---------------------
|
|
312
|
-
|
|
327
|
+
|
|
328
|
+
.. list-table::
|
|
329
|
+
:widths: 10 90
|
|
330
|
+
:header-rows: 1
|
|
331
|
+
|
|
332
|
+
* - Variable
|
|
333
|
+
- Field Info
|
|
334
|
+
* - LOGURU_LEVEL
|
|
335
|
+
- annotation=str required=False default='INFO' alias_priority=2 validation_alias='LOGURU_LEVEL' description='Log level for the application'
|
|
336
|
+
* - MESH_CONFIG
|
|
337
|
+
- annotation=dict[str, MeshService] required=False default_factory=dict alias_priority=2 validation_alias='MESH_CONFIG' description='Service mesh configuration' examples=[{'upstream_service_name': {'mesh_address': 'localhost', 'mesh_port': 6742}}]
|
|
338
|
+
* - RETRY_CONFIG
|
|
339
|
+
- annotation=RetryConfig required=False default_factory=RetryConfig description='Retry configuration for the service'
|
|
340
|
+
* - OTEL_SERVICE_NAME
|
|
341
|
+
- annotation=str required=False default='unknown-service-name' alias_priority=2 validation_alias='OTEL_SERVICE_NAME' description='Service name for OpenTelemetry'
|
|
342
|
+
* - DKIST_SERVICE_VERSION
|
|
343
|
+
- annotation=str required=False default='unknown-service-version' alias_priority=2 validation_alias='DKIST_SERVICE_VERSION' description='Service version for OpenTelemetry'
|
|
344
|
+
* - NOMAD_ALLOC_ID
|
|
345
|
+
- annotation=str required=False default='unknown-allocation-id' alias_priority=2 validation_alias='NOMAD_ALLOC_ID' description='Nomad allocation ID for OpenTelemetry'
|
|
346
|
+
* - OTEL_EXPORTER_OTLP_TRACES_INSECURE
|
|
347
|
+
- annotation=bool required=False default=True description='Use insecure connection for OTLP traces'
|
|
348
|
+
* - OTEL_EXPORTER_OTLP_METRICS_INSECURE
|
|
349
|
+
- annotation=bool required=False default=True description='Use insecure connection for OTLP metrics'
|
|
350
|
+
* - OTEL_EXPORTER_OTLP_TRACES_ENDPOINT
|
|
351
|
+
- annotation=Union[str, NoneType] required=False default=None description='OTLP traces endpoint. Overrides mesh configuration' examples=['localhost:4317']
|
|
352
|
+
* - OTEL_EXPORTER_OTLP_METRICS_ENDPOINT
|
|
353
|
+
- annotation=Union[str, NoneType] required=False default=None description='OTLP metrics endpoint. Overrides mesh configuration' examples=['localhost:4317']
|
|
354
|
+
* - OTEL_PYTHON_DISABLED_INSTRUMENTATIONS
|
|
355
|
+
- annotation=list[str] required=False default_factory=list description='List of instrumentations to disable. https://opentelemetry.io/docs/zero-code/python/configuration/' examples=[['pika', 'requests']]
|
|
356
|
+
* - OTEL_PYTHON_FASTAPI_EXCLUDED_URLS
|
|
357
|
+
- annotation=str required=False default='health' description='Comma separated list of URLs to exclude from OpenTelemetry instrumentation in FastAPI.' examples=['client/.*/info,healthcheck']
|
|
358
|
+
* - SYSTEM_METRIC_INSTRUMENTATION_CONFIG
|
|
359
|
+
- annotation=Union[dict[str, bool], NoneType] required=False default=None description='Configuration for system metric instrumentation. https://opentelemetry-python-contrib.readthedocs.io/en/latest/instrumentation/system_metrics/system_metrics.html' examples=[{'system.memory.usage': ['used', 'free', 'cached'], 'system.cpu.time': ['idle', 'user', 'system', 'irq'], 'system.network.io': ['transmit', 'receive'], 'process.runtime.memory': ['rss', 'vms'], 'process.runtime.cpu.time': ['user', 'system'], 'process.runtime.context_switches': ['involuntary', 'voluntary']}]
|
|
360
|
+
* - ISB_USERNAME
|
|
361
|
+
- annotation=str required=False default='guest' description='Username for the interservice-bus.'
|
|
362
|
+
* - ISB_PASSWORD
|
|
363
|
+
- annotation=str required=False default='guest' description='Password for the interservice-bus.'
|
|
364
|
+
* - ISB_EXCHANGE
|
|
365
|
+
- annotation=str required=False default='master.direct.x' description='Exchange for the interservice-bus.'
|
|
366
|
+
* - ISB_QUEUE_TYPE
|
|
367
|
+
- annotation=str required=False default='classic' description='Queue type for the interservice-bus.' examples=['quorum', 'classic']
|
|
368
|
+
* - BUILD_VERSION
|
|
369
|
+
- annotation=str required=False default='dev' description='Fallback build version for workflow tasks.'
|
|
370
|
+
* - GQL_AUTH_TOKEN
|
|
371
|
+
- annotation=Union[str, NoneType] required=False default='dev' description='The auth token for the metadata-store-api.'
|
|
372
|
+
* - OBJECT_STORE_ACCESS_KEY
|
|
373
|
+
- annotation=Union[str, NoneType] required=False default=None description='The access key for the object store.'
|
|
374
|
+
* - OBJECT_STORE_SECRET_KEY
|
|
375
|
+
- annotation=Union[str, NoneType] required=False default=None description='The secret key for the object store.'
|
|
376
|
+
* - OBJECT_STORE_USE_SSL
|
|
377
|
+
- annotation=bool required=False default=False description='Whether to use SSL for the object store connection.'
|
|
378
|
+
* - MULTIPART_THRESHOLD
|
|
379
|
+
- annotation=Union[int, NoneType] required=False default=None description='Multipart threshold for the object store.'
|
|
380
|
+
* - S3_CLIENT_CONFIG
|
|
381
|
+
- annotation=Union[dict, NoneType] required=False default=None description='S3 client configuration for the object store.'
|
|
382
|
+
* - S3_UPLOAD_CONFIG
|
|
383
|
+
- annotation=Union[dict, NoneType] required=False default=None description='S3 upload configuration for the object store.'
|
|
384
|
+
* - S3_DOWNLOAD_CONFIG
|
|
385
|
+
- annotation=Union[dict, NoneType] required=False default=None description='S3 download configuration for the object store.'
|
|
386
|
+
* - GLOBUS_TRANSPORT_PARAMS
|
|
387
|
+
- annotation=dict required=False default_factory=dict description='Globus transfer parameters.'
|
|
388
|
+
* - GLOBUS_CLIENT_ID
|
|
389
|
+
- annotation=Union[str, NoneType] required=False default=None description='Globus client ID for inbound/outbound transfers.'
|
|
390
|
+
* - GLOBUS_CLIENT_SECRET
|
|
391
|
+
- annotation=Union[str, NoneType] required=False default=None description='Globus client secret for inbound/outbound transfers.'
|
|
392
|
+
* - OBJECT_STORE_ENDPOINT
|
|
393
|
+
- annotation=Union[str, NoneType] required=False default=None description='Object store Globus Endpoint ID.'
|
|
394
|
+
* - SCRATCH_ENDPOINT
|
|
395
|
+
- annotation=Union[str, NoneType] required=False default=None description='Scratch Globus Endpoint ID.'
|
|
396
|
+
* - SCRATCH_BASE_PATH
|
|
397
|
+
- annotation=str required=False default='scratch/' description='Base path for scratch storage.'
|
|
398
|
+
* - SCRATCH_INVENTORY_DB_COUNT
|
|
399
|
+
- annotation=int required=False default=16 description='Number of databases in the scratch inventory (redis).'
|
|
400
|
+
* - DOCS_BASE_URL
|
|
401
|
+
- annotation=str required=False default='my_test_url' description='Base URL for the documentation site.'
|
|
402
|
+
* - FTS_ATLAS_DATA_DIR
|
|
403
|
+
- annotation=Union[str, NoneType] required=False default=None description='Common cached directory for a downloaded FTS Atlas.'
|
|
313
404
|
|
|
314
405
|
Development
|
|
315
406
|
-----------
|
{dkist_processing_cryonirsp-1.13.0.dist-info → dkist_processing_cryonirsp-1.14.0.dist-info}/RECORD
RENAMED
|
@@ -25,25 +25,25 @@ dkist_processing_cryonirsp/parsers/time.py,sha256=U6gCg4U1Yh5nflU-fVqxiT5Cm5o-r0
|
|
|
25
25
|
dkist_processing_cryonirsp/parsers/wavelength.py,sha256=bGtI29AexUrCgE9uJtmbyZSfeRuW5Ng6GeAngLph4CQ,884
|
|
26
26
|
dkist_processing_cryonirsp/tasks/__init__.py,sha256=QgwrMnIRPc3jUWKw8XgSpRHH9jWGhwcKAVdASoEvfY0,1058
|
|
27
27
|
dkist_processing_cryonirsp/tasks/assemble_movie.py,sha256=wVPC_NuC7fEKXegYl_4ayV22JBbeWv8sRHMB0WU7WXI,7351
|
|
28
|
-
dkist_processing_cryonirsp/tasks/bad_pixel_map.py,sha256=
|
|
29
|
-
dkist_processing_cryonirsp/tasks/beam_boundaries_base.py,sha256=
|
|
28
|
+
dkist_processing_cryonirsp/tasks/bad_pixel_map.py,sha256=xb6TZb6kpQvrB-oGj528DybG45_SXMW4hj6b90sbMjQ,3952
|
|
29
|
+
dkist_processing_cryonirsp/tasks/beam_boundaries_base.py,sha256=DkyN8xnFFV5838JXSRWrEpG-HMR3hj1tpQRU-8UJIKM,9636
|
|
30
30
|
dkist_processing_cryonirsp/tasks/ci_beam_boundaries.py,sha256=Pb_Yuh4yjhCNO_12DgWmmSj69yXeR7M2k4aikJ4OoM4,1890
|
|
31
31
|
dkist_processing_cryonirsp/tasks/ci_science.py,sha256=Jjx2_GOn27iK5VU7XWMulKfqGvmcpwSX1llf6L2rvhI,7367
|
|
32
32
|
dkist_processing_cryonirsp/tasks/cryonirsp_base.py,sha256=Ldbsa8Kkj_XGm7ocx_BJq9xkGG0QSVflsXdex6nzgMU,1703
|
|
33
|
-
dkist_processing_cryonirsp/tasks/dark.py,sha256=
|
|
34
|
-
dkist_processing_cryonirsp/tasks/gain.py,sha256=
|
|
35
|
-
dkist_processing_cryonirsp/tasks/instrument_polarization.py,sha256=
|
|
33
|
+
dkist_processing_cryonirsp/tasks/dark.py,sha256=MRO8R1TeNstCfsaYAnGzMLBnhDwNURNbJsxB89Y4lIU,4926
|
|
34
|
+
dkist_processing_cryonirsp/tasks/gain.py,sha256=QVQKH1s-mMD71zrmVsmyR-CwqGZN4BpO7jXQUS4wALc,10418
|
|
35
|
+
dkist_processing_cryonirsp/tasks/instrument_polarization.py,sha256=1y0M-GeuZmNLWCehsiEC7-09EvU-u5LlQxGlRjnqHjw,23240
|
|
36
36
|
dkist_processing_cryonirsp/tasks/l1_output_data.py,sha256=ug5pVz99jXDP9z9Ptht61pe07glLR_WLEAnKBLKjYDY,1555
|
|
37
37
|
dkist_processing_cryonirsp/tasks/linearity_correction.py,sha256=HX6nVglVttYbH8jt-FZUtX9C8-TURfb4NvQRYrXWQlY,24200
|
|
38
|
-
dkist_processing_cryonirsp/tasks/make_movie_frames.py,sha256=
|
|
38
|
+
dkist_processing_cryonirsp/tasks/make_movie_frames.py,sha256=VcvMV48LnE32NKWnpiV_vSjLc2_EdDFokwVrYjBLPBM,13931
|
|
39
39
|
dkist_processing_cryonirsp/tasks/parse.py,sha256=Hlu0Hhv-BBfe5DkXFc6-pnIsyZSJHd_wAzbqLDdzsbc,13824
|
|
40
|
-
dkist_processing_cryonirsp/tasks/quality_metrics.py,sha256=
|
|
41
|
-
dkist_processing_cryonirsp/tasks/science_base.py,sha256=
|
|
40
|
+
dkist_processing_cryonirsp/tasks/quality_metrics.py,sha256=KNCse_1DbIr45mVtDJV4ueFepQl3ECeyHJbYBXVFGq8,11412
|
|
41
|
+
dkist_processing_cryonirsp/tasks/science_base.py,sha256=u9cpJ1diAKjNKLNFr1PvRz3S6bdnDIpKU14igzvQ4aQ,18625
|
|
42
42
|
dkist_processing_cryonirsp/tasks/sp_beam_boundaries.py,sha256=7xyQ4MieQDYDI01YO24hkfPQ21dAfk9BUyagtnzqYVg,10297
|
|
43
|
-
dkist_processing_cryonirsp/tasks/sp_geometric.py,sha256=
|
|
43
|
+
dkist_processing_cryonirsp/tasks/sp_geometric.py,sha256=PO1PQGhm-P_VL96tQTfh5Cgz0mR_wzffxUBW2XHH-0s,24352
|
|
44
44
|
dkist_processing_cryonirsp/tasks/sp_science.py,sha256=gzVI6e3WY6zrqfjuQ9TNhl7f9s1myWSdRyZ7OMuwaOw,13644
|
|
45
|
-
dkist_processing_cryonirsp/tasks/sp_solar_gain.py,sha256=
|
|
46
|
-
dkist_processing_cryonirsp/tasks/sp_wavelength_calibration.py,sha256=
|
|
45
|
+
dkist_processing_cryonirsp/tasks/sp_solar_gain.py,sha256=s5KSCukzeSYuYDIFg1Wo2pyjf__EWrTusNfUsewuq18,21001
|
|
46
|
+
dkist_processing_cryonirsp/tasks/sp_wavelength_calibration.py,sha256=lrGw7qP4QgBd_Hr8JnF1SvSQBUg12C_R3MWvoz-9XfQ,12828
|
|
47
47
|
dkist_processing_cryonirsp/tasks/write_l1.py,sha256=ssUZ50AvySjPHzW2hc3zeMiAfZiJJbTFWDylpk9VkKc,42324
|
|
48
48
|
dkist_processing_cryonirsp/tasks/mixin/__init__.py,sha256=m6UekKftTahNJ3W5K3mZSz4Y4ZZpHRxF_ZAxuaKYL7o,12
|
|
49
49
|
dkist_processing_cryonirsp/tasks/mixin/corrections.py,sha256=BxPV4sqV6s79JpvkXJFH0r5g0zwe1fkp0cqIlI5B5vA,6567
|
|
@@ -77,8 +77,8 @@ dkist_processing_cryonirsp/tests/test_trial_create_quality_report.py,sha256=x8dR
|
|
|
77
77
|
dkist_processing_cryonirsp/tests/test_workflows.py,sha256=m8PcnZqwbsedNptuSZIjaZ3tt_IzgSv2FiO-Aw2G-i0,292
|
|
78
78
|
dkist_processing_cryonirsp/tests/test_write_l1.py,sha256=7mDycKre4AxCkwZITPsrIFvLwlPMxLItG5QbqVNPok8,17458
|
|
79
79
|
dkist_processing_cryonirsp/tests/local_trial_workflows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
80
|
-
dkist_processing_cryonirsp/tests/local_trial_workflows/l0_cals_only.py,sha256=
|
|
81
|
-
dkist_processing_cryonirsp/tests/local_trial_workflows/l0_to_l1.py,sha256=
|
|
80
|
+
dkist_processing_cryonirsp/tests/local_trial_workflows/l0_cals_only.py,sha256=tnTs18iVZCx19Deoqapa8RfAcAL9t1jzn-CC3blCKOM,19257
|
|
81
|
+
dkist_processing_cryonirsp/tests/local_trial_workflows/l0_to_l1.py,sha256=yx1-krt-881cYZlTqfkgrAd3Xt372yasAAjAOaKK3Mk,23090
|
|
82
82
|
dkist_processing_cryonirsp/tests/local_trial_workflows/linearize_only.py,sha256=mVP9eB90lquvXfGrICBocYqoBLPg6nQGjZLB3LvqLCs,3280
|
|
83
83
|
dkist_processing_cryonirsp/tests/local_trial_workflows/local_trial_helpers.py,sha256=1YXVEXtMMfs4ZtR6oqtxblgWBAz5Oaq4WBgNkxjxbg8,20980
|
|
84
84
|
dkist_processing_cryonirsp/workflows/__init__.py,sha256=BODFooDHWvwHfr3TZUOuQiSk0MLqbAD9APk7u_Ihmqo,113
|
|
@@ -106,7 +106,7 @@ docs/scientific_changelog.rst,sha256=01AWBSHg8zElnodCgAq-hMxhk9CkX5rtEENx4iz0sjI
|
|
|
106
106
|
docs/sp_science_calibration.rst,sha256=XL-H_hyzqwPHYNW3j-muItX_hGqMi-gjFRQbHp60LlU,2997
|
|
107
107
|
docs/wavelength_calibration.rst,sha256=s7ds_QKlVJ68fdONSY3DOBvHHaQC0JR_D4goG_VVKWw,3457
|
|
108
108
|
licenses/LICENSE.rst,sha256=piZaQplkzOMmH1NXg6QIdo9wwo9pPCoHkvm2-DmH76E,1462
|
|
109
|
-
dkist_processing_cryonirsp-1.
|
|
110
|
-
dkist_processing_cryonirsp-1.
|
|
111
|
-
dkist_processing_cryonirsp-1.
|
|
112
|
-
dkist_processing_cryonirsp-1.
|
|
109
|
+
dkist_processing_cryonirsp-1.14.0.dist-info/METADATA,sha256=AUvi0qrvuyNJRw188i36AjGcTSDdX-ZApKTWthfQ-PA,29222
|
|
110
|
+
dkist_processing_cryonirsp-1.14.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
111
|
+
dkist_processing_cryonirsp-1.14.0.dist-info/top_level.txt,sha256=Sm9b1ddKnsF9Bh3mqDOct1Sm7k8I9aN7vGHgpmu-MlQ,51
|
|
112
|
+
dkist_processing_cryonirsp-1.14.0.dist-info/RECORD,,
|
{dkist_processing_cryonirsp-1.13.0.dist-info → dkist_processing_cryonirsp-1.14.0.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|