DimensionJoin

class lsst.daf.butler.DimensionJoin(universe, name, config)

Bases: lsst.daf.butler.DimensionElement

A join that relates two or more Dimensions.

DimensionJoins usually map to many-to-many join tables or views that relate Dimension tables.

DimensionJoin objects are not directly constructable; they can only be obtained from a DimensionGraph.

Attributes Summary

doc Documentation for this dimension (str).
hasRegion Whether this dimension is associated with a region on the sky (bool).
lhs The Dimensions on the left hand side of the join (DimensionSet).
link Primary key fields that are used only by this dimension, not any dependencies (frozenset of str).
name Name of this dimension (str, read-only).
primaryKey The names of fields that uniquely identify this dimension in a data ID dict (frozenset of str).
rhs The Dimensions on the right hand side of the join (DimensionSet).
summarizes A set of other DimensionJoins that provide more fine-grained relationships than this one (DimensionJoinSet).
universe The graph of all dimensions compatible with self (DimensionGraph).

Methods Summary

dependencies([required, optional]) Return the set of dimensions this dimension depends on.
graph([optional]) Return the minimal DimensionGraph that contains self.

Attributes Documentation

doc

Documentation for this dimension (str).

hasRegion

Whether this dimension is associated with a region on the sky (bool).

lhs

The Dimensions on the left hand side of the join (DimensionSet).

Left vs. right is completely arbitrary; the terminology simply provides an easy way to distinguish between the two sides.

Primary key fields that are used only by this dimension, not any dependencies (frozenset of str).

name

Name of this dimension (str, read-only).

Also assumed to be the name of any associated table or view.

primaryKey

The names of fields that uniquely identify this dimension in a data ID dict (frozenset of str).

rhs

The Dimensions on the right hand side of the join (DimensionSet).

Left vs. right is completely arbitrary; the terminology simply provides an easy way to distinguish between the two sides.

summarizes

A set of other DimensionJoins that provide more fine-grained relationships than this one (DimensionJoinSet).

When a join “summarizes” another, it means the table for that join could (at least conceptually) be defined as an aggregate view on the summarized join table. For example, “TractSkyPixJoin” summarizes “PatchSkyPixJoin”, because the set of SkyPix rows associated with a Tract row is just the set of SkyPix rows associated with all Patches associated with that Tract. Or, in SQL:

CREATE VIEW TractSkyPixJoin AS
SELECT DISTINCT skymap, tract, skypix FROM PatchSkyPixJoin;
universe

The graph of all dimensions compatible with self (DimensionGraph).

Methods Documentation

dependencies(required=True, optional=False)

Return the set of dimensions this dimension depends on.

Parameters:
required : bool

If True (default), include required dependencies. Required dependences are always expanded recursively.

optional : bool

If True, return optional dependencies.

Returns:
dependencies : DimensionSet
graph(optional=False)

Return the minimal DimensionGraph that contains self.

Parameters:
optional : bool

If True, include optional as well as required dependencies.

Returns:
graph : DimensionGraph