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
 
- getDateAvg
 - 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 : logging.Loggeror None
- Logger to use for messages. (None to use - logging.getLogger("lsst.obs.base.makeRawVisitInfo")).
- doStripHeader : bool, optional
- Strip header keywords from the metadata as they are used? 
 - Methods Summary - __call__(md, exposureId)- Construct a VisitInfo and strip associated data from the metadata. - altitudeFromZenithDistance(zd)- 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.PropertyListorlsst.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 
 - Notes - The basic implementation sets - dateand- exposureTimeusing typical values found in FITS files and logs a warning if neither can be set.
- md : 
 - 
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. - Parameters: - Returns: - `float`
- The “validated” value. 
 
 - 
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) - Parameters: - argdict : dict
- Dict of arguments. 
 - Returns: - `float`
- Dark time, as inferred from the metadata. 
 
- argdict : 
 - 
getDateAvg(md, exposureTime)¶
- Return date at the middle of the exposure. - Parameters: - md : lsst.daf.base.PropertyListorPropertySet
- 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) 
 - Notes - Subclasses must override. Here is a typical implementation: - dateObs = self.popIsoDate(md, "DATE-OBS") return self.offsetDate(dateObs, 0.5*exposureTime) 
- md : 
 - 
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.PropertyListorPropertySet
- Metadata to pull - keyfrom.
- key : str
- Key to read from md. 
 - Returns: - `lsst.afw.geom.Angle`
- Value of the requested key as an angle; Angle(NaN) if the key is not found. 
 
- md : 
 - 
popFloat(md, key)¶
- Pop a float with a default of NaN. - Parameters: - md : lsst.daf.base.PropertyListorPropertySet
- Metadata to pull - keyfrom.
- key : str
- Key to read. 
 - Returns: - `float`
- Value of the requested key as a float; float(“nan”) if the key is not found. 
 
- md : 
 - 
popIsoDate(md, key, timesys=None)¶
- Pop a FITS ISO date as an lsst.daf.base.DateTime - Parameters: - md : lsst.daf.base.PropertyListorPropertySet
- Metadata to pull - keyfrom.
- key : str
- Date key to read from md. 
- timesys : str
- Time system as a string (not case sensitive), e.g. “UTC” or None; if None then look for TIMESYS (but do NOT pop it, since it may be used for more than one date) and if not found, use UTC. 
 - Returns: - `lsst.daf.base.DateTime`
- Value of the requested date; - DateTime()if the key is not found.
 
- md : 
 - 
popItem(md, key, default=None)¶
- Return an item of metadata. - The item is removed if - doStripHeaderis- True.- Log a warning if the key is not found. - Parameters: - Returns: - `object`
- The value of the specified key, using whatever type md.getScalar(key) returns. 
 
 - 
popMjdDate(md, key, timesys=None)¶
- Get a FITS MJD date as an - lsst.daf.base.DateTime.- Parameters: - md : lsst.daf.base.PropertyListorPropertySet
- Metadata to pull - keyfrom.
- key : str
- Date key to read from md. 
- timesys : str
- Time system as a string (not case sensitive), e.g. “UTC” or None; if None then look for TIMESYS (but do NOT pop it, since it may be used for more than one date) and if not found, use UTC. 
 - Returns: - `lsst.daf.base.DateTime`
- Value of the requested date; - DateTime()if the key is not found.
 
- md : 
 - 
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.PropertyListorPropertySet
- 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 
 - Notes - Subclasses should expand this or replace it.