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