FitsExposureFormatter¶
-
class
lsst.obs.base.formatters.fitsExposure.FitsExposureFormatter(fileDescriptor: FileDescriptor, dataId: DataCoordinate, writeParameters: Optional[Dict[str, Any]] = None, writeRecipes: Optional[Dict[str, Any]] = None)¶ Bases:
lsst.obs.base.formatters.fitsExposure.FitsMaskedImageFormatterConcrete formatter for reading/writing
Exposurefrom/to FITS.Notes
This class inherits from
FitsMaskedImageFormattereven thoughlsst.afw.image.Exposuredoesn’t inherit fromlsst.afw.image.MaskedImage; this is just an easy way to be able to delegate toFitsMaskedImageFormatter.super()for component-handling, and should be replaced with e.g. both calling a free function if that slight type covariance violation ever becomes a practical problem.Attributes Summary
checked_parametersThe parameters passed by the butler user, after checking them against the storage class and transforming Noneinto an emptydict(dict).dataIdReturn Data ID associated with this formatter ( DataCoordinate).extensionfileDescriptorFile descriptor associated with this formatter ( FileDescriptor).readerThe reader object that backs this formatter’s read operations. supportedExtensionssupportedWriteParametersunsupportedParameterswriteParametersParameters to use when writing out datasets. writeRecipesDetailed 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 Locationupdated 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 a Dataset. readComponent(component)Read a component dataset. readFull()Read the full dataset (while still accounting for parameters). segregateParameters(parameters, Any]] = None)Segregate the supplied parameters. 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
-
checked_parameters¶ The parameters passed by the butler user, after checking them against the storage class and transforming
Noneinto an emptydict(dict).This is computed on first use and then cached. It should never be accessed when writing. Subclasses that need additional checking should delegate to
superand then check the result before returning it.
-
dataId¶ Return Data ID associated with this formatter (
DataCoordinate).
-
extension= '.fits'¶
-
fileDescriptor¶ File descriptor associated with this formatter (
FileDescriptor).Read-only property.
-
reader¶ The reader object that backs this formatter’s read operations.
This is computed on first use and then cached. It should never be accessed when writing.
-
supportedExtensions= frozenset({'.fz', '.fit', '.fits', '.fits.gz', '.fits.fz'})¶
-
supportedWriteParameters= frozenset({'recipe'})¶
-
unsupportedParameters= frozenset()¶
-
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
Locationupdated with this formatter’s extension.Parameters: - location :
Location The location to update.
Returns: - updated :
Location A new
Locationwith a new file extension applied.
Raises: - NotImplementedError
Raised if there is no
extensionattribute 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
extensionattribute containing the file extension used when writing files. IfextensionisNonethe 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
FileDescriptorassociated 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 a Dataset.
Parameters: - component :
str, optional Component to read from the file. Only used if the
StorageClassfor reading differed from theStorageClassused to write the file.
Returns: - inMemoryDataset :
object The requested Dataset.
- component :
-
readComponent(component)¶ Read a component dataset.
Parameters: - component :
str, optional Component to read from the file.
Returns: - obj : component-dependent
In-memory component object.
Raises: - KeyError
Raised if the requested component cannot be handled.
- component :
-
readFull()¶ Read the full dataset (while still accounting for parameters).
Returns: - obj : component-dependent
In-memory component object.
-
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:
-
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
extensionattribute containing the file extension used when writing files. IfextensionisNoneonly 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 :
-