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(endpoints, universe)

Select the best member of this family to use.

Methods Documentation

abstract choose(endpoints: Set[str], universe: DimensionUniverse) 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:
endpointsSet [str]

Endpoints to choose from. May include endpoints that are not members of this family (which should be ignored).

universeDimensionUniverse

Object that manages all known dimensions.

Returns:
bestTopologicalRelationshipEndpoint

The best endpoint that is both a member of self and in endpoints.