FitsRawFormatterBase¶
-
class
lsst.obs.base.
FitsRawFormatterBase
(*args, **kwargs)¶ Bases:
lsst.obs.base.formatters.fitsExposure.FitsExposureFormatter
Abstract base class for reading and writing raw data to and from FITS files.
Attributes Summary
dataId
DataId associated with this formatter ( DataCoordinate
)extension
fileDescriptor
FileDescriptor associated with this formatter ( FileDescriptor
, read-only)filterDefinitions
FilterDefinitions
, defining the filters for this instrument.metadata
The metadata read from this file. observationInfo
The ObservationInfo
extracted from this file’s metadata (ObservationInfo
, read-only).supportedExtensions
supportedWriteParameters
translatorClass
MetadataTranslator
to translate metadata header toObservationInfo
.unsupportedParameters
wcsFlipX
Control whether the WCS is flipped in the X-direction ( bool
)writeParameters
Parameters to use when writing out datasets. writeRecipes
Detailed write Recipes indexed by recipe name. Methods Summary
can_read_bytes
()Indicate if this formatter can format from bytes. fromBytes
(serializedDataset, component)Reads serialized data into a Dataset or its component. fromMetadata
(metadata[, obsInfo, …])Construct a possibly-limited formatter from known metadata. getDetector
(id)Return the detector that acquired this raw exposure. getImageCompressionSettings
(recipeName)Retrieve the relevant compression settings for this recipe. isOnSky
()Boolean to determine if the exposure is thought to be on the sky. makeFilter
()Construct a Filter from metadata. makeRawSkyWcsFromBoresight
(boresight, …)Class method to make a raw sky WCS from boresight and detector. makeUpdatedLocation
(location)Return a new Location
instance updated with this formatter’s extension.makeVisitInfo
()Construct a VisitInfo from metadata. makeWcs
(visitInfo, detector)Create a SkyWcs from information about the exposure. name
()Returns the fully qualified name of the formatter. predictPath
()Return the path that would be returned by write, without actually writing. read
([component])Read data from a file. readComponent
(component[, parameters])Read a component held by the Exposure. readFull
([parameters])Read the full Exposure object. readImage
()Read just the image component of the Exposure. readMask
()Read just the mask component of the Exposure. readMetadata
()Read all header metadata directly into a PropertyList. readRawHeaderWcs
([parameters])Read the SkyWcs stored in the un-modified raw FITS WCS header keys. readVariance
()Read just the variance component of the Exposure. segregateParameters
(parameters, Any]] = None)Segregate the supplied parameters into those understood by the formatter and those not understood by the formatter. stripMetadata
()Remove metadata entries that are parsed into components. toBytes
(inMemoryDataset)Serialize the Dataset to bytes based on formatter. validateExtension
(location)Check that the provided location refers to a file extension that is understood by this formatter. validateWriteRecipes
(recipes)Validate supplied recipes for this formatter. write
(inMemoryDataset)Write a Python object to a file. Attributes Documentation
-
dataId
¶ DataId associated with this formatter (
DataCoordinate
)
-
extension
= '.fits'¶
-
fileDescriptor
¶ FileDescriptor associated with this formatter (
FileDescriptor
, read-only)
-
filterDefinitions
¶ FilterDefinitions
, defining the filters for this instrument.
-
metadata
¶ The metadata read from this file. It will be stripped as components are extracted from it (
lsst.daf.base.PropertyList
).
-
observationInfo
¶ The
ObservationInfo
extracted from this file’s metadata (ObservationInfo
, read-only).
-
supportedExtensions
= frozenset({'.fits', '.fz', '.fits.fz', '.fit', '.fits.gz'})¶
-
supportedWriteParameters
= frozenset({'recipe'})¶
-
translatorClass
¶ MetadataTranslator
to translate metadata header toObservationInfo
.
-
unsupportedParameters
= {}¶
-
writeParameters
¶ Parameters to use when writing out datasets.
-
writeRecipes
¶ Detailed write Recipes indexed by recipe name.
Methods Documentation
-
classmethod
can_read_bytes
() → bool¶ Indicate if this formatter can format from bytes.
Returns:
-
fromBytes
(serializedDataset: bytes, component: Optional[str] = None) → object¶ Reads serialized data into a Dataset or its component.
Parameters: Returns: - inMemoryDataset :
object
The requested data as a Python object. The type of object is controlled by the specific formatter.
- inMemoryDataset :
-
classmethod
fromMetadata
(metadata, obsInfo=None, storageClass=None, location=None)¶ Construct a possibly-limited formatter from known metadata.
Parameters: - metadata :
lsst.daf.base.PropertyList
Raw header metadata, with any fixes (see
astro_metadata_translator.fix_header
) applied but nothing stripped.- obsInfo :
astro_metadata_translator.ObservationInfo
, optional Structured information already extracted from
metadata
. If not provided, will be read frommetadata
on first use.- storageClass :
lsst.daf.butler.StorageClass
, optional StorageClass for this file. If not provided, the formatter will only support
makeWcs
,makeVisitInfo
,makeFilter
, and other operations that operate purely on metadata and not the actual file.- location :
lsst.daf.butler.Location
, optional. Location of the file. If not provided, the formatter will only support
makeWcs
,makeVisitInfo
,makeFilter
, and other operations that operate purely on metadata and not the actual file.
Returns: - formatter :
FitsRawFormatterBase
An instance of
cls
.
- metadata :
-
getDetector
(id)¶ Return the detector that acquired this raw exposure.
Parameters: - id :
int
The identifying number of the detector to get.
Returns: - detector :
Detector
The detector associated with that
id
.
- id :
-
getImageCompressionSettings
(recipeName)¶ Retrieve the relevant compression settings for this recipe.
Parameters: - recipeName :
str
Label associated with the collection of compression parameters to select.
Returns: - settings :
dict
The selected settings.
- recipeName :
-
isOnSky
()¶ Boolean to determine if the exposure is thought to be on the sky.
Returns: Notes
If there is tracking RA/Dec information associated with the observation it is assumed that the observation is on sky. Currently the observation type is not checked.
-
makeFilter
()¶ Construct a Filter from metadata.
Returns: - filter :
Filter
Object that identifies the filter for this image.
Raises: - NotFoundError
Raised if the physical filter was not registered via
defineFilter
.
- filter :
-
classmethod
makeRawSkyWcsFromBoresight
(boresight, orientation, detector)¶ Class method to make a raw sky WCS from boresight and detector.
Parameters: - boresight :
lsst.geom.SpherePoint
The ICRS boresight RA/Dec
- orientation :
lsst.geom.Angle
The rotation angle of the focal plane on the sky.
- detector :
lsst.afw.cameraGeom.Detector
Where to get the camera geomtry from.
Returns: - skyWcs :
SkyWcs
Reversible mapping from pixel coordinates to sky coordinates.
- boresight :
-
makeUpdatedLocation
(location: lsst.daf.butler.core.location.Location) → lsst.daf.butler.core.location.Location¶ Return a new
Location
instance updated with this formatter’s extension.Parameters: - location :
Location
The location to update.
Returns: - updated :
Location
A new
Location
with a new file extension applied.
Raises: - NotImplementedError
Raised if there is no
extension
attribute associated with this formatter.
Notes
This method is available to all Formatters but might not be implemented by all formatters. It requires that a formatter set an
extension
attribute containing the file extension used when writing files. Ifextension
isNone
the supplied file will not be updated. Not all formatters write files so this is not defined in the base class.- location :
-
makeVisitInfo
()¶ Construct a VisitInfo from metadata.
Returns: - visitInfo :
VisitInfo
Structured metadata about the observation.
- visitInfo :
-
makeWcs
(visitInfo, detector)¶ Create a SkyWcs from information about the exposure.
If VisitInfo is not None, use it and the detector to create a SkyWcs, otherwise return the metadata-based SkyWcs (always created, so that the relevant metadata keywords are stripped).
Parameters: - visitInfo :
VisitInfo
The information about the telescope boresight and camera orientation angle for this exposure.
- detector :
Detector
The detector used to acquire this exposure.
Returns: - skyWcs :
SkyWcs
Reversible mapping from pixel coordinates to sky coordinates.
Raises: - InitialSkyWcsError
Raised if there is an error generating the SkyWcs, chained from the lower-level exception if available.
- visitInfo :
-
classmethod
name
() → str¶ Returns the fully qualified name of the formatter.
Returns: - name :
str
Fully-qualified name of formatter class.
- name :
-
predictPath
() → str¶ Return the path that would be returned by write, without actually writing.
Uses the
FileDescriptor
associated with the instance.Returns: - path :
str
Path within datastore that would be associated with the location stored in this
Formatter
.
- path :
-
read
(component=None)¶ Read data from a file.
Parameters: - component :
str
, optional Component to read from the file. Only used if the
StorageClass
for reading differed from theStorageClass
used to write the file.
Returns: - inMemoryDataset :
object
The requested data as a Python object. The type of object is controlled by the specific formatter.
Raises: - ValueError
Component requested but this file does not seem to be a concrete composite.
- KeyError
Raised when parameters passed with fileDescriptor are not supported.
- component :
-
readComponent
(component, parameters=None)¶ Read a component held by the Exposure.
Parameters: Returns: - obj : component-dependent
In-memory component object.
Raises: - KeyError
Raised if the requested component cannot be handled.
-
readFull
(parameters=None)¶ Read the full Exposure object.
Parameters: - parameters :
dict
, optional If specified, a dictionary of slicing parameters that overrides those in the
fileDescriptor
attribute.
Returns: - exposure :
Exposure
Complete in-memory exposure.
- parameters :
-
readImage
()¶ Read just the image component of the Exposure.
Returns: - image :
Image
In-memory image component.
- image :
-
readMask
()¶ Read just the mask component of the Exposure.
May return None (as the default implementation does) to indicate that there is no mask information to be extracted (at least not trivially) from the raw data. This will prohibit direct reading of just the mask, and set the mask of the full Exposure to zeros.
Returns: - mask :
Mask
In-memory mask component.
- mask :
-
readMetadata
()¶ Read all header metadata directly into a PropertyList.
Returns: - metadata :
PropertyList
Header metadata.
- metadata :
-
readRawHeaderWcs
(parameters=None)¶ Read the SkyWcs stored in the un-modified raw FITS WCS header keys.
-
readVariance
()¶ Read just the variance component of the Exposure.
May return None (as the default implementation does) to indicate that there is no variance information to be extracted (at least not trivially) from the raw data. This will prohibit direct reading of just the variance, and set the variance of the full Exposure to zeros.
Returns: - image :
Image
In-memory variance component.
- image :
-
segregateParameters
(parameters: Optional[Dict[str, Any]] = None) → Tuple[Dict[KT, VT], Dict[KT, VT]]¶ Segregate the supplied parameters into those understood by the formatter and those not understood by the formatter.
Any unsupported parameters are assumed to be usable by associated assemblers.
Parameters: Returns:
-
stripMetadata
()¶ Remove metadata entries that are parsed into components.
-
toBytes
(inMemoryDataset: Any) → bytes¶ Serialize the Dataset to bytes based on formatter.
Parameters: - inMemoryDataset :
object
The Python object to serialize.
Returns: - serializedDataset :
bytes
Bytes representing the serialized dataset.
- inMemoryDataset :
-
classmethod
validateExtension
(location: lsst.daf.butler.core.location.Location) → None¶ Check that the provided location refers to a file extension that is understood by this formatter.
Parameters: - location :
Location
Location from which to extract a file extension.
Raises: - NotImplementedError
Raised if file extensions are a concept not understood by this formatter.
- ValueError
Raised if the formatter does not understand this extension.
Notes
This method is available to all Formatters but might not be implemented by all formatters. It requires that a formatter set an
extension
attribute containing the file extension used when writing files. Ifextension
isNone
only the set of supported extensions will be examined.- location :
-
classmethod
validateWriteRecipes
(recipes)¶ Validate supplied recipes for this formatter.
The recipes are supplemented with default values where appropriate.
TODO: replace this custom validation code with Cerberus (DM-11846)
Parameters: Returns: - validated :
dict
Validated recipes. Returns what was given if there are no recipes listed.
Raises: - RuntimeError
Raised if validation fails.
- validated :
-