ExpandedDataCoordinate¶
-
class
lsst.daf.butler.
ExpandedDataCoordinate
¶ Bases:
lsst.daf.butler.DataCoordinate
A data ID that has been expanded to include all relevant metadata.
Instances should usually be obtained by calling
Registry.expandDataId
.Parameters: - graph :
DimensionGraph
The dimensions identified by this instance.
- values :
tuple
Tuple of primary key values for the given dimensions.
- records :
Mapping
Dictionary mapping
DimensionElement
toDimensionRecord
.- full :
Mapping
Dictionary mapping dimensions to their primary key values for all dimensions in the graph, not just required ones. Ignored unless
conform
isFalse.
- region :
sphgeom.Region
, optional Region on the sky associated with this data ID, or
None
if there are no spatial dimensions. At present, this may be the special valueNotImplemented
if there multiple spatial dimensions identified; in the future this will be replaced with the intersection. Ignored unlessconform
isFalse
.Timespan- timespan :
Timespan
, optionalTimespan Timespan associated with this data ID, or
None
if there are no temporal dimensions. Ignored unlessconform
isFalse
.- conform :
bool
, optional If
True
(default), adapt arguments from arbitrary mappings to the custom dictionary types and check that all expected key-value pairs are present.False
is only for internal use.
Notes
To maintain Liskov substitutability with
DataCoordinate
,ExpandedDataCoordinate
mostly acts like a mapping that contains only values for its graph’s required dimensions, even though it also contains values for all implied dimensions - its length, iteration, and keys/values/items views reflect only required dimensions. Values for the primary keys of implied dimensions can be obtained from thefull
attribute, and are also accessible in dict lookups and thein
operator.Attributes Summary
full
Dictionary mapping dimensions to their primary key values for all dimensions in the graph, not just required ones ( IndexedTupleDict
).graph
records
Dictionary mapping DimensionElement
to the associatedDimensionRecord
(IndexedTupleDict
).region
Region on the sky associated with this data ID, or None
if there are no spatial dimensions (sphgeom.Region
).timespan
Timespan associated with this data ID, or None
if there are no temporal dimensions (TimeSpan
).universe
The universe that defines all known dimensions compatible with this coordinate ( DimensionUniverse
).Methods Summary
byName
()Return a true dict
keyed bystr
dimension name and the same values asself
.fingerprint
(update)Update a secure hash function with the values in this data ID. get
(k[,d])items
()keys
()matches
(other)Test whether the values of all keys in both coordinates are equal. pack
(name, *, returnMaxBits)Pack this data ID into an integer. standardize
(mapping, Any]] = None, *, graph, …)Adapt an arbitrary mapping and/or additional arguments into a true DataCoordinate
, or augment an existing one.subset
(graph)Return a new DataCoordinate
whose graph is a subset ofself.graph
.values
()Attributes Documentation
-
full
¶ Dictionary mapping dimensions to their primary key values for all dimensions in the graph, not just required ones (
IndexedTupleDict
).Like
DataCoordinate
itself, this dictionary can be indexed bystr
name as well asDimension
instance.
-
graph
¶
-
records
¶ Dictionary mapping
DimensionElement
to the associatedDimensionRecord
(IndexedTupleDict
).Like
DataCoordinate
itself, this dictionary can be indexed bystr
name as well asDimensionElement
instance.
-
region
¶ Region on the sky associated with this data ID, or
None
if there are no spatial dimensions (sphgeom.Region
).At present, this may be the special value
NotImplemented
if there multiple spatial dimensions identified; in the future this will be replaced with the intersection.
-
timespan
¶ Timespan associated with this data ID, or
None
if there are no temporal dimensions (TimeSpan
).
-
universe
¶ The universe that defines all known dimensions compatible with this coordinate (
DimensionUniverse
).
Methods Documentation
-
byName
() → Dict[str, Any]¶ Return a true
dict
keyed bystr
dimension name and the same values asself
.
-
fingerprint
(update)¶ Update a secure hash function with the values in this data ID.
Parameters:
-
get
(k[, d]) → D[k] if k in D, else d. d defaults to None.¶
-
items
() → a set-like object providing a view on D's items¶
-
keys
() → a set-like object providing a view on D's keys¶
-
matches
(other) → bool¶ Test whether the values of all keys in both coordinates are equal.
Parameters: - other :
DataCoordinate
The other coordinate to compare to.
Returns: - other :
-
pack
(name: str, *, returnMaxBits: bool = False) → int¶ Pack this data ID into an integer.
Parameters: - name :
str
Name of the
DimensionPacker
algorithm (as defined in the dimension configuration).- returnMaxBits :
bool
, optional If
True
(False
is default), return the maximum number of nonzero bits in the returned integer across all data IDs.
Returns: - name :
-
static
standardize
(mapping: Optional[Mapping[str, Any]] = None, *, graph: Optional[DimensionGraph] = None, universe: Optional[DimensionUniverse] = None, **kwds) → DataCoordinate¶ Adapt an arbitrary mapping and/or additional arguments into a true
DataCoordinate
, or augment an existing one.Parameters: - mapping :
Mapping
, optional An informal data ID that maps dimension names to their primary key values (may also be a true
DataCoordinate
).- graph :
DimensionGraph
The dimensions to be identified by the new
DataCoordinate
. If not provided, will be inferred from the keys ofmapping
, anduniverse
must be provided unlessmapping
is already aDataCoordinate
.- universe :
DimensionUniverse
All known dimensions and their relationships; used to expand and validate dependencies when
graph
is not provided.- kwds
Additional keyword arguments are treated like additional key-value pairs in
mapping
.
Returns: - coordinate :
DataCoordinate
A validated
DataCoordinate
instance. May be a subclass instance if and only ifmapping
is a subclass instance andgraph
is a subset ofmapping.graph
.
Raises: - TypeError
Raised if the set of optional arguments provided is not supported.
- KeyError
Raised if a key-value pair for a required dimension is missing.
Notes
Because
DataCoordinate
stores only values for required dimensions, key-value pairs for other related dimensions will be ignored and excluded from the result. This means that aDataCoordinate
may contain fewer key-value pairs than the informal data ID dictionary it was constructed from.- mapping :
-
subset
(graph: lsst.daf.butler.core.dimensions.graph.DimensionGraph) → lsst.daf.butler.core.dimensions.coordinate.ExpandedDataCoordinate¶ Return a new
DataCoordinate
whose graph is a subset ofself.graph
.Subclasses may override this method to return a subclass instance.
Parameters: - graph :
DimensionGraph
The dimensions identified by the returned
DataCoordinate
.
Returns: - coordinate :
DataCoordinate
A
DataCoordinate
instance that identifies only the given dimensions.
Raises: - KeyError
Raised if
graph
is not a subset ofself.graph
, and hence one or more dimensions has no associated primary key value.
- graph :
-
values
() → an object providing a view on D's values¶
- graph :