MakeRawVisitInfo¶
-
class
lsst.obs.base.
MakeRawVisitInfo
(log=None, doStripHeader=False)¶ Bases:
object
Base class functor to make a VisitInfo from the FITS header of a raw image.
A subclass will be wanted for each camera. Subclasses should override:
setArgDict
, The override can call the base implementation,which simply sets exposure time and date of observation
The design philosophy is to make a best effort and log warnings of problems, rather than raising exceptions, in order to extract as much VisitInfo information as possible from a messy FITS header without the user needing to add a lot of error handling.
However, the methods that transform units are less forgiving; they assume the user provides proper data types, since type errors in arguments to those are almost certainly due to coding mistakes.
- Parameters
- log
lsst.log.Log
or None Logger to use for messages. (None to use
Log.getLogger("MakeRawVisitInfo")
).- doStripHeader
bool
, optional Strip header keywords from the metadata as they are used?
- log
Methods Summary
__call__
(md, exposureId)Construct a VisitInfo and strip associated data from the metadata.
Convert zenith distance to altitude (lsst.afw.geom.Angle)
centigradeFromKelvin
(tempK)Convert temperature from Kelvin to Centigrade
defaultMetadata
(value, defaultValue[, …])Return the value if it is not NaN and within min/max, otherwise return defaultValue.
eraFromLstAndLongitude
(lst, longitude)Return an approximate Earth Rotation Angle (afw:Angle) computed from local sidereal time and longitude (both as afw:Angle; Longitude shares the afw:Observatory covention: positive values are E of Greenwich).
getDarkTime
(argDict)Get the darkTime from the DARKTIME keyword, else expTime, else NaN,
getDateAvg
(md, exposureTime)Return date at the middle of the exposure.
offsetDate
(date, offsetSec)Return a date offset by a specified number of seconds.
pascalFromMBar
(mbar)Convert pressure from millibars to Pascals
pascalFromMmHg
(mmHg)Convert pressure from mm Hg to Pascals
pascalFromTorr
(torr)Convert pressure from torr to Pascals
popAngle
(md, key[, units])Pop an lsst.afw.geom.Angle, whose metadata is in the specified units, with a default of Nan
popFloat
(md, key)Pop a float with a default of NaN.
popIsoDate
(md, key[, timesys])Pop a FITS ISO date as an lsst.daf.base.DateTime
popItem
(md, key[, default])Return an item of metadata.
popMjdDate
(md, key[, timesys])Get a FITS MJD date as an
lsst.daf.base.DateTime
.setArgDict
(md, argDict)Fill an argument dict with arguments for VisitInfo and pop associated metadata
Methods Documentation
-
__call__
(md, exposureId)¶ Construct a VisitInfo and strip associated data from the metadata.
- Parameters
- md
lsst.daf.base.PropertyList
orlsst.daf.base.PropertySet
Metadata to pull from. Items that are used are stripped from the metadata (except TIMESYS, because it may apply to other keywords) if
doStripHeader
.- exposureId
int
exposure ID
- md
Notes
The basic implementation sets
date
andexposureTime
using typical values found in FITS files and logs a warning if neither can be set.
-
static
altitudeFromZenithDistance
(zd)¶ Convert zenith distance to altitude (lsst.afw.geom.Angle)
-
static
centigradeFromKelvin
(tempK)¶ Convert temperature from Kelvin to Centigrade
-
static
defaultMetadata
(value, defaultValue, minimum=None, maximum=None)¶ Return the value if it is not NaN and within min/max, otherwise return defaultValue.
-
static
eraFromLstAndLongitude
(lst, longitude)¶ Return an approximate Earth Rotation Angle (afw:Angle) computed from local sidereal time and longitude (both as afw:Angle; Longitude shares the afw:Observatory covention: positive values are E of Greenwich).
NOTE: if we properly compute ERA via UT1 a la DM-8053, we should remove this method.
-
getDarkTime
(argDict)¶ Get the darkTime from the DARKTIME keyword, else expTime, else NaN,
If dark time is available then subclasses should call this method by putting the following in their
__init__
method:argDict['darkTime'] = self.getDarkTime(argDict)
-
getDateAvg
(md, exposureTime)¶ Return date at the middle of the exposure.
- Parameters
- md
lsst.daf.base.PropertyList
orPropertySet
Metadata to pull from. Items that are used are stripped from the metadata (except TIMESYS, because it may apply to other keywords).
- exposureTime
float
Exposure time (sec)
- md
Notes
Subclasses must override. Here is a typical implementation:
dateObs = self.popIsoDate(md, "DATE-OBS") return self.offsetDate(dateObs, 0.5*exposureTime)
-
offsetDate
(date, offsetSec)¶ Return a date offset by a specified number of seconds.
- date
lsst.daf.base.DateTime
Date baseline to offset from.
- offsetSec
float
Offset, in seconds.
- Returns
lsst.daf.base.DateTime
The offset date.
- date
-
static
pascalFromMBar
(mbar)¶ Convert pressure from millibars to Pascals
-
static
pascalFromMmHg
(mmHg)¶ Convert pressure from mm Hg to Pascals
Notes
Could use the following, but astropy.units.cds is not fully compatible with Python 2 as of astropy 1.2.1 (see https://github.com/astropy/astropy/issues/5350#issuecomment-248612824): astropy.units.cds.mmHg.to(astropy.units.pascal, mmHg)
-
static
pascalFromTorr
(torr)¶ Convert pressure from torr to Pascals
-
popAngle
(md, key, units=Unit('deg'))¶ Pop an lsst.afw.geom.Angle, whose metadata is in the specified units, with a default of Nan
The angle may be specified as a float or sexagesimal string with 1-3 fields.
- Parameters
- md
lsst.daf.base.PropertyList
orPropertySet
Metadata to pull
key
from.- key
str
Key to read from md.
- md
- Returns
lsst.afw.geom.Angle
Value of the requested key as an angle; Angle(NaN) if the key is not found.
-
popFloat
(md, key)¶ Pop a float with a default of NaN.
-
popIsoDate
(md, key, timesys=None)¶ Pop a FITS ISO date as an lsst.daf.base.DateTime
- Parameters
- Returns
lsst.daf.base.DateTime
Value of the requested date;
DateTime()
if the key is not found.
-
popItem
(md, key, default=None)¶ Return an item of metadata.
The item is removed if
doStripHeader
isTrue
.Log a warning if the key is not found.
-
popMjdDate
(md, key, timesys=None)¶ Get a FITS MJD date as an
lsst.daf.base.DateTime
.- Parameters
- Returns
lsst.daf.base.DateTime
Value of the requested date;
DateTime()
if the key is not found.
-
setArgDict
(md, argDict)¶ Fill an argument dict with arguments for VisitInfo and pop associated metadata
Subclasses are expected to override this method, though the override may wish to call this default implementation, which:
sets exposureTime from “EXPTIME”
sets date by calling getDateAvg
- Parameters
- md
lsst.daf.base.PropertyList
orPropertySet
Metadata to pull from. Items that are used are stripped from the metadata (except TIMESYS, because it may apply to other keywords).
- argdict
dict
dict of arguments
- md
Notes
Subclasses should expand this or replace it.