TopologicalFamily

class lsst.daf.butler.TopologicalFamily(name: str, space: TopologicalSpace)

Bases: ABC

A grouping of TopologicalRelationshipEndpoint objects.

These regions form a hierarchy in which one endpoint’s rows always contain another’s in a predefined way.

This hierarchy means that endpoints in the same family do not generally have to be have to be related using (e.g.) overlaps; instead, the regions from one “best” endpoint from each family are related to the best endpoint from each other family in a query.

Parameters:
namestr

Unique string identifier for this family.

spaceTopologicalSpace

Space in which the regions of this family live.

Methods Summary

choose(dimensions)

Select the best member of this family to use.

make_column_reference(endpoint)

Create a column reference to the generalized region column for the given endpoint.

Methods Documentation

abstract choose(dimensions: DimensionGroup) TopologicalRelationshipEndpoint

Select the best member of this family to use.

These are to be used in a query join or data ID when more than one is present.

Usually this should correspond to the most fine-grained region.

Parameters:
dimensionsDimensionGroup

Dimensions to choose from, if this is a dimension-based topological family.

Returns:
bestTopologicalRelationshipEndpoint

The best endpoint from this family for these dimensions.

abstract make_column_reference(endpoint: TopologicalRelationshipEndpoint) ColumnReference

Create a column reference to the generalized region column for the given endpoint.

Parameters:
endpointTopologicalRelationshipEndpoint

Endpoint to create a column reference to.

Returns:
columnqueries.tree.ColumnReference

Column reference.