FitsImageFormatter¶
-
class
lsst.obs.base.formatters.fitsExposure.
FitsImageFormatter
(fileDescriptor: FileDescriptor, dataId: DataCoordinate, writeParameters: Optional[Dict[str, Any]] = None, writeRecipes: Optional[Dict[str, Any]] = None)¶ Bases:
lsst.obs.base.formatters.fitsExposure.FitsImageFormatterBase
Specialisation for
Image
reading.Attributes Summary
dataId
Return Data ID associated with this formatter ( DataCoordinate
).extension
fileDescriptor
File descriptor associated with this formatter ( FileDescriptor
).metadata
The metadata read from this file. supportedExtensions
supportedWriteParameters
unsupportedParameters
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)Read serialized data into a Dataset or its component. getImageCompressionSettings
(recipeName)Retrieve the relevant compression settings for this recipe. makeUpdatedLocation
(location)Return a new Location
updated with this formatter’s extension.name
()Return the fully qualified name of the formatter. predictPath
()Return the path that would be returned by write. read
([component])Read data from a file. readComponent
(component[, parameters])Read a component held by the Exposure. readFull
([parameters])Read the full Exposure object. readMetadata
()Read all header metadata directly into a PropertyList. segregateParameters
(parameters, Any]] = None)Segregate the supplied parameters. stripMetadata
()Remove metadata entries that are parsed into components. toBytes
(inMemoryDataset)Serialize the Dataset to bytes based on formatter. validateExtension
(location)Check the extension of the provided location for compatibility. validateWriteRecipes
(recipes)Validate supplied recipes for this formatter. write
(inMemoryDataset)Write a Python object to a file. Attributes Documentation
-
dataId
¶ Return Data ID associated with this formatter (
DataCoordinate
).
-
extension
= '.fits'¶
-
fileDescriptor
¶ File descriptor associated with this formatter (
FileDescriptor
).Read-only property.
-
metadata
¶ The metadata read from this file. It will be stripped as components are extracted from it (
lsst.daf.base.PropertyList
).
-
supportedExtensions
= frozenset({'.fz', '.fit', '.fits.fz', '.fits', '.fits.gz'})¶
-
supportedWriteParameters
= frozenset({'recipe'})¶
-
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¶ Read 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 :
-
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 :
-
makeUpdatedLocation
(location: lsst.daf.butler.core.location.Location) → lsst.daf.butler.core.location.Location¶ Return a new
Location
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 :
-
classmethod
name
() → str¶ Return 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.
Does not write any data file.
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
fileDescriptor
.
Returns: - exposure :
Exposure
Complete in-memory exposure.
- parameters :
-
readMetadata
()¶ Read all header metadata directly into a PropertyList.
Returns: - metadata :
PropertyList
Header metadata.
- metadata :
-
segregateParameters
(parameters: Optional[Dict[str, Any]] = None) → Tuple[Dict[KT, VT], Dict[KT, VT]]¶ Segregate the supplied parameters.
This splits the 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.
This is only called when just the metadata is requested; stripping entries there forces code that wants other components to ask for those components directly rather than trying to extract them from the metadata manually, which is fragile. This behavior is an intentional change from Gen2.
Parameters: - metadata :
PropertyList
Header metadata, to be modified in-place.
- metadata :
-
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 the extension of the provided location for compatibility.
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 :
-