ObservationDimensionPacker¶
- class lsst.pipe.base.ObservationDimensionPacker(data_id: DataCoordinate, config: ObservationDimensionPackerConfig | None = None, is_exposure: bool | None = None)¶
Bases:
DimensionPackerA
DimensionPackerfor visit+detector or exposure+detector.- Parameters:
- data_id
lsst.daf.butler.DataCoordinate Data ID that identifies at least the
instrumentdimension. Must have dimension records attached unlessconfig.n_detectorsandconfig.n_visitsare both notNone.- config
ObservationDimensionPackerConfig, optional Configuration for this dimension packer.
- is_exposure
bool, optional If
False, construct a packer for visit+detector data IDs. IfTrue, construct a packer for exposure+detector data IDs. IfNone, this is determined based on whethervisitorexposureis present indata_id, withvisitchecked first and hence used if both are present.
- data_id
Notes
The standard pattern for constructing instances of the class is to use
Instrument.make_dimension_packer; see that method for details.This packer assumes all visit/exposure and detector IDs are sequential or otherwise densely packed between zero and their upper bound, such that
n_detectors*n_observationsleaves plenty of bits remaining for any other IDs that need to be included in the same integer (such as a counter for Sources detected on an image with this data ID). Instruments whose data ID values are not densely packed, should provide their ownDimensionPackerthat takes advantage of the structure of its IDs to compress them into fewer bits.Attributes Summary
The dimensions of data IDs packed by this instance (
DimensionGraph).Return The maximum number of nonzero bits in the packed ID.
Graph containing all known dimensions (
DimensionUniverse).Methods Summary
pack([dataId, returnMaxBits])Pack the given data ID into a single integer.
unpack(packedId)Unpack an ID produced by
packinto a fullDataCoordinate.Attributes Documentation
- dimensions¶
The dimensions of data IDs packed by this instance (
DimensionGraph).After v27 this will be a
DimensionGroup.
- maxBits¶
- universe¶
Graph containing all known dimensions (
DimensionUniverse).
Methods Documentation
- pack(dataId: DataCoordinate | Mapping[str, Any] | None = None, *, returnMaxBits: bool = False, **kwargs: Any) tuple[int, int] | int¶
Pack the given data ID into a single integer.
- Parameters:
- dataId
DataId Data ID to pack. Values for any keys also present in the “fixed” data ID passed at construction must be the same as the values passed at construction, but in general you must still specify those keys.
- returnMaxBits
bool If
True, return a tuple of(packed, self.maxBits).- **kwargs
Additional keyword arguments are treated like additional key-value pairs in
dataId.
- dataId
- Returns:
Notes
Should not be overridden by derived class (
_packshould be overridden instead).
- unpack(packedId: int) DataCoordinate¶
Unpack an ID produced by
packinto a fullDataCoordinate.Must be implemented by all concrete derived classes.
- Parameters:
- packedId
int The result of a call to
packon eitherselfor an identically-constructed packer instance.
- packedId
- Returns:
- dataId
DataCoordinate Dictionary-like ID that uniquely identifies all covered dimensions.
- dataId