dkist-processing-vbi 1.21.1__py3-none-any.whl → 1.25.2__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_vbi/__init__.py +1 -0
- dkist_processing_vbi/config.py +1 -0
- dkist_processing_vbi/models/constants.py +1 -0
- dkist_processing_vbi/models/filter.py +1 -0
- dkist_processing_vbi/models/parameters.py +1 -0
- dkist_processing_vbi/models/tags.py +1 -0
- dkist_processing_vbi/parsers/mosaic_repeats.py +1 -0
- dkist_processing_vbi/parsers/spatial_step_pattern.py +2 -1
- dkist_processing_vbi/parsers/vbi_l0_fits_access.py +1 -0
- dkist_processing_vbi/parsers/vbi_l1_fits_access.py +1 -0
- dkist_processing_vbi/tasks/__init__.py +1 -0
- dkist_processing_vbi/tasks/assemble_movie.py +5 -3
- dkist_processing_vbi/tasks/dark.py +5 -6
- dkist_processing_vbi/tasks/gain.py +5 -4
- dkist_processing_vbi/tasks/make_movie_frames.py +5 -6
- dkist_processing_vbi/tasks/parse.py +3 -2
- dkist_processing_vbi/tasks/process_summit_processed.py +2 -1
- dkist_processing_vbi/tasks/quality_metrics.py +3 -2
- dkist_processing_vbi/tasks/science.py +5 -4
- dkist_processing_vbi/tasks/vbi_base.py +2 -2
- dkist_processing_vbi/tasks/write_l1.py +6 -0
- dkist_processing_vbi/tests/conftest.py +24 -7
- dkist_processing_vbi/tests/local_trial_workflows/l0_to_l1.py +12 -25
- dkist_processing_vbi/tests/test_assemble_movie.py +6 -4
- dkist_processing_vbi/tests/test_dark.py +3 -4
- dkist_processing_vbi/tests/test_gain.py +4 -5
- dkist_processing_vbi/tests/test_make_movie_frames.py +4 -5
- dkist_processing_vbi/tests/test_parse_l0.py +19 -14
- dkist_processing_vbi/tests/test_parse_summit.py +8 -6
- dkist_processing_vbi/tests/test_process_summit.py +6 -7
- dkist_processing_vbi/tests/test_science.py +4 -5
- dkist_processing_vbi/tests/test_vbi_constants.py +1 -2
- dkist_processing_vbi/tests/test_workflows.py +1 -0
- dkist_processing_vbi/tests/test_write_l1.py +5 -4
- dkist_processing_vbi/workflows/__init__.py +1 -0
- dkist_processing_vbi/workflows/l0_processing.py +4 -1
- dkist_processing_vbi/workflows/summit_data_processing.py +2 -1
- dkist_processing_vbi/workflows/trial_workflows.py +1 -0
- dkist_processing_vbi-1.25.2.dist-info/METADATA +536 -0
- dkist_processing_vbi-1.25.2.dist-info/RECORD +64 -0
- {dkist_processing_vbi-1.21.1.dist-info → dkist_processing_vbi-1.25.2.dist-info}/WHEEL +1 -1
- docs/conf.py +1 -0
- dkist_processing_vbi-1.21.1.dist-info/METADATA +0 -446
- dkist_processing_vbi-1.21.1.dist-info/RECORD +0 -64
- {dkist_processing_vbi-1.21.1.dist-info → dkist_processing_vbi-1.25.2.dist-info}/top_level.txt +0 -0
|
@@ -4,15 +4,14 @@ import pytest
|
|
|
4
4
|
from dkist_processing_common._util.scratch import WorkflowFileSystem
|
|
5
5
|
from dkist_processing_common.codecs.fits import fits_hdulist_encoder
|
|
6
6
|
from dkist_processing_common.models.constants import BudName
|
|
7
|
-
from dkist_processing_common.tests.conftest import FakeGQLClient
|
|
8
7
|
|
|
9
8
|
from dkist_processing_vbi.models.constants import VbiBudName
|
|
10
9
|
from dkist_processing_vbi.models.tags import VbiTag
|
|
11
10
|
from dkist_processing_vbi.tasks.parse import ParseL0VbiInputData
|
|
12
|
-
from dkist_processing_vbi.tests.conftest import generate_214_l0_fits_frame
|
|
13
11
|
from dkist_processing_vbi.tests.conftest import Vbi122DarkFrames
|
|
14
12
|
from dkist_processing_vbi.tests.conftest import Vbi122GainFrames
|
|
15
13
|
from dkist_processing_vbi.tests.conftest import Vbi122ObserveFrames
|
|
14
|
+
from dkist_processing_vbi.tests.conftest import generate_214_l0_fits_frame
|
|
16
15
|
|
|
17
16
|
|
|
18
17
|
@pytest.fixture(scope="function")
|
|
@@ -181,14 +180,14 @@ def parse_inputs_task_with_aborted_last_mosaic(tmp_path, recipe_run_id):
|
|
|
181
180
|
task._purge()
|
|
182
181
|
|
|
183
182
|
|
|
184
|
-
def test_parse_l0_input_data_spatial_pos(parse_inputs_task, mocker):
|
|
183
|
+
def test_parse_l0_input_data_spatial_pos(parse_inputs_task, mocker, fake_gql_client):
|
|
185
184
|
"""
|
|
186
185
|
Given: a set of raw inputs of multiple task types and a ParseL0VbiInputData task
|
|
187
186
|
When: the task is run
|
|
188
187
|
Then: the input frames are correctly tagged by spatial position
|
|
189
188
|
"""
|
|
190
189
|
mocker.patch(
|
|
191
|
-
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=
|
|
190
|
+
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=fake_gql_client
|
|
192
191
|
)
|
|
193
192
|
parse_inputs_task()
|
|
194
193
|
|
|
@@ -208,14 +207,14 @@ def test_parse_l0_input_data_spatial_pos(parse_inputs_task, mocker):
|
|
|
208
207
|
assert filepath.exists()
|
|
209
208
|
|
|
210
209
|
|
|
211
|
-
def test_parse_l0_input_constants(parse_inputs_task, mocker):
|
|
210
|
+
def test_parse_l0_input_constants(parse_inputs_task, mocker, fake_gql_client):
|
|
212
211
|
"""
|
|
213
212
|
Given: a set of raw inputs of multiple task types and a ParseL0VbiInputData task
|
|
214
213
|
When: the task is run
|
|
215
214
|
Then: pipeline constants are correctly updated from the input headers
|
|
216
215
|
"""
|
|
217
216
|
mocker.patch(
|
|
218
|
-
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=
|
|
217
|
+
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=fake_gql_client
|
|
219
218
|
)
|
|
220
219
|
parse_inputs_task()
|
|
221
220
|
|
|
@@ -231,14 +230,14 @@ def test_parse_l0_input_constants(parse_inputs_task, mocker):
|
|
|
231
230
|
assert BudName.obs_ip_start_time.value in parse_inputs_task.constants._db_dict
|
|
232
231
|
|
|
233
232
|
|
|
234
|
-
def test_parse_l0_input_frames_found(parse_inputs_task, mocker):
|
|
233
|
+
def test_parse_l0_input_frames_found(parse_inputs_task, mocker, fake_gql_client):
|
|
235
234
|
"""
|
|
236
235
|
Given: a set of raw inputs of multiple task types and a ParseL0VbiInputData task
|
|
237
236
|
When: the task is run
|
|
238
237
|
Then: the frames from each task type are correctly identified and tagged
|
|
239
238
|
"""
|
|
240
239
|
mocker.patch(
|
|
241
|
-
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=
|
|
240
|
+
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=fake_gql_client
|
|
242
241
|
)
|
|
243
242
|
parse_inputs_task()
|
|
244
243
|
assert (
|
|
@@ -258,7 +257,9 @@ def test_parse_l0_input_frames_found(parse_inputs_task, mocker):
|
|
|
258
257
|
)
|
|
259
258
|
|
|
260
259
|
|
|
261
|
-
def test_parse_l0_input_with_only_observe(
|
|
260
|
+
def test_parse_l0_input_with_only_observe(
|
|
261
|
+
parse_inputs_task_with_only_observe, mocker, fake_gql_client
|
|
262
|
+
):
|
|
262
263
|
"""
|
|
263
264
|
Given: a set of raw inputs of a single task type and a ParseL0VbiInputData task
|
|
264
265
|
When: the task is run
|
|
@@ -266,7 +267,7 @@ def test_parse_l0_input_with_only_observe(parse_inputs_task_with_only_observe, m
|
|
|
266
267
|
"""
|
|
267
268
|
task, camera_str = parse_inputs_task_with_only_observe
|
|
268
269
|
mocker.patch(
|
|
269
|
-
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=
|
|
270
|
+
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=fake_gql_client
|
|
270
271
|
)
|
|
271
272
|
task()
|
|
272
273
|
if camera_str == "red":
|
|
@@ -293,14 +294,16 @@ def test_parse_l0_input_with_only_observe(parse_inputs_task_with_only_observe, m
|
|
|
293
294
|
assert filepath.exists()
|
|
294
295
|
|
|
295
296
|
|
|
296
|
-
def test_parse_l0_aborted_last_mosaic(
|
|
297
|
+
def test_parse_l0_aborted_last_mosaic(
|
|
298
|
+
parse_inputs_task_with_aborted_last_mosaic, mocker, fake_gql_client
|
|
299
|
+
):
|
|
297
300
|
"""
|
|
298
301
|
Given: a set of raw inputs representing a dataset with an aborted last mosaic
|
|
299
302
|
When: the task is run
|
|
300
303
|
Then: pipeline constants are correctly updated from the input headers
|
|
301
304
|
"""
|
|
302
305
|
mocker.patch(
|
|
303
|
-
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=
|
|
306
|
+
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=fake_gql_client
|
|
304
307
|
)
|
|
305
308
|
task, expected_num_mosaic_repeats = parse_inputs_task_with_aborted_last_mosaic
|
|
306
309
|
task()
|
|
@@ -310,14 +313,16 @@ def test_parse_l0_aborted_last_mosaic(parse_inputs_task_with_aborted_last_mosaic
|
|
|
310
313
|
)
|
|
311
314
|
|
|
312
315
|
|
|
313
|
-
def test_parse_l0_correctly_tagged_mosaic_subrepeats(
|
|
316
|
+
def test_parse_l0_correctly_tagged_mosaic_subrepeats(
|
|
317
|
+
parse_inputs_task_with_subrepeats, mocker, fake_gql_client
|
|
318
|
+
):
|
|
314
319
|
"""
|
|
315
320
|
Given: A set of observe frames taken with subrepeats (i.e., multiple mosaics per DSPS repeat)
|
|
316
321
|
When: the parse task is run
|
|
317
322
|
Then: pipeline constants are correctly updated and the correct
|
|
318
323
|
"""
|
|
319
324
|
mocker.patch(
|
|
320
|
-
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=
|
|
325
|
+
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=fake_gql_client
|
|
321
326
|
)
|
|
322
327
|
task = parse_inputs_task_with_subrepeats
|
|
323
328
|
task()
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
"""
|
|
2
2
|
This might be a totally redundant test. Leave it in for now.
|
|
3
3
|
"""
|
|
4
|
+
|
|
4
5
|
from itertools import chain
|
|
5
6
|
|
|
6
7
|
import pytest
|
|
7
8
|
from dkist_processing_common._util.scratch import WorkflowFileSystem
|
|
8
9
|
from dkist_processing_common.codecs.fits import fits_hdulist_encoder
|
|
9
|
-
from dkist_processing_common.tests.conftest import FakeGQLClient
|
|
10
10
|
|
|
11
11
|
from dkist_processing_vbi.models.constants import VbiBudName
|
|
12
12
|
from dkist_processing_vbi.models.tags import VbiTag
|
|
13
13
|
from dkist_processing_vbi.tasks.parse import ParseL0VbiInputData
|
|
14
|
-
from dkist_processing_vbi.tests.conftest import generate_214_l0_fits_frame
|
|
15
14
|
from dkist_processing_vbi.tests.conftest import Vbi122DarkFrames
|
|
16
15
|
from dkist_processing_vbi.tests.conftest import Vbi122SummitObserveFrames
|
|
16
|
+
from dkist_processing_vbi.tests.conftest import generate_214_l0_fits_frame
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
@pytest.fixture(scope="function")
|
|
@@ -80,14 +80,14 @@ def parse_summit_task_with_subrepeats(tmp_path, recipe_run_id):
|
|
|
80
80
|
task._purge()
|
|
81
81
|
|
|
82
82
|
|
|
83
|
-
def test_parse_summit_proccessed_data(parse_summit_processed_task, mocker):
|
|
83
|
+
def test_parse_summit_proccessed_data(parse_summit_processed_task, mocker, fake_gql_client):
|
|
84
84
|
"""
|
|
85
85
|
Given: a set of raw inputs of summit-processed data and a ParseL0VbiInputData task
|
|
86
86
|
When: the task is run
|
|
87
87
|
Then: the observe frames are correctly identified and tagged
|
|
88
88
|
"""
|
|
89
89
|
mocker.patch(
|
|
90
|
-
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=
|
|
90
|
+
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=fake_gql_client
|
|
91
91
|
)
|
|
92
92
|
parse_summit_processed_task()
|
|
93
93
|
|
|
@@ -109,14 +109,16 @@ def test_parse_summit_proccessed_data(parse_summit_processed_task, mocker):
|
|
|
109
109
|
assert filepath.exists()
|
|
110
110
|
|
|
111
111
|
|
|
112
|
-
def test_parse_summit_correctly_tagged_mosaic_subrepeats(
|
|
112
|
+
def test_parse_summit_correctly_tagged_mosaic_subrepeats(
|
|
113
|
+
parse_summit_task_with_subrepeats, mocker, fake_gql_client
|
|
114
|
+
):
|
|
113
115
|
"""
|
|
114
116
|
Given: A set of observe frames taken with subrepeats (i.e., multiple mosaics per DSPS repeat)
|
|
115
117
|
When: the parse task is run
|
|
116
118
|
Then: pipeline constants are correctly updated and the correct
|
|
117
119
|
"""
|
|
118
120
|
mocker.patch(
|
|
119
|
-
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=
|
|
121
|
+
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=fake_gql_client
|
|
120
122
|
)
|
|
121
123
|
task = parse_summit_task_with_subrepeats
|
|
122
124
|
task()
|
|
@@ -7,16 +7,15 @@ from dkist_processing_common._util.scratch import WorkflowFileSystem
|
|
|
7
7
|
from dkist_processing_common.codecs.fits import fits_access_decoder
|
|
8
8
|
from dkist_processing_common.codecs.fits import fits_array_encoder
|
|
9
9
|
from dkist_processing_common.codecs.fits import fits_hdulist_encoder
|
|
10
|
-
from dkist_processing_common.tests.conftest import FakeGQLClient
|
|
11
10
|
|
|
12
11
|
from dkist_processing_vbi.models.tags import VbiTag
|
|
13
12
|
from dkist_processing_vbi.parsers.vbi_l0_fits_access import VbiL0FitsAccess
|
|
14
13
|
from dkist_processing_vbi.tasks.process_summit_processed import GenerateL1SummitData
|
|
15
|
-
from dkist_processing_vbi.tests.conftest import ensure_all_inputs_used
|
|
16
|
-
from dkist_processing_vbi.tests.conftest import generate_compressed_214_l0_fits_frame
|
|
17
14
|
from dkist_processing_vbi.tests.conftest import Vbi122DarkFrames
|
|
18
15
|
from dkist_processing_vbi.tests.conftest import Vbi122SummitObserveFrames
|
|
19
16
|
from dkist_processing_vbi.tests.conftest import VbiConstantsDb
|
|
17
|
+
from dkist_processing_vbi.tests.conftest import ensure_all_inputs_used
|
|
18
|
+
from dkist_processing_vbi.tests.conftest import generate_compressed_214_l0_fits_frame
|
|
20
19
|
|
|
21
20
|
RNG = np.random.default_rng()
|
|
22
21
|
|
|
@@ -133,14 +132,14 @@ def process_summit_processed_with_aborted_last_mosaic(
|
|
|
133
132
|
task._purge()
|
|
134
133
|
|
|
135
134
|
|
|
136
|
-
def test_process_summit_data(process_summit_processed, mocker):
|
|
135
|
+
def test_process_summit_data(process_summit_processed, mocker, fake_gql_client):
|
|
137
136
|
"""
|
|
138
137
|
Given: a set of parsed input frames of summit-processed data and a GenerateL1SummitData task
|
|
139
138
|
When: the task is run
|
|
140
139
|
Then: the correct data-dependent L1 headers are added, an output tag is applied to each frame, and the input tag is removed
|
|
141
140
|
"""
|
|
142
141
|
mocker.patch(
|
|
143
|
-
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=
|
|
142
|
+
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=fake_gql_client
|
|
144
143
|
)
|
|
145
144
|
task, expected_data, num_exp_per_step = process_summit_processed
|
|
146
145
|
task()
|
|
@@ -172,7 +171,7 @@ def test_process_summit_data(process_summit_processed, mocker):
|
|
|
172
171
|
|
|
173
172
|
|
|
174
173
|
def test_process_summit_data_with_aborted_last_mosaic(
|
|
175
|
-
process_summit_processed_with_aborted_last_mosaic, mocker
|
|
174
|
+
process_summit_processed_with_aborted_last_mosaic, mocker, fake_gql_client
|
|
176
175
|
):
|
|
177
176
|
"""
|
|
178
177
|
Given: a set of parsed input frames of summit-processed data that contain an aborted mosaic
|
|
@@ -180,7 +179,7 @@ def test_process_summit_data_with_aborted_last_mosaic(
|
|
|
180
179
|
Then: only frames from complete mosaics are pass through as "calibrated"
|
|
181
180
|
"""
|
|
182
181
|
mocker.patch(
|
|
183
|
-
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=
|
|
182
|
+
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=fake_gql_client
|
|
184
183
|
)
|
|
185
184
|
(
|
|
186
185
|
task,
|
|
@@ -8,15 +8,14 @@ from dkist_processing_common.codecs.fits import fits_access_decoder
|
|
|
8
8
|
from dkist_processing_common.codecs.fits import fits_array_encoder
|
|
9
9
|
from dkist_processing_common.codecs.fits import fits_hdulist_encoder
|
|
10
10
|
from dkist_processing_common.models.tags import Tag
|
|
11
|
-
from dkist_processing_common.tests.conftest import FakeGQLClient
|
|
12
11
|
|
|
13
12
|
from dkist_processing_vbi.models.tags import VbiTag
|
|
14
13
|
from dkist_processing_vbi.parsers.vbi_l0_fits_access import VbiL0FitsAccess
|
|
15
14
|
from dkist_processing_vbi.tasks.science import ScienceCalibration
|
|
16
|
-
from dkist_processing_vbi.tests.conftest import ensure_all_inputs_used
|
|
17
|
-
from dkist_processing_vbi.tests.conftest import generate_214_l0_fits_frame
|
|
18
15
|
from dkist_processing_vbi.tests.conftest import Vbi122ObserveFrames
|
|
19
16
|
from dkist_processing_vbi.tests.conftest import VbiConstantsDb
|
|
17
|
+
from dkist_processing_vbi.tests.conftest import ensure_all_inputs_used
|
|
18
|
+
from dkist_processing_vbi.tests.conftest import generate_214_l0_fits_frame
|
|
20
19
|
|
|
21
20
|
|
|
22
21
|
@pytest.fixture(scope="function")
|
|
@@ -111,14 +110,14 @@ def science_calibration_task(tmp_path, recipe_run_id, init_vbi_constants_db, abo
|
|
|
111
110
|
"abort_mosaic",
|
|
112
111
|
[pytest.param(False, id="Full set"), pytest.param(True, id="Aborted last mosaic")],
|
|
113
112
|
)
|
|
114
|
-
def test_science_calibration(science_calibration_task, mocker):
|
|
113
|
+
def test_science_calibration(science_calibration_task, mocker, fake_gql_client):
|
|
115
114
|
"""
|
|
116
115
|
Given: a set of parsed input observe frames, dark and gain calibrations, and a ScienceCalibration task
|
|
117
116
|
When: the task is run
|
|
118
117
|
Then: the science frames are processed, no exposures are averaged, and the array values are correct
|
|
119
118
|
"""
|
|
120
119
|
mocker.patch(
|
|
121
|
-
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=
|
|
120
|
+
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=fake_gql_client
|
|
122
121
|
)
|
|
123
122
|
task, num_steps, num_exp_per_step, expected_num_mosaic_repeats = science_calibration_task
|
|
124
123
|
task()
|
|
@@ -18,8 +18,7 @@ def expected_constant_dict() -> dict:
|
|
|
18
18
|
@pytest.fixture(scope="function")
|
|
19
19
|
def vbi_science_task_with_constants(expected_constant_dict, recipe_run_id):
|
|
20
20
|
class Task(VbiTaskBase):
|
|
21
|
-
def run(self):
|
|
22
|
-
...
|
|
21
|
+
def run(self): ...
|
|
23
22
|
|
|
24
23
|
task = Task(
|
|
25
24
|
recipe_run_id=recipe_run_id,
|
|
@@ -10,7 +10,6 @@ from dkist_header_validator import spec122_validator
|
|
|
10
10
|
from dkist_header_validator import spec214_validator
|
|
11
11
|
from dkist_processing_common.codecs.fits import fits_array_encoder
|
|
12
12
|
from dkist_processing_common.models.tags import Tag
|
|
13
|
-
from dkist_processing_common.tests.conftest import FakeGQLClient
|
|
14
13
|
from dkist_service_configuration.logging import logger
|
|
15
14
|
|
|
16
15
|
from dkist_processing_vbi.models.constants import VbiConstants
|
|
@@ -105,14 +104,16 @@ def write_l1_task(calibrated_header, num_mosaic_repeats, camera_str: Literal["re
|
|
|
105
104
|
pytest.param(False, "red", id="Non-Mosaic"),
|
|
106
105
|
],
|
|
107
106
|
)
|
|
108
|
-
def test_write_l1_frame(
|
|
107
|
+
def test_write_l1_frame(
|
|
108
|
+
write_l1_task, num_mosaic_repeats, is_mosaic, camera_str, mocker, fake_gql_client
|
|
109
|
+
):
|
|
109
110
|
"""
|
|
110
111
|
:Given: a write L1 task
|
|
111
112
|
:When: running the task
|
|
112
113
|
:Then: no errors are raised
|
|
113
114
|
"""
|
|
114
115
|
mocker.patch(
|
|
115
|
-
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=
|
|
116
|
+
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=fake_gql_client
|
|
116
117
|
)
|
|
117
118
|
task = write_l1_task
|
|
118
119
|
task()
|
|
@@ -199,7 +200,7 @@ def test_write_l1_frame(write_l1_task, num_mosaic_repeats, is_mosaic, camera_str
|
|
|
199
200
|
assert header["EXPRID01"] == "EXPERID1"
|
|
200
201
|
assert header["EXPRID02"] == "EXPERID2"
|
|
201
202
|
assert header["EXPRID03"] == "EXPERID3"
|
|
202
|
-
assert header["WAVEBAND"] == "H
|
|
203
|
+
assert header["WAVEBAND"] == "VBI-Red H-alpha"
|
|
203
204
|
assert header["SPECLN01"] == "H alpha (656.28 nm)"
|
|
204
205
|
with pytest.raises(KeyError):
|
|
205
206
|
header["SPECLN02"]
|
|
@@ -10,6 +10,7 @@ VBI: https://nso.edu/telescopes/dkist/instruments/vbi/
|
|
|
10
10
|
This workflow does *not* include the speckle reconstruction algorithms used in summit-calibrated data.
|
|
11
11
|
Instead, darks and gains are generated by averaging the raw darks and gains, and are then subtracted from the science frames.
|
|
12
12
|
"""
|
|
13
|
+
|
|
13
14
|
from dkist_processing_common.tasks import AssembleQualityData
|
|
14
15
|
from dkist_processing_common.tasks import PublishCatalogAndQualityMessages
|
|
15
16
|
from dkist_processing_common.tasks import QualityL1Metrics
|
|
@@ -60,7 +61,9 @@ l0_pipeline.add_node(
|
|
|
60
61
|
|
|
61
62
|
# Output flow
|
|
62
63
|
l0_pipeline.add_node(task=TransferL1Data, upstreams=[VbiWriteL1Frame, AssembleVbiMovie])
|
|
63
|
-
l0_pipeline.add_node(
|
|
64
|
+
l0_pipeline.add_node(
|
|
65
|
+
task=SubmitDatasetMetadata, upstreams=[VbiWriteL1Frame, AssembleQualityData, AssembleVbiMovie]
|
|
66
|
+
)
|
|
64
67
|
l0_pipeline.add_node(
|
|
65
68
|
task=PublishCatalogAndQualityMessages, upstreams=[SubmitDatasetMetadata, TransferL1Data]
|
|
66
69
|
)
|
|
@@ -10,6 +10,7 @@ In this case it is then transferred to the DKIST Data Center for packaging, but
|
|
|
10
10
|
To determine the type of calibrations applied, please inspect the `VBI__005` keyword in the FITS headers.
|
|
11
11
|
It will indicate whether frame selection, speckle imaging, or other calibration algorithms were applied.
|
|
12
12
|
"""
|
|
13
|
+
|
|
13
14
|
from dkist_processing_common.tasks import AssembleQualityData
|
|
14
15
|
from dkist_processing_common.tasks import PublishCatalogAndQualityMessages
|
|
15
16
|
from dkist_processing_common.tasks import QualityL1Metrics
|
|
@@ -53,7 +54,7 @@ summit_processed_data.add_node(
|
|
|
53
54
|
|
|
54
55
|
# Output flow
|
|
55
56
|
summit_processed_data.add_node(
|
|
56
|
-
task=SubmitDatasetMetadata, upstreams=[VbiWriteL1Frame, AssembleQualityData]
|
|
57
|
+
task=SubmitDatasetMetadata, upstreams=[VbiWriteL1Frame, AssembleQualityData, AssembleVbiMovie]
|
|
57
58
|
)
|
|
58
59
|
summit_processed_data.add_node(task=TransferL1Data, upstreams=[VbiWriteL1Frame, AssembleVbiMovie])
|
|
59
60
|
summit_processed_data.add_node(
|
|
@@ -4,6 +4,7 @@ Workflow for trial runs.
|
|
|
4
4
|
These runs send their outputs (as well as intermediate files) to an unpublished location so that
|
|
5
5
|
the DC, in coordination instrument scientists, can assess the performance of the pipeline.
|
|
6
6
|
"""
|
|
7
|
+
|
|
7
8
|
from dkist_processing_common.tasks import AssembleQualityData
|
|
8
9
|
from dkist_processing_common.tasks import CreateTrialAsdf
|
|
9
10
|
from dkist_processing_common.tasks import CreateTrialDatasetInventory
|