ObservationDimensionPacker¶
- class lsst.pipe.base.ObservationDimensionPacker(data_id: DataCoordinate, config: ObservationDimensionPackerConfig | None = None, is_exposure: bool | None = None)¶
Bases:
DimensionPacker
A
DimensionPacker
for visit+detector or exposure+detector.- Parameters:
- data_id
lsst.daf.butler.DataCoordinate
Data ID that identifies at least the
instrument
dimension. Must have dimension records attached unlessconfig.n_detectors
andconfig.n_visits
are 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 whethervisit
orexposure
is present indata_id
, withvisit
checked 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_observations
leaves 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 ownDimensionPacker
that 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
pack
into 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 (
_pack
should be overridden instead).
- unpack(packedId: int) DataCoordinate ¶
Unpack an ID produced by
pack
into a fullDataCoordinate
.Must be implemented by all concrete derived classes.
- Parameters:
- packedId
int
The result of a call to
pack
on eitherself
or an identically-constructed packer instance.
- packedId
- Returns:
- dataId
DataCoordinate
Dictionary-like ID that uniquely identifies all covered dimensions.
- dataId