lsst.obs.base  20.0.0-54-gba713e9+a7d430d1e1
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
lsst.obs.base.makeRawVisitInfo.MakeRawVisitInfo Class Reference
Inheritance diagram for lsst.obs.base.makeRawVisitInfo.MakeRawVisitInfo:

Public Member Functions

def __init__ (self, log=None, doStripHeader=False)
 
def __call__ (self, md, exposureId)
 
def setArgDict (self, md, argDict)
 
def getDateAvg (self, md, exposureTime)
 
def getDarkTime (self, argDict)
 
def offsetDate (self, date, offsetSec)
 
def popItem (self, md, key, default=None)
 
def popFloat (self, md, key)
 
def popAngle (self, md, key, units=astropy.units.deg)
 
def popIsoDate (self, md, key, timesys=None)
 
def popMjdDate (self, md, key, timesys=None)
 

Static Public Member Functions

def eraFromLstAndLongitude (lst, longitude)
 
def altitudeFromZenithDistance (zd)
 
def centigradeFromKelvin (tempK)
 
def pascalFromMBar (mbar)
 
def pascalFromMmHg (mmHg)
 
def pascalFromTorr (torr)
 
def defaultMetadata (value, defaultValue, minimum=None, maximum=None)
 

Public Attributes

 log
 
 doStripHeader
 

Detailed Description

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 : `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?

Definition at line 47 of file makeRawVisitInfo.py.

Constructor & Destructor Documentation

◆ __init__()

def lsst.obs.base.makeRawVisitInfo.MakeRawVisitInfo.__init__ (   self,
  log = None,
  doStripHeader = False 
)

Definition at line 73 of file makeRawVisitInfo.py.

Member Function Documentation

◆ __call__()

def lsst.obs.base.makeRawVisitInfo.MakeRawVisitInfo.__call__ (   self,
  md,
  exposureId 
)
Construct a VisitInfo and strip associated data from the metadata.

Parameters
----------
md : `lsst.daf.base.PropertyList` or `lsst.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 `date` and `exposureTime` using typical values
found in FITS files and logs a warning if neither can be set.

Definition at line 79 of file makeRawVisitInfo.py.

◆ altitudeFromZenithDistance()

def lsst.obs.base.makeRawVisitInfo.MakeRawVisitInfo.altitudeFromZenithDistance (   zd)
static
Convert zenith distance to altitude (lsst.afw.geom.Angle)

Definition at line 365 of file makeRawVisitInfo.py.

◆ centigradeFromKelvin()

def lsst.obs.base.makeRawVisitInfo.MakeRawVisitInfo.centigradeFromKelvin (   tempK)
static
Convert temperature from Kelvin to Centigrade

Definition at line 370 of file makeRawVisitInfo.py.

◆ defaultMetadata()

def lsst.obs.base.makeRawVisitInfo.MakeRawVisitInfo.defaultMetadata (   value,
  defaultValue,
  minimum = None,
  maximum = None 
)
static
Return the value if it is not NaN and within min/max, otherwise
return defaultValue.

Parameters
----------
value : `float`
    metadata value returned by popItem, popFloat, or popAngle
defaultValue : `float``
    default value to use if the metadata value is invalid
minimum : `float`
    Minimum possible valid value, optional
maximum : `float`
    Maximum possible valid value, optional

Returns
-------
`float`
    The "validated" value.

Definition at line 399 of file makeRawVisitInfo.py.

◆ eraFromLstAndLongitude()

def lsst.obs.base.makeRawVisitInfo.MakeRawVisitInfo.eraFromLstAndLongitude (   lst,
  longitude 
)
static
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.

Definition at line 353 of file makeRawVisitInfo.py.

◆ getDarkTime()

def lsst.obs.base.makeRawVisitInfo.MakeRawVisitInfo.getDarkTime (   self,
  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.

Definition at line 150 of file makeRawVisitInfo.py.

◆ getDateAvg()

def lsst.obs.base.makeRawVisitInfo.MakeRawVisitInfo.getDateAvg (   self,
  md,
  exposureTime 
)
Return date at the middle of the exposure.

Parameters
----------
md : `lsst.daf.base.PropertyList` or `PropertySet`
    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)

Definition at line 129 of file makeRawVisitInfo.py.

◆ offsetDate()

def lsst.obs.base.makeRawVisitInfo.MakeRawVisitInfo.offsetDate (   self,
  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.

Definition at line 179 of file makeRawVisitInfo.py.

◆ pascalFromMBar()

def lsst.obs.base.makeRawVisitInfo.MakeRawVisitInfo.pascalFromMBar (   mbar)
static
Convert pressure from millibars to Pascals

Definition at line 375 of file makeRawVisitInfo.py.

◆ pascalFromMmHg()

def lsst.obs.base.makeRawVisitInfo.MakeRawVisitInfo.pascalFromMmHg (   mmHg)
static
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)

Definition at line 381 of file makeRawVisitInfo.py.

◆ pascalFromTorr()

def lsst.obs.base.makeRawVisitInfo.MakeRawVisitInfo.pascalFromTorr (   torr)
static
Convert pressure from torr to Pascals

Definition at line 393 of file makeRawVisitInfo.py.

◆ popAngle()

def lsst.obs.base.makeRawVisitInfo.MakeRawVisitInfo.popAngle (   self,
  md,
  key,
  units = astropy.units.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` or `PropertySet`
    Metadata to pull `key` from.
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.

Definition at line 259 of file makeRawVisitInfo.py.

◆ popFloat()

def lsst.obs.base.makeRawVisitInfo.MakeRawVisitInfo.popFloat (   self,
  md,
  key 
)
Pop a float with a default of NaN.

Parameters
----------
md : `lsst.daf.base.PropertyList` or `PropertySet`
    Metadata to pull `key` from.
key : `str`
    Key to read.

Returns
-------
`float`
    Value of the requested key as a float; float("nan") if the key is
    not found.

Definition at line 236 of file makeRawVisitInfo.py.

◆ popIsoDate()

def lsst.obs.base.makeRawVisitInfo.MakeRawVisitInfo.popIsoDate (   self,
  md,
  key,
  timesys = None 
)
Pop a FITS ISO date as an lsst.daf.base.DateTime

Parameters
----------
md : `lsst.daf.base.PropertyList` or `PropertySet`
    Metadata to pull `key` from.
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.

Definition at line 285 of file makeRawVisitInfo.py.

◆ popItem()

def lsst.obs.base.makeRawVisitInfo.MakeRawVisitInfo.popItem (   self,
  md,
  key,
  default = None 
)
Return an item of metadata.

The item is removed if ``doStripHeader`` is ``True``.

Log a warning if the key is not found.

Parameters
----------
md : `lsst.daf.base.PropertyList` or `PropertySet`
    Metadata to pull `key` from and (optionally) remove.
key : `str`
    Metadata key to extract.
default : `object`
    Value to return if key not found.

Returns
-------
`object`
    The value of the specified key, using whatever type md.getScalar(key)
    returns.

Definition at line 201 of file makeRawVisitInfo.py.

◆ popMjdDate()

def lsst.obs.base.makeRawVisitInfo.MakeRawVisitInfo.popMjdDate (   self,
  md,
  key,
  timesys = None 
)
Get a FITS MJD date as an ``lsst.daf.base.DateTime``.

Parameters
----------
md : `lsst.daf.base.PropertyList` or `PropertySet`
    Metadata to pull `key` from.
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.

Definition at line 320 of file makeRawVisitInfo.py.

◆ setArgDict()

def lsst.obs.base.makeRawVisitInfo.MakeRawVisitInfo.setArgDict (   self,
  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` or `PropertySet`
    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.

Definition at line 104 of file makeRawVisitInfo.py.

Member Data Documentation

◆ doStripHeader

lsst.obs.base.makeRawVisitInfo.MakeRawVisitInfo.doStripHeader

Definition at line 77 of file makeRawVisitInfo.py.

◆ log

lsst.obs.base.makeRawVisitInfo.MakeRawVisitInfo.log

Definition at line 76 of file makeRawVisitInfo.py.


The documentation for this class was generated from the following file: