DimensionUniverse¶
-
class
lsst.daf.butler.DimensionUniverse(config: Optional[Config] = None, *, version: Optional[int] = None, builder: Optional[DimensionConstructionBuilder] = None)¶ Bases:
objectSelf-consistent set of dimensions.
A parent class that represents a complete, self-consistent set of dimensions and their relationships.
DimensionUniverseis not a class-level singleton, but all instances are tracked in a singleton map keyed by the version number in the configuration they were loaded from. Because these universes are solely responsible for constructingDimensionElementinstances, these are also indirectly tracked by that singleton as well.- Parameters
- config
Config, optional Configuration object from which dimension definitions can be extracted. Ignored if
builderis provided, or ifversionis provided and an instance with that version already exists.- version
int, optional Integer version for this
DimensionUniverse. If not provided, a version will be obtained frombuilderorconfig.- builder
DimensionConstructionBuilder, optional Builder object used to initialize a new instance. Ignored if
versionis provided and an instance with that version already exists. Should not have hadfinishcalled; this will be called if needed byDimensionUniverse.
- config
Attributes Summary
All skypix systems known to this universe.
Methods Summary
expandDimensionNameSet(names)Expand a set of dimension names in-place.
extract(iterable)Construct graph from iterable.
get(name[, default])Return the
DimensionElementwith the given name or a default.Return set of all
DatabaseDimensionElementinstances in universe.getDimensionIndex(name)Return the position of the named dimension.
getElementIndex(name)Return the position of the named dimension element.
Return encoded size of graph.
Return a set of all
GovernorDimensioninstances in this universe.Return a set of all static dimensions in this universe.
Return a set of all static elements in this universe.
makePacker(name, dataId)Make a dimension packer.
sorted(elements, *[, reverse])Return a sorted version of the given iterable of dimension elements.
Attributes Documentation
-
skypix¶ All skypix systems known to this universe.
Methods Documentation
-
expandDimensionNameSet(names: Set[str]) → None¶ Expand a set of dimension names in-place.
Includes recursive dependencies.
This is an advanced interface for cases where constructing a
DimensionGraph(which also expands required dependencies) is impossible or undesirable.
-
extract(iterable: Iterable[Union[lsst.daf.butler.Dimension, str]]) →lsst.daf.butler.DimensionGraph¶ Construct graph from iterable.
Constructs a
DimensionGraphfrom a possibly-heterogenous iterable ofDimensioninstances and string names thereof.Constructing
DimensionGraphdirectly from names or dimension instances is slightly more efficient when it is known in advance that the iterable is not heterogenous.- Parameters
- iterable: iterable of `Dimension` or `str`
Dimensions that must be included in the returned graph (their dependencies will be as well).
- Returns
- graph
DimensionGraph A
DimensionGraphinstance containing all given dimensions.
- graph
-
get(name: str, default: Optional[lsst.daf.butler.DimensionElement] = None) → Optional[lsst.daf.butler.DimensionElement]¶ Return the
DimensionElementwith the given name or a default.- Parameters
- name
str Name of the element.
- default
DimensionElement, optional Element to return if the named one does not exist. Defaults to
None.
- name
- Returns
- element
DimensionElement The named element.
- element
-
getDatabaseElements() →lsst.daf.butler.NamedValueAbstractSet[lsst.daf.butler.DatabaseDimensionElement]¶ Return set of all
DatabaseDimensionElementinstances in universe.This does not include
GovernorDimensioninstances, which are backed by the database but do not inherit fromDatabaseDimensionElement.- Returns
- elements
NamedValueAbstractSet[DatabaseDimensionElement] A frozen set of
DatabaseDimensionElementinstances.
- elements
-
getDimensionIndex(name: str) → int¶ Return the position of the named dimension.
This position is in this universe’s sorting of all dimensions.
Notes
The dimension sort order for a universe is consistent with the element order (all dimensions are elements), and either can be used to sort dimensions if used consistently. But there are also some contexts in which contiguous dimension-only indices are necessary or at least desirable.
-
getElementIndex(name: str) → int¶ Return the position of the named dimension element.
The position is in this universe’s sorting of all elements.
-
getEncodeLength() → int¶ Return encoded size of graph.
Returns the size (in bytes) of the encoded size of
DimensionGraphinstances in this universe.See
DimensionGraph.encodeandDimensionGraph.decodefor more information.
-
getGovernorDimensions() →lsst.daf.butler.NamedValueAbstractSet[lsst.daf.butler.GovernorDimension]¶ Return a set of all
GovernorDimensioninstances in this universe.- Returns
- governors
NamedValueAbstractSet[GovernorDimension] A frozen set of
GovernorDimensioninstances.
- governors
-
getStaticDimensions() →lsst.daf.butler.NamedValueAbstractSet[lsst.daf.butler.Dimension]¶ Return a set of all static dimensions in this universe.
Non-static dimensions that are created as needed may also exist, but these are guaranteed to have no direct relationships to other elements (though they may have spatial or temporal relationships).
- Returns
- dimensions
NamedValueAbstractSet[Dimension] A frozen set of
Dimensioninstances.
- dimensions
-
getStaticElements() →lsst.daf.butler.NamedValueAbstractSet[lsst.daf.butler.DimensionElement]¶ Return a set of all static elements in this universe.
Non-static elements that are created as needed may also exist, but these are guaranteed to have no direct relationships to other elements (though they may have spatial or temporal relationships).
- Returns
- elements
NamedValueAbstractSet[DimensionElement] A frozen set of
DimensionElementinstances.
- elements
-
makePacker(name: str, dataId: DataCoordinate) → DimensionPacker¶ Make a dimension packer.
Constructs a
DimensionPackerthat can pack data ID dictionaries into unique integers.- Parameters
- name
str Name of the packer, matching a key in the “packers” section of the dimension configuration.
- dataId
DataCoordinate Fully-expanded data ID that identfies the at least the “fixed” dimensions of the packer (i.e. those that are assumed/given, setting the space over which packed integer IDs are unique).
dataId.hasRecords()must returnTrue.
- name
-
sorted(elements: Iterable[Union[E, str]], *, reverse: bool = False) → List[E]¶ Return a sorted version of the given iterable of dimension elements.
The universe’s sort order is topological (an element’s dependencies precede it), with an unspecified (but deterministic) approach to breaking ties.
- Parameters
- elementsiterable of
DimensionElement. Elements to be sorted.
- reverse
bool, optional If
True, sort in the opposite order.
- elementsiterable of
- Returns
- sorted
listofDimensionElement A sorted list containing the same elements that were given.
- sorted