Coverage for python/astro_metadata_translator/properties.py : 100%

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 astro_metadata_translator.
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 LICENSE file at the top-level directory of this distribution
7# for details of code ownership.
8#
9# Use of this source code is governed by a 3-clause BSD-style
10# license that can be found in the LICENSE file.
12"""Properties calculated by this package.
14Defines all properties in one place so that both `ObservationInfo` and
15`MetadataTranslator` can use them. In particular, the translator
16base class can use knowledge of these properties to predefine translation
17stubs with documentation attached, and `ObservationInfo` can automatically
18define the getter methods.
20"""
22__all__ = ("PROPERTIES", )
24import astropy.coordinates
25import astropy.time
26import astropy.units
29# Dict of properties to tuple where tuple is:
30# - description of property
31# - Python type of property as a string (suitable for docstrings)
32PROPERTIES = {"telescope": ("Full name of the telescope.", "str", str),
33 "instrument": ("The instrument used to observe the exposure.", "str", str),
34 "location": ("Location of the observatory.", "astropy.coordinates.EarthLocation",
35 astropy.coordinates.EarthLocation),
36 "exposure_id": ("Unique (with instrument) integer identifier for this observation.", "int",
37 int),
38 "visit_id": ("""ID of the Visit this Exposure is associated with.
40Science observations should essentially always be
41associated with a visit, but calibration observations
42may not be.""", "int", int),
43 "physical_filter": ("The bandpass filter used for this observation.", "str", str),
44 "datetime_begin": ("Time of the start of the observation.", "astropy.time.Time",
45 astropy.time.Time),
46 "datetime_end": ("Time of the end of the observation.", "astropy.time.Time",
47 astropy.time.Time),
48 "exposure_time": ("Duration of the exposure with shutter open (seconds).",
49 "astropy.units.Quantity", astropy.units.Quantity),
50 "dark_time": ("Duration of the exposure with shutter closed (seconds).",
51 "astropy.units.Quantity", astropy.units.Quantity),
52 "boresight_airmass": ("Airmass of the boresight of the telescope.", "float", float),
53 "boresight_rotation_angle": ("Angle of the instrument in boresight_rotation_coord frame.",
54 "astropy.coordinates.Angle", astropy.coordinates.Angle),
55 "boresight_rotation_coord": ("Coordinate frame of the instrument rotation angle"
56 " (options: sky, unknown).", "str", str),
57 "detector_num": ("Unique (for instrument) integer identifier for the sensor.", "int", int),
58 "detector_name": ("Name of the detector within the instrument (might not be unique"
59 " if there are detector groups).",
60 "str", str),
61 "detector_unique_name": ("Unique name of the detector within the focal plane, generally"
62 " combining detector_group with detector_name.",
63 "str", str),
64 "detector_serial": ("Serial number/string associated with this detector.", "str", str),
65 "detector_group": ("Collection name of which this detector is a part. "
66 "Can be None if there are no detector groupings.", "str", str),
67 "detector_exposure_id": ("Unique integer identifier for this detector in this exposure.",
68 "int", int),
69 "object": ("Object of interest or field name.", "str", str),
70 "temperature": ("Temperature outside the dome.", "astropy.units.Quantity",
71 astropy.units.Quantity),
72 "pressure": ("Atmospheric pressure outside the dome.", "astropy.units.Quantity",
73 astropy.units.Quantity),
74 "relative_humidity": ("Relative humidity outside the dome.", "float", float),
75 "tracking_radec": ("Requested RA/Dec to track.", "astropy.coordinates.SkyCoord",
76 astropy.coordinates.SkyCoord),
77 "altaz_begin": ("Telescope boresight azimuth and elevation at start of observation.",
78 "astropy.coordinates.AltAz", astropy.coordinates.AltAz),
79 "science_program": ("Observing program (survey or proposal) identifier.", "str", str),
80 "observation_type": ("Type of observation (currently: science, dark, flat, bias, focus).",
81 "str", str),
82 "observation_id": ("Label uniquely identifying this observation "
83 "(can be related to 'exposure_id').",
84 "str", str),
85 "observation_reason": ("Reason this observation was taken, or its purpose ('science' and "
86 "'calibration' are common values)",
87 "str", str),
88 "exposure_group": ("Label to use to associate this exposure with others "
89 "(can be related to 'exposure_id').",
90 "str", str),
91 "observing_day": ("Integer in YYYYMMDD format corresponding to the day of observation.",
92 "int", int),
93 "observation_counter": ("Counter of this observation. Can be counter within observing_day "
94 " or a global counter. Likely to be observatory specific.",
95 "int", int),
96 }