Coverage for tests/test_translator.py: 16%
97 statements
« prev ^ index » next coverage.py v7.4.3, created at 2024-03-01 14:58 +0000
« prev ^ index » next coverage.py v7.4.3, created at 2024-03-01 14:58 +0000
1# This file is part of obs_lsst.
2#
3# Developed for the LSST Data Management System.
4# This product includes software developed by the LSST Project
5# (http://www.lsst.org).
6# See the COPYRIGHT file at the top-level directory of this distribution
7# for details of code ownership.
8#
9# This program is free software: you can redistribute it and/or modify
10# it under the terms of the GNU General Public License as published by
11# the Free Software Foundation, either version 3 of the License, or
12# (at your option) any later version.
13#
14# This program is distributed in the hope that it will be useful,
15# but WITHOUT ANY WARRANTY; without even the implied warranty of
16# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17# GNU General Public License for more details.
18#
19# You should have received a copy of the GNU General Public License
20# along with this program. If not, see <http://www.gnu.org/licenses/>.
22import os.path
23import unittest
24import warnings
25import astropy.units as u
26import astropy.units.cds as cds
27from astropy.io.fits.verify import VerifyWarning
29import lsst.obs.lsst.translators # noqa: F401 -- register the translators
30from astro_metadata_translator.tests import MetadataAssertHelper
32TESTDIR = os.path.abspath(os.path.dirname(__file__))
35class LsstMetadataTranslatorTestCase(unittest.TestCase, MetadataAssertHelper):
36 """Each test reads in raw headers from YAML files, constructs an
37 `ObservationInfo`, and compares the properties with the expected values
38 defined in the corresponding `dict`."""
40 datadir = os.path.join(TESTDIR, "headers")
42 def test_lsstCam_translator(self):
43 test_data = (("lsstCam-MC_C_20190319_000001_R10_S02.yaml",
44 dict(telescope="Simonyi Survey Telescope",
45 instrument="LSSTCam",
46 boresight_rotation_coord="unknown",
47 dark_time=0.0*u.s,
48 detector_exposure_id=0x269200011d,
49 detector_group="R10",
50 detector_name="S02",
51 detector_num=29,
52 detector_serial="ITL-3800C-041",
53 exposure_id=3019031900001,
54 exposure_group="3019031900001",
55 exposure_time=0.0*u.s,
56 focus_z=0.0*u.mm,
57 group_counter_end=1,
58 group_counter_start=1,
59 has_simulated_content=False,
60 object="UNKNOWN",
61 observation_counter=1,
62 observation_id="MC_C_20190319_000001",
63 observation_type="bias",
64 observation_reason="bias",
65 observing_day=20190319,
66 physical_filter="unknown",
67 pressure=None,
68 relative_humidity=None,
69 science_program="unknown",
70 temperature=None,
71 visit_id=3019031900001)),
72 ("lsstCam-MC_C_20190319_000001_R22_S21.yaml",
73 dict(telescope="Simonyi Survey Telescope",
74 instrument="LSSTCam",
75 boresight_rotation_coord="unknown",
76 dark_time=0.0*u.s,
77 detector_exposure_id=0x2692000161,
78 detector_group="R22",
79 detector_name="S21",
80 detector_num=97,
81 detector_serial="ITL-3800C-139",
82 exposure_id=3019031900001,
83 exposure_group="3019031900001",
84 exposure_time=0.0*u.s,
85 focus_z=0.0*u.mm,
86 group_counter_end=1,
87 group_counter_start=1,
88 has_simulated_content=False,
89 object="UNKNOWN",
90 observation_counter=1,
91 observation_id="MC_C_20190319_000001",
92 observation_type="bias",
93 observation_reason="bias",
94 observing_day=20190319,
95 physical_filter="unknown",
96 pressure=None,
97 relative_humidity=None,
98 science_program="unknown",
99 temperature=None,
100 visit_id=3019031900001)),
101 ("lsstCam-MC_C_20190322_000002_R10_S22.yaml",
102 dict(telescope="Simonyi Survey Telescope",
103 instrument="LSSTCam",
104 boresight_rotation_coord="unknown",
105 dark_time=1.0*u.s,
106 detector_exposure_id=0x2693800223,
107 detector_group="R10",
108 detector_name="S22",
109 detector_num=35,
110 detector_serial="ITL-3800C-103",
111 exposure_id=3019032200002,
112 exposure_group="3019032200002",
113 exposure_time=1.0*u.s,
114 focus_z=0.0*u.mm,
115 group_counter_end=2,
116 group_counter_start=2,
117 has_simulated_content=False,
118 object="UNKNOWN",
119 observation_counter=2,
120 observation_id="MC_C_20190322_000002",
121 observation_type="flat",
122 observation_reason="flat",
123 observing_day=20190322,
124 physical_filter="SDSSi~ND_OD0.5",
125 pressure=None,
126 relative_humidity=None,
127 science_program="6489D",
128 temperature=None,
129 visit_id=3019032200002)),
130 ("lsstCam-MC_C_20190406_000643_R10_S00.yaml",
131 dict(telescope="Simonyi Survey Telescope",
132 instrument="LSSTCam",
133 boresight_rotation_coord="unknown",
134 dark_time=1007.422*u.s,
135 detector_exposure_id=0x269b02831b,
136 detector_group="R10",
137 detector_name="S00",
138 detector_num=27,
139 detector_serial="ITL-3800C-145",
140 exposure_id=3019040600643,
141 exposure_group="3019040600643",
142 exposure_time=999.99*u.s,
143 focus_z=0.0*u.mm,
144 group_counter_end=643,
145 group_counter_start=643,
146 has_simulated_content=False,
147 object="UNKNOWN",
148 observation_counter=643,
149 observation_id="MC_C_20190406_000643",
150 observation_type="flat",
151 observation_reason="lambda",
152 observing_day=20190406,
153 physical_filter="950nm",
154 pressure=None,
155 relative_humidity=None,
156 science_program="6549D",
157 temperature=None,
158 visit_id=3019040600643)),
159 ("lsstCam-faked-future-ccs.yaml", # Old CCS observation with date in future for exp_id
160 dict(telescope="Simonyi Survey Telescope",
161 instrument="LSSTCam",
162 boresight_rotation_coord="unknown",
163 dark_time=0.0*u.s,
164 detector_exposure_id=0xdb480011d,
165 detector_group="R10",
166 detector_name="S02",
167 detector_num=29,
168 detector_serial="ITL-3800C-041",
169 exposure_id=2029031900001,
170 exposure_group="2029031900001",
171 exposure_time=0.0*u.s,
172 focus_z=0.0*u.mm,
173 group_counter_end=1,
174 group_counter_start=1,
175 has_simulated_content=False,
176 object="UNKNOWN",
177 observation_counter=1,
178 observation_id="MC_C_20190319_000001",
179 observation_type="bias",
180 observation_reason="bias",
181 observing_day=20290319,
182 physical_filter="unknown",
183 pressure=None,
184 relative_humidity=None,
185 science_program="unknown",
186 temperature=None,
187 visit_id=2029031900001)),
188 ("lsstCam-MC_C_20231107_000078_R01_S01.json",
189 dict(telescope="Simonyi Survey Telescope",
190 instrument="LSSTCam",
191 boresight_rotation_coord="unknown",
192 dark_time=0.092*u.s,
193 detector_exposure_id=0x9e1004e01,
194 detector_group="R01",
195 detector_name="S01",
196 detector_num=1,
197 detector_serial="ITL-3800C-226",
198 exposure_id=2023110700078,
199 exposure_group="2023110700078",
200 exposure_time=0.0*u.s,
201 focus_z=0.0*u.mm,
202 group_counter_end=78,
203 group_counter_start=78,
204 has_simulated_content=False,
205 object="UNKNOWN",
206 observation_counter=78,
207 observation_id="MC_C_20231107_000078",
208 observation_type="bias",
209 observation_reason="bot_persistence",
210 observing_day=20231107,
211 physical_filter="ph_5",
212 pressure=None,
213 relative_humidity=None,
214 science_program="13518",
215 temperature=None,
216 visit_id=2023110700078)),
217 )
218 for filename, expected in test_data:
219 with self.subTest(f"Testing {filename}"):
220 self.assertObservationInfoFromYaml(filename, dir=self.datadir, **expected)
222 def test_phoSimLsstCam_translator(self):
223 test_data = (("lsstCam-MC_H_20100217_000032_R22_S00.yaml",
224 dict(telescope="Simonyi Survey Telescope",
225 instrument="LSSTCam",
226 boresight_rotation_coord="sky",
227 dark_time=15.0*u.s,
228 detector_exposure_id=0x401780205a,
229 detector_group="R22",
230 detector_name="S00",
231 detector_num=90,
232 detector_serial="E2V-CCD250-369",
233 detector_unique_name="R22_S00",
234 exposure_group="4010021700032",
235 exposure_id=4010021700032,
236 exposure_time=15.0*u.s,
237 focus_z=0.0*u.mm,
238 group_counter_end=32,
239 group_counter_start=32,
240 has_simulated_content=True,
241 object="UNKNOWN",
242 observation_counter=32,
243 observation_id="MC_H_20100217_000032",
244 observation_reason="phosim",
245 observation_type="science",
246 observing_day=20100217,
247 physical_filter="g",
248 pressure=None,
249 relative_humidity=None,
250 science_program="9006001",
251 temperature=None,
252 visit_id=4010021700032)),
253 )
254 for filename, expected in test_data:
255 with self.subTest(f"Testing {filename}"):
256 self.assertObservationInfoFromYaml(filename, dir=self.datadir,
257 check_wcs=False, **expected)
259 def test_comCam_translator(self):
260 test_data = (("comCam-CC_C_20190530_000001_R22_S00.yaml",
261 dict(telescope="Simonyi Survey Telescope",
262 instrument="LSSTComCam",
263 boresight_rotation_coord="unknown",
264 dark_time=0.398*u.s,
265 detector_exposure_id=0x26b6000100,
266 detector_group="R22",
267 detector_name="S00",
268 detector_num=0,
269 detector_serial="ITL-3800C-229",
270 exposure_id=3019053000001,
271 exposure_group="3019053000001",
272 exposure_time=0.0*u.s,
273 focus_z=0.0*u.mm,
274 group_counter_end=1,
275 group_counter_start=1,
276 has_simulated_content=False,
277 object="UNKNOWN",
278 observation_counter=1,
279 observation_id="CC_C_20190530_000001",
280 observation_type="bias",
281 observation_reason="bias",
282 observing_day=20190530,
283 physical_filter="unknown",
284 pressure=None,
285 relative_humidity=None,
286 science_program="unknown",
287 temperature=None,
288 visit_id=3019053000001)),
289 ("comCam-CC_C_20190526_000223_R22_S01.yaml",
290 dict(telescope="Simonyi Survey Telescope",
291 instrument="LSSTComCam",
292 boresight_rotation_coord="unknown",
293 dark_time=0.034*u.s,
294 detector_exposure_id=0x26b400df01,
295 detector_group="R22",
296 detector_name="S01",
297 detector_num=1,
298 detector_serial="ITL-3800C-251",
299 exposure_id=3019052600223,
300 exposure_group="3019052600223",
301 exposure_time=0.0*u.s,
302 focus_z=0.0*u.mm,
303 group_counter_end=223,
304 group_counter_start=223,
305 has_simulated_content=False,
306 object="UNKNOWN",
307 observation_counter=223,
308 observation_id="CC_C_20190526_000223",
309 observation_type="bias",
310 observation_reason="dark",
311 observing_day=20190526,
312 physical_filter="unknown",
313 pressure=None,
314 relative_humidity=None,
315 science_program="unknown",
316 temperature=None,
317 visit_id=3019052600223)),
318 )
319 for filename, expected in test_data:
320 with self.subTest(f"Testing {filename}"):
321 self.assertObservationInfoFromYaml(filename, dir=self.datadir, **expected)
323 def test_comCamSim_translator(self):
324 test_data = (("comCamSim-IM_P_20240117_000000_R22_S00.yaml",
325 dict(telescope="Simonyi Survey Telescope",
326 instrument="LSSTComCamSim",
327 boresight_rotation_coord="unknown",
328 dark_time=0.0*u.s,
329 detector_group="R22",
330 detector_name="S00",
331 detector_num=0,
332 detector_serial="ITL-3800C-229",
333 exposure_id=5024011700000,
334 exposure_group="5024011700000",
335 exposure_time=0.0*u.s,
336 focus_z=0.0*u.mm,
337 group_counter_end=5024011700000,
338 group_counter_start=5024011700000,
339 has_simulated_content=True,
340 object="UNKNOWN",
341 observation_counter=0,
342 observation_id="IM_P_20240117_000000",
343 observation_type="bias",
344 observation_reason="calibration",
345 observing_day=20240117,
346 physical_filter="r_03",
347 pressure=None,
348 relative_humidity=None,
349 science_program="calibration",
350 temperature=None,
351 visit_id=5024011700000,
352 )),
353 )
354 for filename, expected in test_data:
355 with self.subTest(f"Testing {filename}"):
356 self.assertObservationInfoFromYaml(filename, dir=self.datadir, **expected)
358 def test_phoSimComCam_translator(self):
359 test_data = (("comCam-CC_H_20100217_006001_R22_S00.yaml",
360 dict(telescope="Simonyi Survey Telescope",
361 instrument="LSSTComCam",
362 boresight_rotation_coord="sky",
363 dark_time=1.0*u.s,
364 detector_exposure_id=0x4017977100,
365 detector_group="R22",
366 detector_name="S00",
367 detector_num=0,
368 detector_serial="ITL-3800C-229",
369 exposure_id=4010021706001,
370 exposure_group="4010021706001",
371 exposure_time=1.0*u.s,
372 focus_z=0.0*u.mm,
373 group_counter_end=6001,
374 group_counter_start=6001,
375 has_simulated_content=True,
376 object="UNKNOWN",
377 observation_counter=6001,
378 observation_id="CC_H_20100217_006001",
379 observation_type="science",
380 observation_reason="test",
381 observing_day=20100217,
382 physical_filter="g_01",
383 pressure=None,
384 relative_humidity=None,
385 science_program="9006001",
386 temperature=None,
387 visit_id=4010021706001)),
388 )
389 for filename, expected in test_data:
390 with self.subTest(f"Testing {filename}"):
391 self.assertObservationInfoFromYaml(filename, dir=self.datadir,
392 check_wcs=False, **expected)
394 def test_phosim_translator(self):
395 test_data = (("phosim-lsst_a_204595_f3_R11_S02_E000.yaml",
396 dict(telescope="Simonyi Survey Telescope",
397 instrument="LSSTCam-PhoSim",
398 boresight_rotation_coord="sky",
399 dark_time=30.0*u.s,
400 detector_exposure_id=204595038,
401 detector_group="R11",
402 detector_name="S02",
403 detector_num=38,
404 detector_serial="R11_S02",
405 exposure_id=204595,
406 exposure_group="204595",
407 exposure_time=30.0*u.s,
408 focus_z=0.0*u.mm,
409 group_counter_end=204595,
410 group_counter_start=204595,
411 has_simulated_content=True,
412 object="UNKNOWN",
413 observation_counter=0,
414 observation_id="204595",
415 observation_type="science",
416 observation_reason="phosim",
417 observing_day=20221005,
418 physical_filter="i",
419 pressure=520.0*cds.mmHg,
420 relative_humidity=40.0,
421 science_program="204595",
422 temperature=20.0*u.deg_C,
423 visit_id=204595,
424 wcs_params=dict(max_sep=3000.))), # 2022
425 )
426 for filename, expected in test_data:
427 with self.subTest(f"Testing {filename}"):
428 with warnings.catch_warnings():
429 # Avoid warnings from too-long FITS header keys.
430 warnings.simplefilter("ignore", VerifyWarning)
431 self.assertObservationInfoFromYaml(filename, dir=self.datadir, **expected)
433 def test_latiss_translator(self):
434 test_data = (("latiss-2018-09-20-05700065-det000.yaml",
435 dict(telescope="Rubin Auxiliary Telescope",
436 instrument="LATISS",
437 boresight_rotation_coord="unknown",
438 dark_time=27.0*u.s,
439 detector_exposure_id=0x2638004100,
440 detector_group="RXX",
441 detector_name="S00",
442 detector_num=0,
443 detector_serial="ITL-3800C-098",
444 exposure_id=3018092000065,
445 exposure_group="3018092000065",
446 exposure_time=27.0*u.s,
447 focus_z=0.0*u.mm,
448 group_counter_end=65,
449 group_counter_start=65,
450 has_simulated_content=False,
451 object="UNKNOWN",
452 observation_counter=65,
453 observation_id="AT_C_20180920_000065",
454 observation_type="unknown",
455 observation_reason="unknown",
456 observing_day=20180920,
457 physical_filter="unknown~unknown",
458 pressure=None,
459 relative_humidity=None,
460 science_program="unknown",
461 temperature=None,
462 visit_id=3018092000065,
463 )),
464 ("latiss-AT_O_20190306_000014.yaml",
465 dict(telescope="Rubin Auxiliary Telescope",
466 instrument="LATISS",
467 boresight_rotation_coord="unknown",
468 dark_time=1.06*u.s,
469 detector_exposure_id=0x68b800e00,
470 detector_group="RXX",
471 detector_name="S00",
472 detector_num=0,
473 detector_serial="ITL-3800C-098",
474 exposure_id=2019030600014,
475 exposure_group="2019030600014",
476 exposure_time=1.06*u.s,
477 focus_z=0.0*u.mm,
478 group_counter_end=14,
479 group_counter_start=14,
480 has_simulated_content=False,
481 object="UNKNOWN",
482 observation_counter=14,
483 observation_id="AT_O_20190306_000014",
484 observation_type="unknown",
485 observation_reason="unknown",
486 observing_day=20190306,
487 physical_filter="unknown~unknown",
488 pressure=None,
489 relative_humidity=None,
490 science_program="unknown",
491 temperature=None,
492 visit_id=2019030600014,
493 )),
494 ("latiss-AT_O_20190329_000022-ats-wfs_ccd.yaml",
495 dict(telescope="Rubin Auxiliary Telescope",
496 instrument="LATISS",
497 boresight_rotation_coord="unknown",
498 dark_time=0.0*u.s,
499 detector_exposure_id=0x697001600,
500 detector_group="RXX",
501 detector_name="S00",
502 detector_num=0,
503 detector_serial="ITL-3800C-098",
504 exposure_id=2019032900022,
505 exposure_group="2019032900022",
506 exposure_time=0.0*u.s,
507 focus_z=0.0*u.mm,
508 group_counter_end=22,
509 group_counter_start=22,
510 has_simulated_content=False,
511 object="UNKNOWN",
512 observation_counter=22,
513 observation_id="AT_O_20190329_000022",
514 observation_type="bias",
515 observation_reason="unknown",
516 observing_day=20190329,
517 physical_filter="unknown~unknown",
518 pressure=None,
519 relative_humidity=None,
520 science_program="unknown",
521 temperature=None,
522 visit_id=2019032900022,
523 )),
524 ("latiss-future.yaml",
525 dict(telescope="Rubin Auxiliary Telescope",
526 instrument="LATISS",
527 boresight_rotation_coord="unknown",
528 dark_time=0.0*u.s,
529 detector_exposure_id=0x74e001600,
530 detector_group="RXX",
531 detector_name="S00",
532 detector_num=0,
533 detector_serial="ITL-3800C-068",
534 exposure_id=2020032900022,
535 exposure_group="2020-03-29T16:55:00.012#24",
536 exposure_time=0.0*u.s,
537 focus_z=0.0*u.mm,
538 group_counter_end=22,
539 group_counter_start=22,
540 has_simulated_content=False,
541 object="UNKNOWN",
542 observation_counter=22,
543 observation_id="AT_X_20200329_000022",
544 observation_type="bias",
545 observation_reason="unknown",
546 observing_day=20200329,
547 physical_filter="unknown~unknown",
548 pressure=None,
549 relative_humidity=None,
550 science_program="unknown",
551 temperature=None,
552 visit_id=1654305000120024,
553 )),
554 ("latiss-AT_O_20190915_000037.yaml",
555 dict(telescope="Rubin Auxiliary Telescope",
556 instrument="LATISS",
557 boresight_rotation_coord="unknown",
558 dark_time=0.0*u.s,
559 detector_exposure_id=0x6ec002500,
560 detector_group="RXX",
561 detector_name="S00",
562 detector_num=0,
563 detector_serial="ITL-3800C-068",
564 exposure_id=2019091500037,
565 exposure_group="bias_0027_0100",
566 exposure_time=0.0*u.s,
567 focus_z=0.0*u.mm,
568 group_counter_end=37,
569 group_counter_start=37,
570 has_simulated_content=False,
571 object="UNKNOWN",
572 observation_counter=37,
573 observation_id="AT_O_20190915_000037",
574 observation_type="bias",
575 observation_reason="unknown",
576 observing_day=20190915,
577 physical_filter="unknown~unknown",
578 pressure=None,
579 relative_humidity=None,
580 science_program="unknown",
581 temperature=None,
582 visit_id=3575576933793566714,
583 )),
584 ("latiss-AT_O_20191031_000004.yaml",
585 dict(telescope="Rubin Auxiliary Telescope",
586 instrument="LATISS",
587 boresight_rotation_coord="unknown",
588 dark_time=3.0*u.s,
589 detector_exposure_id=0x703000400,
590 detector_group="RXX",
591 detector_name="S00",
592 detector_num=0,
593 detector_serial="ITL-3800C-068",
594 exposure_id=2019103100004,
595 exposure_group="TEST01",
596 exposure_time=3.0*u.s,
597 focus_z=0.0*u.mm,
598 group_counter_end=4,
599 group_counter_start=4,
600 has_simulated_content=False,
601 object="UNKNOWN",
602 observation_counter=4,
603 observation_id="AT_O_20191031_000004",
604 observation_type="engtest",
605 observation_reason="unknown",
606 observing_day=20191031,
607 physical_filter="unknown~unknown",
608 pressure=None,
609 relative_humidity=None,
610 science_program="unknown",
611 temperature=None,
612 visit_id=1123819875881954006,
613 )),
614 ("latiss-AT_O_20191104_000003.yaml",
615 dict(telescope="Rubin Auxiliary Telescope",
616 instrument="LATISS",
617 boresight_rotation_coord="unknown",
618 dark_time=3.0*u.s,
619 detector_exposure_id=0x705000300,
620 detector_group="RXX",
621 detector_name="S00",
622 detector_num=0,
623 detector_serial="ITL-3800C-068",
624 exposure_id=2019110400003,
625 exposure_group="TEST01",
626 exposure_time=3.0*u.s,
627 focus_z=0.0*u.mm,
628 group_counter_end=3,
629 group_counter_start=3,
630 has_simulated_content=False,
631 object="UNKNOWN",
632 observation_counter=3,
633 observation_id="AT_O_20191104_000003",
634 observation_type="engtest",
635 observation_reason="unknown",
636 observing_day=20191104,
637 physical_filter="unknown~unknown",
638 pressure=None,
639 relative_humidity=None,
640 science_program="unknown",
641 temperature=None,
642 visit_id=1123819875881954006,
643 )),
644 ("latiss-AT_O_20191113_000061.yaml",
645 dict(telescope="Rubin Auxiliary Telescope",
646 instrument="LATISS",
647 boresight_rotation_coord="unknown",
648 dark_time=0.5*u.s,
649 detector_exposure_id=0x709803d00,
650 detector_group="RXX",
651 detector_name="S00",
652 detector_num=0,
653 detector_serial="ITL-3800C-068",
654 exposure_id=2019111300061,
655 exposure_group="wave,Focus,455,32.0PH=5um",
656 exposure_time=0.5*u.s,
657 focus_z=0.0*u.mm,
658 group_counter_end=61,
659 group_counter_start=61,
660 has_simulated_content=False,
661 object="UNKNOWN",
662 observation_counter=61,
663 observation_id="AT_O_20191113_000061",
664 observation_type="engtest",
665 observation_reason="unknown",
666 observing_day=20191113,
667 physical_filter="empty~ronchi90lpmm",
668 pressure=None,
669 relative_humidity=None,
670 science_program="unknown",
671 temperature=None,
672 visit_id=1892608703001301325,
673 )),
674 ("latiss-AT_O_20191118_000011.yaml",
675 dict(telescope="Rubin Auxiliary Telescope",
676 instrument="LATISS",
677 boresight_rotation_coord="unknown",
678 dark_time=15.0*u.s,
679 detector_exposure_id=0x70c000b00,
680 detector_group="RXX",
681 detector_name="S00",
682 detector_num=0,
683 detector_serial="ITL-3800C-068",
684 exposure_id=2019111800011,
685 exposure_group="dark_0002_0005",
686 exposure_time=15.0*u.s,
687 focus_z=0.0*u.mm,
688 group_counter_end=11,
689 group_counter_start=11,
690 has_simulated_content=False,
691 object="UNKNOWN",
692 observation_counter=11,
693 observation_id="AT_O_20191118_000011",
694 observation_type="dark",
695 observation_reason="unknown",
696 observing_day=20191118,
697 physical_filter="diffuser~ronchi170lpmm",
698 pressure=None,
699 relative_humidity=None,
700 science_program="unknown",
701 temperature=None,
702 visit_id=6861884254113212214,
703 )),
704 ("latiss-AT_O_20200121_000045.yaml",
705 dict(telescope="Rubin Auxiliary Telescope",
706 instrument="LATISS",
707 boresight_rotation_coord="sky",
708 dark_time=100.0*u.s,
709 detector_exposure_id=0x72c002d00,
710 detector_group="RXX",
711 detector_name="S00",
712 detector_num=0,
713 detector_serial="ITL-3800C-068",
714 exposure_id=2020012100045,
715 exposure_group="test",
716 exposure_time=100.0*u.s,
717 focus_z=0.560002659202*u.mm,
718 group_counter_end=45,
719 group_counter_start=45,
720 has_simulated_content=False,
721 object="UNKNOWN",
722 observation_counter=45,
723 observation_id="AT_O_20200121_000045",
724 observation_type="engtest",
725 observation_reason="unknown",
726 observing_day=20200121,
727 physical_filter="blank_bk7_wg05~empty",
728 pressure=None,
729 relative_humidity=None,
730 science_program="unknown",
731 temperature=None,
732 visit_id=4702443654717948604,
733 check_altaz=True,
734 )),
735 ("latiss-AT_O_20200128_000379.yaml",
736 dict(telescope="Rubin Auxiliary Telescope",
737 instrument="LATISS",
738 boresight_rotation_coord="sky",
739 dark_time=5.0*u.s,
740 detector_exposure_id=0x72f817b00,
741 detector_group="RXX",
742 detector_name="S00",
743 detector_num=0,
744 detector_serial="ITL-3800C-068",
745 exposure_id=2020012800379,
746 exposure_group="2020-01-29T07:25:52.166",
747 exposure_time=5.0*u.s,
748 focus_z=0.35416568455*u.mm,
749 group_counter_end=379,
750 group_counter_start=379,
751 has_simulated_content=False,
752 object="HD107696",
753 observation_counter=379,
754 observation_id="AT_O_20200128_000379",
755 observation_type="science",
756 observation_reason="science",
757 observing_day=20200128,
758 physical_filter="KPNO_406_828nm~empty",
759 pressure=None,
760 relative_humidity=None,
761 science_program="unknown",
762 temperature=None,
763 visit_id=1602123521660000,
764 # We have some timing discrepancies in the headers
765 # that make it hard to match the demand RA/DEC to
766 # the recorded AZ/EL/TIME.
767 wcs_params=dict(max_sep=7.),
768 )),
769 ("latiss-AT_O_20220405_000348.yaml",
770 dict(telescope="Rubin Auxiliary Telescope",
771 instrument="LATISS",
772 boresight_rotation_coord="sky",
773 dark_time=30.3176279067993*u.s,
774 detector_exposure_id=0x8be815c00,
775 detector_group="RXX",
776 detector_name="S00",
777 detector_num=0,
778 detector_serial="ITL-3800C-068",
779 exposure_id=2022040500348,
780 exposure_group="2022-04-06T02:58:07.181",
781 exposure_time=30.0*u.s,
782 focus_z=0.0697081759572029*u.mm,
783 group_counter_end=349,
784 group_counter_start=348,
785 has_simulated_content=False,
786 object="LATISS_E6A_00000040",
787 observation_counter=348,
788 observation_id="AT_O_20220405_000348",
789 observation_type="science",
790 observation_reason="object",
791 observing_day=20220405,
792 physical_filter="SDSSr~empty",
793 pressure=744.3*u.hPa,
794 relative_humidity=19.0,
795 science_program="LATISS_E6A",
796 temperature=12.3*u.deg_C,
797 visit_id=2291434871810000,
798 # We have some timing discrepancies in the headers
799 # that make it hard to match the demand RA/DEC to
800 # the recorded AZ/EL/TIME.
801 wcs_params=dict(max_sep=7.),
802 )),
803 ("latiss-AT_O_20220405_000349.yaml",
804 dict(telescope="Rubin Auxiliary Telescope",
805 instrument="LATISS",
806 boresight_rotation_coord="sky",
807 dark_time=30.2387452125549*u.s,
808 detector_exposure_id=0x8be815d00,
809 detector_group="RXX",
810 detector_name="S00",
811 detector_num=0,
812 detector_serial="ITL-3800C-068",
813 exposure_id=2022040500349,
814 exposure_group="2022-04-06T02:58:07.181",
815 exposure_time=30.0*u.s,
816 focus_z=0.0697081759572029*u.mm,
817 group_counter_end=349,
818 group_counter_start=348,
819 has_simulated_content=False,
820 object="LATISS_E6A_00000040",
821 observation_counter=349,
822 observation_id="AT_O_20220405_000349",
823 observation_type="science",
824 observation_reason="object",
825 observing_day=20220405,
826 physical_filter="SDSSr~empty",
827 pressure=744.3*u.hPa,
828 relative_humidity=19.0,
829 science_program="LATISS_E6A",
830 temperature=12.3*u.deg_C,
831 visit_id=2291434871810000,
832 # We have some timing discrepancies in the headers
833 # that make it hard to match the demand RA/DEC to
834 # the recorded AZ/EL/TIME.
835 wcs_params=dict(max_sep=7.),
836 )),
837 ("latiss-AT_O_20230321_000053.yaml",
838 dict(telescope="Rubin Auxiliary Telescope",
839 instrument="LATISS",
840 boresight_rotation_coord="unknown",
841 dark_time=30.0126*u.s,
842 detector_exposure_id=0x96d803500,
843 detector_group="RXX",
844 detector_name="S00",
845 detector_num=0,
846 detector_serial="ITL-3800C-068",
847 exposure_id=2023032100053,
848 exposure_group="2023-03-21T16:11:07.633",
849 exposure_time=30.0*u.s,
850 focus_z=0.0*u.mm,
851 group_counter_end=53,
852 group_counter_start=53,
853 has_simulated_content=False,
854 object="slew_icrs",
855 observation_counter=53,
856 observation_id="AT_O_20230321_000053",
857 observation_type="dark",
858 observation_reason="dark",
859 observing_day=20230321,
860 physical_filter="empty~empty",
861 pressure=None,
862 relative_humidity=None,
863 science_program="unknown",
864 temperature=None,
865 visit_id=2593446676330000,
866 check_altaz=True,
867 )),
868 ("latiss-AT_O_20230705_000379_R00_S00.json",
869 dict(telescope="Rubin Auxiliary Telescope",
870 instrument="LATISS",
871 boresight_rotation_coord="sky",
872 dark_time=30.2418*u.s,
873 detector_exposure_id=0x9a2817b00,
874 detector_group="RXX",
875 detector_name="S00",
876 detector_num=0,
877 detector_serial="ITL-3800C-068",
878 exposure_id=2023070500379,
879 exposure_group="2023-07-06T04:53:15.609",
880 exposure_time=30.0*u.s,
881 focus_z=-0.008921561762690544*u.mm,
882 group_counter_end=379,
883 group_counter_start=379,
884 has_simulated_content=False,
885 object="HD165763",
886 observation_counter=379,
887 observation_id="AT_O_20230705_000379",
888 observation_type="science",
889 observation_reason="sitcom-857",
890 observing_day=20230705,
891 physical_filter="empty~holo4_003",
892 pressure=777.80*u.hPa,
893 relative_humidity=15.149999618530273,
894 science_program="BLOCK-59",
895 temperature=5.775000095367432*u.deg_C,
896 visit_id=2685487956090000,
897 check_altaz=True,
898 )),
899 )
900 with warnings.catch_warnings():
901 # Avoid warnings from too-long FITS header keys.
902 warnings.simplefilter("ignore", VerifyWarning)
903 self.assertObservationInfoFromYaml("latiss-future.yaml", dir=self.datadir)
904 for filename, expected in test_data:
905 with self.subTest(f"Testing {filename}"):
906 self.assertObservationInfoFromYaml(filename, dir=self.datadir, **expected)
908 # This translation should fail
909 with self.assertRaises(KeyError):
910 self.assertObservationInfoFromYaml("latiss-future-bad.yaml", dir=self.datadir)
912 def test_imsim_translator(self):
913 test_data = (("imsim-bias-lsst_a_3010002_R11_S00.yaml",
914 dict(telescope="Simonyi Survey Telescope",
915 instrument="LSSTCam-imSim",
916 boresight_rotation_coord="sky",
917 dark_time=0.0*u.s,
918 detector_exposure_id=3010002036,
919 detector_group="R11",
920 detector_name="S00",
921 detector_num=36,
922 detector_serial="LCA-11021_RTM-000",
923 exposure_id=3010002,
924 exposure_group="3010002",
925 exposure_time=0.0*u.s,
926 focus_z=0.0*u.mm,
927 group_counter_end=3010002,
928 group_counter_start=3010002,
929 has_simulated_content=True,
930 object="UNKNOWN",
931 observation_counter=0,
932 observation_id="3010002",
933 observation_type="science", # The header is wrong
934 observation_reason="imsim",
935 observing_day=20220101,
936 physical_filter="i",
937 pressure=None,
938 relative_humidity=40.0,
939 science_program="42",
940 temperature=None,
941 visit_id=3010002,
942 wcs_params=dict(max_sep=3000.), # 2022
943 )),
944 ("imsim-lsst_a_204595_R11_S02_i.yaml",
945 dict(telescope="Simonyi Survey Telescope",
946 instrument="LSSTCam-imSim",
947 boresight_rotation_coord="sky",
948 dark_time=30.0*u.s,
949 detector_exposure_id=204595038,
950 detector_group="R11",
951 detector_name="S02",
952 detector_num=38,
953 detector_serial="LCA-11021_RTM-000",
954 exposure_id=204595,
955 exposure_group="204595",
956 exposure_time=30.0*u.s,
957 focus_z=0.0*u.mm,
958 group_counter_end=204595,
959 group_counter_start=204595,
960 has_simulated_content=True,
961 object="UNKNOWN",
962 observation_counter=0,
963 observation_id="204595",
964 observation_type="science", # The header is wrong
965 observation_reason="imsim",
966 observing_day=20221005,
967 physical_filter="i_sim_1.4",
968 pressure=None,
969 relative_humidity=40.0,
970 science_program="204595",
971 temperature=None,
972 visit_id=204595,
973 wcs_params=dict(max_sep=3000.), # 2022
974 )),
975 ("imsim-flats-lsst_a_5000007_R11_S20_i.yaml",
976 dict(telescope="Simonyi Survey Telescope",
977 instrument="LSSTCam-imSim",
978 boresight_rotation_coord="sky",
979 dark_time=30.0*u.s,
980 detector_exposure_id=5000007042,
981 detector_group="R11",
982 detector_name="S20",
983 detector_num=42,
984 detector_serial="LCA-11021_RTM-000",
985 exposure_id=5000007,
986 exposure_group="5000007",
987 exposure_time=30.0*u.s,
988 focus_z=0.0*u.mm,
989 group_counter_end=5000007,
990 group_counter_start=5000007,
991 has_simulated_content=True,
992 object="UNKNOWN",
993 observation_counter=0,
994 observation_id="5000007",
995 observation_type="flat",
996 observation_reason="imsim",
997 observing_day=20220806,
998 physical_filter="i",
999 pressure=None,
1000 relative_humidity=40.0,
1001 science_program="5000007",
1002 temperature=None,
1003 visit_id=5000007,
1004 wcs_params=dict(max_sep=3000.), # 2022
1005 )),
1006 ("imsim-dark-lsst_a_4010003_R11_S11.yaml",
1007 dict(telescope="Simonyi Survey Telescope",
1008 instrument="LSSTCam-imSim",
1009 boresight_rotation_coord="sky",
1010 dark_time=500.0*u.s,
1011 detector_exposure_id=4010003040,
1012 detector_group="R11",
1013 detector_name="S11",
1014 detector_num=40,
1015 detector_serial="LCA-11021_RTM-000",
1016 exposure_id=4010003,
1017 exposure_group="4010003",
1018 exposure_time=500.0*u.s,
1019 focus_z=0.0*u.mm,
1020 group_counter_end=4010003,
1021 group_counter_start=4010003,
1022 has_simulated_content=True,
1023 object="UNKNOWN",
1024 observation_counter=0,
1025 observation_id="4010003",
1026 observation_type="science", # The header is wrong
1027 observation_reason="imsim",
1028 observing_day=20220101,
1029 physical_filter="i",
1030 pressure=None,
1031 relative_humidity=40.0,
1032 science_program="42",
1033 temperature=None,
1034 visit_id=4010003,
1035 wcs_params=dict(max_sep=3000.), # 2022
1036 )),
1037 )
1038 for filename, expected in test_data:
1039 with self.subTest(f"Testing {filename}"):
1040 self.assertObservationInfoFromYaml(filename, dir=self.datadir, **expected)
1042 def test_ts3_translator(self):
1043 test_data = (("ts3-E2V-CCD250-411_lambda_flat_1000_025_20181115075559.yaml",
1044 dict(telescope=None,
1045 instrument="LSST-TS3",
1046 dark_time=44.631*u.s,
1047 detector_exposure_id=201811151255111433,
1048 detector_group="R433",
1049 detector_name="S00",
1050 detector_num=433,
1051 detector_serial="E2V-CCD250-411",
1052 exposure_id=201811151255111,
1053 exposure_group="201811151255111",
1054 exposure_time=44.631*u.s,
1055 focus_z=0.0*u.mm,
1056 group_counter_end=25,
1057 group_counter_start=25,
1058 has_simulated_content=False,
1059 observation_counter=25,
1060 observation_id="E2V-CCD250-411_lambda_flat_1000_025_20181115075559",
1061 observation_type="flat",
1062 observation_reason="lambda",
1063 observing_day=20181115,
1064 physical_filter="550CutOn",
1065 science_program="2018-11-15",
1066 visit_id=201811151255111)),
1067 ("ts3-ITL-3800C-098_lambda_flat_1000_067_20160722020740.yaml",
1068 dict(telescope=None,
1069 instrument="LSST-TS3",
1070 dark_time=30.611*u.s,
1071 detector_exposure_id=201607220607067071,
1072 detector_group="R071",
1073 detector_name="S00",
1074 detector_num=71,
1075 detector_serial="ITL-3800C-098",
1076 exposure_id=201607220607067,
1077 exposure_group="201607220607067",
1078 exposure_time=30.611*u.s,
1079 focus_z=0.0*u.mm,
1080 group_counter_end=67,
1081 group_counter_start=67,
1082 has_simulated_content=False,
1083 observation_counter=67,
1084 observation_id="ITL-3800C-098_lambda_flat_1000_067_20160722020740",
1085 observation_type="flat",
1086 observation_reason="lambda",
1087 observing_day=20160721,
1088 physical_filter="550CutOn",
1089 science_program="2016-07-22",
1090 visit_id=201607220607067)),
1091 )
1092 for filename, expected in test_data:
1093 with self.subTest(f"Testing {filename}"):
1094 with warnings.catch_warnings():
1095 # Avoid warnings from too-long FITS header keys.
1096 warnings.simplefilter("ignore", VerifyWarning)
1097 self.assertObservationInfoFromYaml(filename, dir=self.datadir, **expected)
1099 def test_ts8_translator(self):
1100 test_data = (("ts8-E2V-CCD250-179_lambda_bias_024_6006D_20180724104156.yaml",
1101 dict(telescope=None,
1102 instrument="LSST-TS8",
1103 dark_time=0.0*u.s,
1104 detector_exposure_id=201807241041568067,
1105 detector_group="RTM-010",
1106 detector_name="S11",
1107 detector_num=67,
1108 detector_serial="E2V-CCD250-179",
1109 exposure_id=201807241041568,
1110 exposure_group="201807241041568",
1111 exposure_time=0.0*u.s,
1112 focus_z=0.0*u.mm,
1113 group_counter_end=24,
1114 group_counter_start=24,
1115 has_simulated_content=False,
1116 observation_counter=24,
1117 observation_id="E2V-CCD250-179_lambda_bias_024_6006D_20180724104156",
1118 observation_type="bias",
1119 observation_reason="lambda",
1120 observing_day=20180724,
1121 physical_filter="y",
1122 science_program="6006D",
1123 visit_id=201807241041568)),
1124 ("ts8-E2V-CCD250-200-Dev_lambda_flat_0700_6006D_20180724102845.yaml",
1125 dict(telescope=None,
1126 instrument="LSST-TS8",
1127 dark_time=21.913*u.s,
1128 detector_exposure_id=201807241028453065,
1129 detector_group="RTM-010",
1130 detector_name="S02",
1131 detector_num=65,
1132 detector_serial="E2V-CCD250-200",
1133 exposure_id=201807241028453,
1134 exposure_group="201807241028453",
1135 exposure_time=21.913*u.s,
1136 focus_z=0.0*u.mm,
1137 group_counter_end=17,
1138 group_counter_start=17,
1139 has_simulated_content=False,
1140 observation_counter=17,
1141 observation_id="E2V-CCD250-200-Dev_lambda_flat_0700_6006D_20180724102845",
1142 observation_type="flat",
1143 observation_reason="lambda",
1144 observing_day=20180724,
1145 physical_filter="z",
1146 science_program="6006D",
1147 visit_id=201807241028453)),
1148 ("ts8-E2V-CCD250-220_fe55_fe55_094_6288_20171215114006.yaml",
1149 dict(telescope=None,
1150 instrument="LSST-TS8",
1151 dark_time=300.0*u.s,
1152 detector_exposure_id=201712151140062027,
1153 detector_group="RTM-005",
1154 detector_name="S00",
1155 detector_num=27,
1156 detector_serial="E2V-CCD250-220",
1157 exposure_id=201712151140062,
1158 exposure_group="201712151140062",
1159 exposure_time=300.0*u.s,
1160 focus_z=0.0*u.mm,
1161 group_counter_end=94,
1162 group_counter_start=94,
1163 has_simulated_content=False,
1164 observation_counter=94,
1165 observation_id="E2V-CCD250-220_fe55_fe55_094_6288_20171215114006",
1166 observation_type="fe55",
1167 observation_reason="fe55",
1168 observing_day=20171215,
1169 physical_filter="i",
1170 science_program="6288",
1171 visit_id=201712151140062)),
1172 ("ts8-TS_C_20220711_000174_R22_S00.yaml",
1173 dict(telescope=None,
1174 instrument="LSST-TS8",
1175 dark_time=210.315*u.s,
1176 detector_exposure_id=202207111714459018,
1177 detector_group="RTM-004",
1178 detector_name="S00",
1179 detector_num=18,
1180 detector_serial="ITL-3800C-372",
1181 exposure_id=202207111714459,
1182 exposure_group="202207111714459",
1183 exposure_time=210.0*u.s,
1184 focus_z=0.0*u.mm,
1185 group_counter_end=174,
1186 group_counter_start=174,
1187 has_simulated_content=False,
1188 observation_counter=174,
1189 observation_id="TS_C_20220711_000174",
1190 observation_type="spot",
1191 observation_reason="spot_flat",
1192 observing_day=20220711,
1193 physical_filter="unknown",
1194 science_program="7074D",
1195 visit_id=202207111714459)),
1196 ("ts8-TS_C_20230512_000021_R22_S02.yaml",
1197 dict(telescope=None,
1198 instrument="LSST-TS8",
1199 dark_time=15.165*u.s,
1200 detector_exposure_id=202305121917591020,
1201 detector_group="RTM-004",
1202 detector_name="S02",
1203 detector_num=20,
1204 detector_serial="ITL-3800C-380",
1205 exposure_id=202305121917591,
1206 exposure_group="202305121917591",
1207 exposure_time=15.0*u.s,
1208 focus_z=0.0*u.mm,
1209 group_counter_end=21,
1210 group_counter_start=21,
1211 has_simulated_content=False,
1212 observation_counter=21,
1213 observation_id="TS_C_20230512_000021",
1214 observation_type="flat",
1215 observation_reason="sflat_hi",
1216 observing_day=20230512,
1217 physical_filter="HIGH",
1218 science_program="7187D",
1219 visit_id=202305121917591)),
1220 ("ts8-TS_C_20230512_000021_R22_S02-fixed.yaml", # Will not apply header fixups
1221 dict(telescope=None,
1222 instrument="LSST-TS8",
1223 dark_time=15.165*u.s,
1224 detector_exposure_id=202305121917591020,
1225 detector_group="RTM-004",
1226 detector_name="S02",
1227 detector_num=20,
1228 detector_serial="ITL-3800C-380",
1229 exposure_id=202305121917591,
1230 exposure_group="202305121917591",
1231 exposure_time=15.0*u.s,
1232 focus_z=0.0*u.mm,
1233 group_counter_end=21,
1234 group_counter_start=21,
1235 has_simulated_content=False,
1236 observation_counter=21,
1237 observation_id="TS_C_20230512_000021",
1238 observation_type="flat",
1239 observation_reason="sflat_hi",
1240 observing_day=20230512,
1241 physical_filter="HIGH",
1242 science_program="7187D",
1243 visit_id=202305121917591)),
1244 ("ts8-TS_C_20230523_000127_R22_S00.yaml",
1245 dict(telescope=None,
1246 instrument="LSST-TS8",
1247 dark_time=15.16*u.s,
1248 detector_exposure_id=202305231936194018,
1249 detector_group="RTM-004",
1250 detector_name="S00",
1251 detector_num=18,
1252 detector_serial="ITL-3800C-372",
1253 exposure_id=202305231936194,
1254 exposure_group="202305231936194",
1255 exposure_time=15.0*u.s,
1256 focus_z=0.0*u.mm,
1257 group_counter_end=127,
1258 group_counter_start=127,
1259 has_simulated_content=False,
1260 observation_counter=127,
1261 observation_id="TS_C_20230523_000127",
1262 observation_type="flat",
1263 observation_reason="flat",
1264 observing_day=20230523,
1265 physical_filter="unknown",
1266 science_program="7220D",
1267 visit_id=202305231936194)),
1268 ("ts8-TS_C_20230525_000041_R22_S00.yaml",
1269 dict(telescope=None,
1270 instrument="LSST-TS8",
1271 dark_time=30.151*u.s,
1272 detector_exposure_id=3023052500041018,
1273 detector_group="RTM-004",
1274 detector_name="S00",
1275 detector_num=18,
1276 detector_serial="ITL-3800C-372",
1277 exposure_id=3023052500041,
1278 exposure_group="3023052500041",
1279 exposure_time=30.0*u.s,
1280 focus_z=0.0*u.mm,
1281 group_counter_end=41,
1282 group_counter_start=41,
1283 has_simulated_content=False,
1284 observation_counter=41,
1285 observation_id="TS_C_20230525_000041",
1286 observation_type="flat",
1287 observation_reason="flat",
1288 observing_day=20230525,
1289 physical_filter="unknown",
1290 science_program="7227D",
1291 visit_id=3023052500041)),
1292 )
1293 for filename, expected in test_data:
1294 with self.subTest(f"Testing {filename}"):
1295 with warnings.catch_warnings():
1296 # Avoid warnings from too-long FITS header keys.
1297 warnings.simplefilter("ignore", VerifyWarning)
1298 self.assertObservationInfoFromYaml(filename, dir=self.datadir, **expected)
1300 def test_ucdcam_translator(self):
1301 test_data = (("UCD-E2V-CCD250-TS_C_20231031_000227_R21_S01.yaml",
1302 dict(telescope=None,
1303 instrument="LSST-UCDCam",
1304 dark_time=2.07859*u.s,
1305 detector_exposure_id=42370917130,
1306 detector_group="R21",
1307 detector_name="S01",
1308 detector_num=10,
1309 detector_serial="E2V-CCD250-112-09",
1310 exposure_id=2023103100227,
1311 exposure_group="2023103100227",
1312 exposure_time=1.0*u.s,
1313 focus_z=0.0*u.mm,
1314 group_counter_end=227,
1315 group_counter_start=227,
1316 has_simulated_content=False,
1317 observation_counter=227,
1318 observation_id="TS_C_20231031_000227",
1319 observation_type="flat",
1320 observation_reason="flat",
1321 observing_day=20231031,
1322 physical_filter="r",
1323 science_program="unknown",
1324 visit_id=2023103100227)),
1325 ("UCD-ITL-3800C-TS_C_20230730_000237_R22_S01.yaml",
1326 dict(telescope=None,
1327 instrument="LSST-UCDCam",
1328 dark_time=3.082*u.s,
1329 detector_exposure_id=179029732609,
1330 detector_group="R22",
1331 detector_name="S01",
1332 detector_num=1,
1333 detector_serial="ITL-3800C-002",
1334 exposure_id=3023073000237,
1335 exposure_group="3023073000237",
1336 exposure_time=2.0*u.s,
1337 focus_z=0.0*u.mm,
1338 group_counter_end=237,
1339 group_counter_start=237,
1340 has_simulated_content=False,
1341 observation_counter=237,
1342 observation_id="TS_C_20230730_000237",
1343 observation_type="flat",
1344 observation_reason="flat",
1345 observing_day=20230730,
1346 physical_filter="r",
1347 science_program="unknown",
1348 visit_id=3023073000237)),
1349 )
1350 for filename, expected in test_data:
1351 with self.subTest(f"Testing {filename}"):
1352 self.assertObservationInfoFromYaml(filename, dir=self.datadir, **expected)
1354 def test_checker(self):
1355 filename = "latiss-future.yaml"
1356 from astro_metadata_translator.tests import read_test_file
1357 from astro_metadata_translator import ObservationInfo
1358 header = read_test_file(filename, self.datadir)
1359 obsInfo = ObservationInfo(header, pedantic=True, filename=filename)
1360 self.assertTrue(obsInfo)
1362 def test_fix_header(self):
1363 from astro_metadata_translator import fix_header
1364 from astro_metadata_translator.tests import read_test_file
1365 # Test that header fix up is working
1366 # Not all headers are used in metadata translation
1367 test_data = (
1368 ("latiss-AT_O_20210212_000006.yaml",
1369 dict(RASTART=260.024385071917)),
1370 ("latiss-AT_O_20210210_000011.yaml",
1371 dict(RASTART=355.41750341182313)),
1372 )
1373 for filename, expected in test_data:
1374 with self.subTest(f"Testing {filename}"):
1375 header = read_test_file(filename, dir=self.datadir)
1376 modified = fix_header(header)
1377 self.assertTrue(modified)
1378 for k, v in expected.items():
1379 self.assertEqual(header[k], v, f"Testing {k} in {filename}")
1382if __name__ == "__main__": 1382 ↛ 1383line 1382 didn't jump to line 1383, because the condition on line 1382 was never true
1383 unittest.main()