Coverage for tests/test_translator.py : 24%

Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
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 astropy.units as u
25import astropy.units.cds as cds
26import lsst.obs.lsst.translators # noqa: F401 -- register the translators
28from astro_metadata_translator.tests import MetadataAssertHelper
30TESTDIR = os.path.abspath(os.path.dirname(__file__))
33class LsstMetadataTranslatorTestCase(unittest.TestCase, MetadataAssertHelper):
34 """Each test reads in raw headers from YAML files, constructs an
35 `ObservationInfo`, and compares the properties with the expected values
36 defined in the corresponding `dict`."""
38 datadir = os.path.join(TESTDIR, "headers")
40 def test_lsstCam_translator(self):
41 test_data = (("lsstCam-MC_C_20190319_000001_R10_S02.yaml",
42 dict(telescope="Simonyi Survey Telescope",
43 instrument="LSSTCam",
44 boresight_rotation_coord="unknown",
45 dark_time=0.0*u.s,
46 detector_exposure_id=3019031900001029,
47 detector_group="R10",
48 detector_name="S02",
49 detector_num=29,
50 detector_serial="ITL-3800C-041",
51 exposure_id=3019031900001,
52 exposure_group="3019031900001",
53 exposure_time=0.0*u.s,
54 object="UNKNOWN",
55 observation_counter=1,
56 observation_id="MC_C_20190319_000001",
57 observation_type="bias",
58 observation_reason="bias",
59 observing_day=20190319,
60 physical_filter="unknown",
61 pressure=None,
62 relative_humidity=None,
63 science_program="unknown",
64 temperature=None,
65 visit_id=3019031900001)),
66 ("lsstCam-MC_C_20190319_000001_R22_S21.yaml",
67 dict(telescope="Simonyi Survey Telescope",
68 instrument="LSSTCam",
69 boresight_rotation_coord="unknown",
70 dark_time=0.0*u.s,
71 detector_exposure_id=3019031900001097,
72 detector_group="R22",
73 detector_name="S21",
74 detector_num=97,
75 detector_serial="ITL-3800C-139",
76 exposure_id=3019031900001,
77 exposure_group="3019031900001",
78 exposure_time=0.0*u.s,
79 object="UNKNOWN",
80 observation_counter=1,
81 observation_id="MC_C_20190319_000001",
82 observation_type="bias",
83 observation_reason="bias",
84 observing_day=20190319,
85 physical_filter="unknown",
86 pressure=None,
87 relative_humidity=None,
88 science_program="unknown",
89 temperature=None,
90 visit_id=3019031900001)),
91 ("lsstCam-MC_C_20190322_000002_R10_S22.yaml",
92 dict(telescope="Simonyi Survey Telescope",
93 instrument="LSSTCam",
94 boresight_rotation_coord="unknown",
95 dark_time=1.0*u.s,
96 detector_exposure_id=3019032200002035,
97 detector_group="R10",
98 detector_name="S22",
99 detector_num=35,
100 detector_serial="ITL-3800C-103",
101 exposure_id=3019032200002,
102 exposure_group="3019032200002",
103 exposure_time=1.0*u.s,
104 object="UNKNOWN",
105 observation_counter=2,
106 observation_id="MC_C_20190322_000002",
107 observation_type="flat",
108 observation_reason="flat",
109 observing_day=20190322,
110 physical_filter="SDSSi~ND_OD0.5",
111 pressure=None,
112 relative_humidity=None,
113 science_program="6489D",
114 temperature=None,
115 visit_id=3019032200002)),
116 ("lsstCam-MC_C_20190406_000643_R10_S00.yaml",
117 dict(telescope="Simonyi Survey Telescope",
118 instrument="LSSTCam",
119 boresight_rotation_coord="unknown",
120 dark_time=1007.422*u.s,
121 detector_exposure_id=3019040600643027,
122 detector_group="R10",
123 detector_name="S00",
124 detector_num=27,
125 detector_serial="ITL-3800C-145",
126 exposure_id=3019040600643,
127 exposure_group="3019040600643",
128 exposure_time=999.99*u.s,
129 object="UNKNOWN",
130 observation_counter=643,
131 observation_id="MC_C_20190406_000643",
132 observation_type="flat",
133 observation_reason="lambda",
134 observing_day=20190406,
135 physical_filter="950nm",
136 pressure=None,
137 relative_humidity=None,
138 science_program="6549D",
139 temperature=None,
140 visit_id=3019040600643)),
141 )
142 for filename, expected in test_data:
143 with self.subTest(f"Testing {filename}"):
144 self.assertObservationInfoFromYaml(filename, dir=self.datadir, **expected)
146 def test_phoSimLsstCam_translator(self):
147 test_data = (("lsstCam-MC_H_20000217_000032_R22_S00.yaml",
148 dict(telescope="Simonyi Survey Telescope",
149 instrument="LSSTCam",
150 boresight_rotation_coord="sky",
151 dark_time=15.0*u.s,
152 detector_exposure_id=4000021700032090,
153 detector_group="R22",
154 detector_name="S00",
155 detector_num=90,
156 detector_serial="E2V-CCD250-369",
157 detector_unique_name="R22_S00",
158 exposure_group="4000021700032",
159 exposure_id=4000021700032,
160 exposure_time=15.0*u.s,
161 object="UNKNOWN",
162 observation_counter=32,
163 observation_id="MC_H_20000217_000032",
164 observation_reason="phosim",
165 observation_type="science",
166 observing_day=20000217,
167 physical_filter="g",
168 pressure=None,
169 relative_humidity=None,
170 science_program="9006001",
171 temperature=None,
172 visit_id=4000021700032)),
173 )
174 for filename, expected in test_data:
175 with self.subTest(f"Testing {filename}"):
176 self.assertObservationInfoFromYaml(filename, dir=self.datadir,
177 check_wcs=False, **expected)
179 def test_comCam_translator(self):
180 test_data = (("comCam-CC_C_20190530_000001_R22_S00.yaml",
181 dict(telescope="Simonyi Survey Telescope",
182 instrument="LSSTComCam",
183 boresight_rotation_coord="unknown",
184 dark_time=0.398*u.s,
185 detector_exposure_id=3019053000001000,
186 detector_group="R22",
187 detector_name="S00",
188 detector_num=0,
189 detector_serial="ITL-3800C-229",
190 exposure_id=3019053000001,
191 exposure_group="3019053000001",
192 exposure_time=0.0*u.s,
193 object="UNKNOWN",
194 observation_counter=1,
195 observation_id="CC_C_20190530_000001",
196 observation_type="bias",
197 observation_reason="bias",
198 observing_day=20190530,
199 physical_filter="unknown",
200 pressure=None,
201 relative_humidity=None,
202 science_program="unknown",
203 temperature=None,
204 visit_id=3019053000001)),
205 ("comCam-CC_C_20190526_000223_R22_S01.yaml",
206 dict(telescope="Simonyi Survey Telescope",
207 instrument="LSSTComCam",
208 boresight_rotation_coord="unknown",
209 dark_time=0.034*u.s,
210 detector_exposure_id=3019052600223001,
211 detector_group="R22",
212 detector_name="S01",
213 detector_num=1,
214 detector_serial="ITL-3800C-251",
215 exposure_id=3019052600223,
216 exposure_group="3019052600223",
217 exposure_time=0.0*u.s,
218 object="UNKNOWN",
219 observation_counter=223,
220 observation_id="CC_C_20190526_000223",
221 observation_type="bias",
222 observation_reason="dark",
223 observing_day=20190526,
224 physical_filter="unknown",
225 pressure=None,
226 relative_humidity=None,
227 science_program="unknown",
228 temperature=None,
229 visit_id=3019052600223)),
230 )
231 for filename, expected in test_data:
232 with self.subTest(f"Testing {filename}"):
233 self.assertObservationInfoFromYaml(filename, dir=self.datadir, **expected)
235 def test_phosim_translator(self):
236 test_data = (("phosim-lsst_a_204595_f3_R11_S02_E000.yaml",
237 dict(telescope="Simonyi Survey Telescope",
238 instrument="LSSTCam-PhoSim",
239 boresight_rotation_coord="sky",
240 dark_time=30.0*u.s,
241 detector_exposure_id=204595038,
242 detector_group="R11",
243 detector_name="S02",
244 detector_num=38,
245 detector_serial="R11_S02",
246 exposure_id=204595,
247 exposure_group="204595",
248 exposure_time=30.0*u.s,
249 object="UNKNOWN",
250 observation_counter=0,
251 observation_id="204595",
252 observation_type="science",
253 observation_reason="phosim",
254 observing_day=20221004,
255 physical_filter="i",
256 pressure=520.0*cds.mmHg,
257 relative_humidity=40.0,
258 science_program="204595",
259 temperature=20.0*u.deg_C,
260 visit_id=204595,
261 wcs_params=dict(max_sep=3000.))), # 2022
262 )
263 for filename, expected in test_data:
264 with self.subTest(f"Testing {filename}"):
265 self.assertObservationInfoFromYaml(filename, dir=self.datadir, **expected)
267 def test_latiss_translator(self):
268 test_data = (("latiss-2018-09-20-05700065-det000.yaml",
269 dict(telescope="Rubin Auxiliary Telescope",
270 instrument="LATISS",
271 boresight_rotation_coord="unknown",
272 dark_time=27.0*u.s,
273 detector_exposure_id=3018092000065,
274 detector_group="RXX",
275 detector_name="S00",
276 detector_num=0,
277 detector_serial="ITL-3800C-098",
278 exposure_id=3018092000065,
279 exposure_group="3018092000065",
280 exposure_time=27.0*u.s,
281 object="UNKNOWN",
282 observation_counter=65,
283 observation_id="AT_C_20180920_000065",
284 observation_type="unknown",
285 observation_reason="unknown",
286 observing_day=20180920,
287 physical_filter="unknown~unknown",
288 pressure=None,
289 relative_humidity=None,
290 science_program="unknown",
291 temperature=None,
292 visit_id=3018092000065,
293 )),
294 ("latiss-AT_O_20190306_000014.yaml",
295 dict(telescope="Rubin Auxiliary Telescope",
296 instrument="LATISS",
297 boresight_rotation_coord="unknown",
298 dark_time=1.06*u.s,
299 detector_exposure_id=2019030600014,
300 detector_group="RXX",
301 detector_name="S00",
302 detector_num=0,
303 detector_serial="ITL-3800C-098",
304 exposure_id=2019030600014,
305 exposure_group="2019030600014",
306 exposure_time=1.06*u.s,
307 object="UNKNOWN",
308 observation_counter=14,
309 observation_id="AT_O_20190306_000014",
310 observation_type="unknown",
311 observation_reason="unknown",
312 observing_day=20190306,
313 physical_filter="unknown~unknown",
314 pressure=None,
315 relative_humidity=None,
316 science_program="unknown",
317 temperature=None,
318 visit_id=2019030600014,
319 )),
320 ("latiss-AT_O_20190329_000022-ats-wfs_ccd.yaml",
321 dict(telescope="Rubin Auxiliary Telescope",
322 instrument="LATISS",
323 boresight_rotation_coord="unknown",
324 dark_time=0.0*u.s,
325 detector_exposure_id=2019032900022,
326 detector_group="RXX",
327 detector_name="S00",
328 detector_num=0,
329 detector_serial="ITL-3800C-098",
330 exposure_id=2019032900022,
331 exposure_group="2019032900022",
332 exposure_time=0.0*u.s,
333 object="UNKNOWN",
334 observation_counter=22,
335 observation_id="AT_O_20190329_000022",
336 observation_type="bias",
337 observation_reason="unknown",
338 observing_day=20190329,
339 physical_filter="unknown~unknown",
340 pressure=None,
341 relative_humidity=None,
342 science_program="unknown",
343 temperature=None,
344 visit_id=2019032900022,
345 )),
346 ("latiss-future.yaml",
347 dict(telescope="Rubin Auxiliary Telescope",
348 instrument="LATISS",
349 boresight_rotation_coord="unknown",
350 dark_time=0.0*u.s,
351 detector_exposure_id=2020032900022,
352 detector_group="RXX",
353 detector_name="S00",
354 detector_num=0,
355 detector_serial="ITL-3800C-068",
356 exposure_id=2020032900022,
357 exposure_group="2020-03-29T16:55:00.012#24",
358 exposure_time=0.0*u.s,
359 object="UNKNOWN",
360 observation_counter=22,
361 observation_id="AT_X_20200329_000022",
362 observation_type="bias",
363 observation_reason="unknown",
364 observing_day=20200329,
365 physical_filter="unknown~unknown",
366 pressure=None,
367 relative_humidity=None,
368 science_program="unknown",
369 temperature=None,
370 visit_id=1654305000120024,
371 )),
372 ("latiss-AT_O_20190915_000037.yaml",
373 dict(telescope="Rubin Auxiliary Telescope",
374 instrument="LATISS",
375 boresight_rotation_coord="unknown",
376 dark_time=0.0*u.s,
377 detector_exposure_id=2019091500037,
378 detector_group="RXX",
379 detector_name="S00",
380 detector_num=0,
381 detector_serial="ITL-3800C-068",
382 exposure_id=2019091500037,
383 exposure_group="bias_0027_0100",
384 exposure_time=0.0*u.s,
385 object="UNKNOWN",
386 observation_counter=37,
387 observation_id="AT_O_20190915_000037",
388 observation_type="bias",
389 observation_reason="unknown",
390 observing_day=20190915,
391 physical_filter="unknown~unknown",
392 pressure=None,
393 relative_humidity=None,
394 science_program="unknown",
395 temperature=None,
396 visit_id=3575576933793566714,
397 )),
398 ("latiss-AT_O_20191031_000004.yaml",
399 dict(telescope="Rubin Auxiliary Telescope",
400 instrument="LATISS",
401 boresight_rotation_coord="unknown",
402 dark_time=3.0*u.s,
403 detector_exposure_id=2019103100004,
404 detector_group="RXX",
405 detector_name="S00",
406 detector_num=0,
407 detector_serial="ITL-3800C-068",
408 exposure_id=2019103100004,
409 exposure_group="TEST01",
410 exposure_time=3.0*u.s,
411 object="UNKNOWN",
412 observation_counter=4,
413 observation_id="AT_O_20191031_000004",
414 observation_type="engtest",
415 observation_reason="unknown",
416 observing_day=20191031,
417 physical_filter="unknown~unknown",
418 pressure=None,
419 relative_humidity=None,
420 science_program="unknown",
421 temperature=None,
422 visit_id=1123819875881954006,
423 )),
424 ("latiss-AT_O_20191104_000003.yaml",
425 dict(telescope="Rubin Auxiliary Telescope",
426 instrument="LATISS",
427 boresight_rotation_coord="unknown",
428 dark_time=3.0*u.s,
429 detector_exposure_id=2019110400003,
430 detector_group="RXX",
431 detector_name="S00",
432 detector_num=0,
433 detector_serial="ITL-3800C-068",
434 exposure_id=2019110400003,
435 exposure_group="TEST01",
436 exposure_time=3.0*u.s,
437 object="UNKNOWN",
438 observation_counter=3,
439 observation_id="AT_O_20191104_000003",
440 observation_type="engtest",
441 observation_reason="unknown",
442 observing_day=20191104,
443 physical_filter="unknown~unknown",
444 pressure=None,
445 relative_humidity=None,
446 science_program="unknown",
447 temperature=None,
448 visit_id=1123819875881954006,
449 )),
450 ("latiss-AT_O_20191113_000061.yaml",
451 dict(telescope="Rubin Auxiliary Telescope",
452 instrument="LATISS",
453 boresight_rotation_coord="unknown",
454 dark_time=0.5*u.s,
455 detector_exposure_id=2019111300061,
456 detector_group="RXX",
457 detector_name="S00",
458 detector_num=0,
459 detector_serial="ITL-3800C-068",
460 exposure_id=2019111300061,
461 exposure_group="wave,Focus,455,32.0PH=5um",
462 exposure_time=0.5*u.s,
463 object="UNKNOWN",
464 observation_counter=61,
465 observation_id="AT_O_20191113_000061",
466 observation_type="engtest",
467 observation_reason="unknown",
468 observing_day=20191113,
469 physical_filter="empty~ronchi90lpmm",
470 pressure=None,
471 relative_humidity=None,
472 science_program="unknown",
473 temperature=None,
474 visit_id=1892608703001301325,
475 )),
476 ("latiss-AT_O_20191118_000011.yaml",
477 dict(telescope="Rubin Auxiliary Telescope",
478 instrument="LATISS",
479 boresight_rotation_coord="unknown",
480 dark_time=15.0*u.s,
481 detector_exposure_id=2019111800011,
482 detector_group="RXX",
483 detector_name="S00",
484 detector_num=0,
485 detector_serial="ITL-3800C-068",
486 exposure_id=2019111800011,
487 exposure_group="dark_0002_0005",
488 exposure_time=15.0*u.s,
489 object="UNKNOWN",
490 observation_counter=11,
491 observation_id="AT_O_20191118_000011",
492 observation_type="dark",
493 observation_reason="unknown",
494 observing_day=20191118,
495 physical_filter="diffuser~ronchi170lpmm",
496 pressure=None,
497 relative_humidity=None,
498 science_program="unknown",
499 temperature=None,
500 visit_id=6861884254113212214,
501 )),
502 ("latiss-AT_O_20200121_000045.yaml",
503 dict(telescope="Rubin Auxiliary Telescope",
504 instrument="LATISS",
505 boresight_rotation_coord="sky",
506 dark_time=100.0*u.s,
507 detector_exposure_id=2020012100045,
508 detector_group="RXX",
509 detector_name="S00",
510 detector_num=0,
511 detector_serial="ITL-3800C-068",
512 exposure_id=2020012100045,
513 exposure_group="test",
514 exposure_time=100.0*u.s,
515 object="UNKNOWN",
516 observation_counter=45,
517 observation_id="AT_O_20200121_000045",
518 observation_type="engtest",
519 observation_reason="unknown",
520 observing_day=20200121,
521 physical_filter="blank_bk7_wg05~empty",
522 pressure=None,
523 relative_humidity=None,
524 science_program="unknown",
525 temperature=None,
526 visit_id=4702443654717948604,
527 )),
528 ("latiss-AT_O_20200128_000379.yaml",
529 dict(telescope="Rubin Auxiliary Telescope",
530 instrument="LATISS",
531 boresight_rotation_coord="sky",
532 dark_time=5.0*u.s,
533 detector_exposure_id=2020012800379,
534 detector_group="RXX",
535 detector_name="S00",
536 detector_num=0,
537 detector_serial="ITL-3800C-068",
538 exposure_id=2020012800379,
539 exposure_group="2020-01-29T07:25:52.166",
540 exposure_time=5.0*u.s,
541 object="HD107696",
542 observation_counter=379,
543 observation_id="AT_O_20200128_000379",
544 observation_type="science",
545 observation_reason="science",
546 observing_day=20200128,
547 physical_filter="KPNO_406_828nm~empty",
548 pressure=None,
549 relative_humidity=None,
550 science_program="unknown",
551 temperature=None,
552 visit_id=1602123521660000,
553 # We have some timing discrepancies in the headers
554 # that make it hard to match the demand RA/DEC to
555 # the recorded AZ/EL/TIME.
556 wcs_params=dict(max_sep=7.),
557 )),
558 )
559 self.assertObservationInfoFromYaml("latiss-future.yaml", dir=self.datadir)
560 for filename, expected in test_data:
561 with self.subTest(f"Testing {filename}"):
562 self.assertObservationInfoFromYaml(filename, dir=self.datadir, **expected)
564 # This translation should fail
565 with self.assertRaises(KeyError):
566 self.assertObservationInfoFromYaml("latiss-future-bad.yaml", dir=self.datadir)
568 def test_imsim_translator(self):
569 test_data = (("imsim-bias-lsst_a_3010002_R11_S00.yaml",
570 dict(telescope="Simonyi Survey Telescope",
571 instrument="LSSTCam-imSim",
572 boresight_rotation_coord="sky",
573 dark_time=0.0*u.s,
574 detector_exposure_id=3010002036,
575 detector_group="R11",
576 detector_name="S00",
577 detector_num=36,
578 detector_serial="LCA-11021_RTM-000",
579 exposure_id=3010002,
580 exposure_group="3010002",
581 exposure_time=0.0*u.s,
582 object="UNKNOWN",
583 observation_counter=0,
584 observation_id="3010002",
585 observation_type="science", # The header is wrong
586 observation_reason="imsim",
587 observing_day=20211231,
588 physical_filter="i",
589 pressure=None,
590 relative_humidity=40.0,
591 science_program="42",
592 temperature=None,
593 visit_id=3010002,
594 wcs_params=dict(max_sep=3000.), # 2022
595 )),
596 ("imsim-lsst_a_204595_R11_S02_i.yaml",
597 dict(telescope="Simonyi Survey Telescope",
598 instrument="LSSTCam-imSim",
599 boresight_rotation_coord="sky",
600 dark_time=30.0*u.s,
601 detector_exposure_id=204595038,
602 detector_group="R11",
603 detector_name="S02",
604 detector_num=38,
605 detector_serial="LCA-11021_RTM-000",
606 exposure_id=204595,
607 exposure_group="204595",
608 exposure_time=30.0*u.s,
609 object="UNKNOWN",
610 observation_counter=0,
611 observation_id="204595",
612 observation_type="science", # The header is wrong
613 observation_reason="imsim",
614 observing_day=20221004,
615 physical_filter="i_sim_1.4",
616 pressure=None,
617 relative_humidity=40.0,
618 science_program="204595",
619 temperature=None,
620 visit_id=204595,
621 wcs_params=dict(max_sep=3000.), # 2022
622 )),
623 ("imsim-flats-lsst_a_5000007_R11_S20_i.yaml",
624 dict(telescope="Simonyi Survey Telescope",
625 instrument="LSSTCam-imSim",
626 boresight_rotation_coord="sky",
627 dark_time=30.0*u.s,
628 detector_exposure_id=5000007042,
629 detector_group="R11",
630 detector_name="S20",
631 detector_num=42,
632 detector_serial="LCA-11021_RTM-000",
633 exposure_id=5000007,
634 exposure_group="5000007",
635 exposure_time=30.0*u.s,
636 object="UNKNOWN",
637 observation_counter=0,
638 observation_id="5000007",
639 observation_type="flat",
640 observation_reason="imsim",
641 observing_day=20220805,
642 physical_filter="i",
643 pressure=None,
644 relative_humidity=40.0,
645 science_program="5000007",
646 temperature=None,
647 visit_id=5000007,
648 wcs_params=dict(max_sep=3000.), # 2022
649 )),
650 ("imsim-dark-lsst_a_4010003_R11_S11.yaml",
651 dict(telescope="Simonyi Survey Telescope",
652 instrument="LSSTCam-imSim",
653 boresight_rotation_coord="sky",
654 dark_time=500.0*u.s,
655 detector_exposure_id=4010003040,
656 detector_group="R11",
657 detector_name="S11",
658 detector_num=40,
659 detector_serial="LCA-11021_RTM-000",
660 exposure_id=4010003,
661 exposure_group="4010003",
662 exposure_time=500.0*u.s,
663 object="UNKNOWN",
664 observation_counter=0,
665 observation_id="4010003",
666 observation_type="science", # The header is wrong
667 observation_reason="imsim",
668 observing_day=20211231,
669 physical_filter="i",
670 pressure=None,
671 relative_humidity=40.0,
672 science_program="42",
673 temperature=None,
674 visit_id=4010003,
675 wcs_params=dict(max_sep=3000.), # 2022
676 )),
677 )
678 for filename, expected in test_data:
679 with self.subTest(f"Testing {filename}"):
680 self.assertObservationInfoFromYaml(filename, dir=self.datadir, **expected)
682 def test_ts3_translator(self):
683 test_data = (("ts3-E2V-CCD250-411_lambda_flat_1000_025_20181115075559.yaml",
684 dict(telescope=None,
685 instrument="LSST-TS3",
686 dark_time=44.631*u.s,
687 detector_exposure_id=201811151255111433,
688 detector_group="R433",
689 detector_name="S00",
690 detector_num=433,
691 detector_serial="E2V-CCD250-411",
692 exposure_id=201811151255111,
693 exposure_group="201811151255111",
694 exposure_time=44.631*u.s,
695 observation_counter=25,
696 observation_id="E2V-CCD250-411_lambda_flat_1000_025_20181115075559",
697 observation_type="flat",
698 observation_reason="lambda",
699 observing_day=20181115,
700 physical_filter="550CutOn",
701 science_program="2018-11-15",
702 visit_id=201811151255111)),
703 ("ts3-ITL-3800C-098_lambda_flat_1000_067_20160722020740.yaml",
704 dict(telescope=None,
705 instrument="LSST-TS3",
706 dark_time=30.611*u.s,
707 detector_exposure_id=201607220607067071,
708 detector_group="R071",
709 detector_name="S00",
710 detector_num=71,
711 detector_serial="ITL-3800C-098",
712 exposure_id=201607220607067,
713 exposure_group="201607220607067",
714 exposure_time=30.611*u.s,
715 observation_counter=67,
716 observation_id="ITL-3800C-098_lambda_flat_1000_067_20160722020740",
717 observation_type="flat",
718 observation_reason="lambda",
719 observing_day=20160721,
720 physical_filter="550CutOn",
721 science_program="2016-07-22",
722 visit_id=201607220607067)),
723 )
724 for filename, expected in test_data:
725 with self.subTest(f"Testing {filename}"):
726 self.assertObservationInfoFromYaml(filename, dir=self.datadir, **expected)
728 def test_ts8_translator(self):
729 test_data = (("ts8-E2V-CCD250-179_lambda_bias_024_6006D_20180724104156.yaml",
730 dict(telescope=None,
731 instrument="LSST-TS8",
732 dark_time=0.0*u.s,
733 detector_exposure_id=201807241041568067,
734 detector_group="RTM-010",
735 detector_name="S11",
736 detector_num=67,
737 detector_serial="E2V-CCD250-179",
738 exposure_id=201807241041568,
739 exposure_group="201807241041568",
740 exposure_time=0.0*u.s,
741 observation_counter=24,
742 observation_id="E2V-CCD250-179_lambda_bias_024_6006D_20180724104156",
743 observation_type="bias",
744 observation_reason="lambda",
745 observing_day=20180724,
746 physical_filter="y",
747 science_program="6006D",
748 visit_id=201807241041568)),
749 ("ts8-E2V-CCD250-200-Dev_lambda_flat_0700_6006D_20180724102845.yaml",
750 dict(telescope=None,
751 instrument="LSST-TS8",
752 dark_time=21.913*u.s,
753 detector_exposure_id=201807241028453065,
754 detector_group="RTM-010",
755 detector_name="S02",
756 detector_num=65,
757 detector_serial="E2V-CCD250-200",
758 exposure_id=201807241028453,
759 exposure_group="201807241028453",
760 exposure_time=21.913*u.s,
761 observation_counter=17,
762 observation_id="E2V-CCD250-200-Dev_lambda_flat_0700_6006D_20180724102845",
763 observation_type="flat",
764 observation_reason="lambda",
765 observing_day=20180724,
766 physical_filter="z",
767 science_program="6006D",
768 visit_id=201807241028453)),
769 ("ts8-E2V-CCD250-220_fe55_fe55_094_6288_20171215114006.yaml",
770 dict(telescope=None,
771 instrument="LSST-TS8",
772 dark_time=300.0*u.s,
773 detector_exposure_id=201712151140062027,
774 detector_group="RTM-005",
775 detector_name="S00",
776 detector_num=27,
777 detector_serial="E2V-CCD250-220",
778 exposure_id=201712151140062,
779 exposure_group="201712151140062",
780 exposure_time=300.0*u.s,
781 observation_counter=94,
782 observation_id="E2V-CCD250-220_fe55_fe55_094_6288_20171215114006",
783 observation_type="fe55",
784 observation_reason="fe55",
785 observing_day=20171215,
786 physical_filter="i",
787 science_program="6288",
788 visit_id=201712151140062)),
789 )
790 for filename, expected in test_data:
791 with self.subTest(f"Testing {filename}"):
792 self.assertObservationInfoFromYaml(filename, dir=self.datadir, **expected)
794 def test_ucdcam_translator(self):
795 test_data = (("UCD-E2V-CCD250-112-04_flat_flat_100_20181205153143.yaml",
796 dict(telescope=None,
797 instrument="LSST-UCDCam",
798 dark_time=0.5*u.s,
799 detector_exposure_id=201812052331480,
800 detector_group="R00",
801 detector_name="S00",
802 detector_num=0,
803 detector_serial="E2V-CCD250-112-04",
804 exposure_id=20181205233148,
805 exposure_group="20181205233148",
806 exposure_time=0.5*u.s,
807 observation_counter=100,
808 observation_id="E2V-CCD250-112-04_flat_flat_100_20181205153143",
809 observation_type="flat",
810 observation_reason="flat",
811 observing_day=20181205,
812 physical_filter="r",
813 science_program="2018-12-05",
814 visit_id=20181205233148)),
815 ("UCD-ITL-3800C-002_flat_flat_100_20180530080354.yaml",
816 dict(telescope=None,
817 instrument="LSST-UCDCam",
818 dark_time=0.5*u.s,
819 detector_exposure_id=201805301503552,
820 detector_group="R02",
821 detector_name="S00",
822 detector_num=2,
823 detector_serial="ITL-3800C-002",
824 exposure_id=20180530150355,
825 exposure_group="20180530150355",
826 exposure_time=0.5*u.s,
827 observation_counter=100,
828 observation_id="ITL-3800C-002_flat_flat_100_20180530080354",
829 observation_type="flat",
830 observation_reason="flat",
831 observing_day=20180530,
832 physical_filter="r",
833 science_program="2018-05-30",
834 visit_id=20180530150355)),
835 )
836 for filename, expected in test_data:
837 with self.subTest(f"Testing {filename}"):
838 self.assertObservationInfoFromYaml(filename, dir=self.datadir, **expected)
840 def test_checker(self):
841 filename = "latiss-future.yaml"
842 from astro_metadata_translator.tests import read_test_file
843 from astro_metadata_translator import ObservationInfo
844 header = read_test_file(filename, self.datadir)
845 obsInfo = ObservationInfo(header, pedantic=True, filename=filename)
846 self.assertTrue(obsInfo)
849if __name__ == "__main__": 849 ↛ 850line 849 didn't jump to line 850, because the condition on line 849 was never true
850 unittest.main()