LSSTApplications  17.0+11,17.0+34,17.0+56,17.0+57,17.0+59,17.0+7,17.0-1-g377950a+33,17.0.1-1-g114240f+2,17.0.1-1-g4d4fbc4+28,17.0.1-1-g55520dc+49,17.0.1-1-g5f4ed7e+52,17.0.1-1-g6dd7d69+17,17.0.1-1-g8de6c91+11,17.0.1-1-gb9095d2+7,17.0.1-1-ge9fec5e+5,17.0.1-1-gf4e0155+55,17.0.1-1-gfc65f5f+50,17.0.1-1-gfc6fb1f+20,17.0.1-10-g87f9f3f+1,17.0.1-11-ge9de802+16,17.0.1-16-ga14f7d5c+4,17.0.1-17-gc79d625+1,17.0.1-17-gdae4c4a+8,17.0.1-2-g26618f5+29,17.0.1-2-g54f2ebc+9,17.0.1-2-gf403422+1,17.0.1-20-g2ca2f74+6,17.0.1-23-gf3eadeb7+1,17.0.1-3-g7e86b59+39,17.0.1-3-gb5ca14a,17.0.1-3-gd08d533+40,17.0.1-30-g596af8797,17.0.1-4-g59d126d+4,17.0.1-4-gc69c472+5,17.0.1-6-g5afd9b9+4,17.0.1-7-g35889ee+1,17.0.1-7-gc7c8782+18,17.0.1-9-gc4bbfb2+3,w.2019.22
LSSTDataManagementBasePackage
makeTestRawVisitInfo.py
Go to the documentation of this file.
1 # This file is part of obs_test.
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/>.
21 #
22 __all__ = ["MakeTestRawVisitInfo"]
23 
24 from lsst.afw.image import VisitInfo, RotType
25 from lsst.afw.geom import degrees, SpherePoint
26 from lsst.afw.coord import Observatory, Weather
27 from lsst.obs.base import MakeRawVisitInfo
28 
29 
31  """Make a VisitInfo from the FITS header of a test image.
32 
33  Notes
34  -----
35  Since the test data is extracted from LSST Sim data,
36  this is a copy of MakeLsstSimRawVisitInfo
37  (using a copy avoids undesireable dependencies).
38  """
39  observatory = Observatory(-70.749417*degrees, -30.244633*degrees, 2663) # long, lat, elev
40 
41  def setArgDict(self, md, argDict):
42  """Set an argument dict for VisitInfo and pop associated metadata.
43 
44  Parameters
45  ----------
46  md : `lsst.daf.base.PropertySet`
47  Image metadata.
48  argDict : `dict`
49  A dict of arguments for the `lsst.afw.image.VisitInfo`
50  constructor. Updated by this call.
51 
52  Returns
53  -------
54  visitInfo : `lsst.afw.image.VisitInfo`
55  Visit information.
56  """
57  MakeRawVisitInfo.setArgDict(self, md, argDict)
58  argDict["darkTime"] = self.popFloat(md, "DARKTIME")
59  argDict["boresightAzAlt"] = SpherePoint(
60  self.popAngle(md, "AZIMUTH"),
61  self.altitudeFromZenithDistance(self.popAngle(md, "ZENITH")),
62  )
63  argDict["boresightRaDec"] = SpherePoint(
64  self.popAngle(md, "RA_DEG"),
65  self.popAngle(md, "DEC_DEG"),
66  )
67  argDict["boresightAirmass"] = self.popFloat(md, "AIRMASS")
68  argDict["boresightRotAngle"] = -self.popAngle(md, "ROTANG")
69  argDict["rotType"] = RotType.SKY
70  argDict["observatory"] = self.observatory
71  argDict["weather"] = Weather(
72  self.popFloat(md, "TEMPERA"),
73  self.pascalFromMmHg(self.popFloat(md, "PRESS")),
74  float("nan"),
75  )
76  return VisitInfo(**argDict)
77 
78  def getDateAvg(self, md, exposureTime):
79  """Return date at the middle of the exposure.
80 
81  Parameters
82  ----------
83  md : `lsst.daf.base.PropertySet`
84  Image metadata.
85  exposureTime : `float`
86  Exposure time, in sec
87 
88  Returns
89  -------
90  dateAvg : `lsst.daf.base.DateTime`
91  Date at middle of the exposure, or `lsst.daf.base.DateTime()`
92  if the metadata item ``TAI`` is not found.
93  """
94  startDate = self.popMjdDate(md, "TAI", timesys="TAI")
95  return self.offsetDate(startDate, 0.5*exposureTime)
Hold the location of an observatory.
Definition: Observatory.h:43
Information about a single exposure of an imaging camera.
Definition: VisitInfo.h:68
def popAngle(self, md, key, units=astropy.units.deg)
def popMjdDate(self, md, key, timesys=None)
Basic weather information sufficient for a simple model for air mass or refraction.
Definition: Weather.h:38
Point in an unspecified spherical coordinate system.
Definition: SpherePoint.h:57
Backwards-compatibility support for depersisting the old Calib (FluxMag0/FluxMag0Err) objects...