Coverage for tests/test_translator.py : 25%

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