Region#

class lsst.images.Region(geometry: Polygon | MultiPolygon)#

Bases: object

A 2-d Euclidean region represented as one or more polygons with optional holes.

Parameters#

geometry

A polygon or multi-polygon from the Shapely library.

Attributes Summary

area

The area of the region (float).

bbox

The integer-coordinate bounding box of the region (Box).

wkt

The 'Well-Known Text' representation of this region (str).

Methods Summary

contains()

Test whether the geometry contains the given points or another geometry.

difference(other)

Compute the point-set difference of this region with another.

from_wkt(wkt)

Construct from a 'Well-Known Text' string.

intersection(other)

Compute the intersection of this region with a Bounds object.

serialize()

Serialize the region to a Pydantic model.

to_shapely()

Convert to a shapely.Polygon or shapely.MultiPolygon object.

try_to_box()

If the underlying geometry is a rectangle that fully covers integer pixels (i.e. has all vertices at half-integer positions), return the equivalent Box.

try_to_polygon()

If the underlying geometry is a single polygon with no holes, return a Polygon instance holding it.

union(other)

Compute the point-set union of this region with another.

Attributes Documentation

area#

The area of the region (float).

bbox#

The integer-coordinate bounding box of the region (Box).

Because a Box logically contains the entirety of the pixels on its boundary, but the centers of those pixels are the numerical values of its bounds, the region may contain vertices that are up to 0.5 beyond the integer box coordinates in either dimension.

wkt#

The ‘Well-Known Text’ representation of this region (str).

Methods Documentation

contains(other: Polygon) bool#
contains(*, x: int, y: int) bool
contains(*, x: float, y: float) bool
contains(*, x: ndarray, y: ndarray) ndarray

Test whether the geometry contains the given points or another geometry.

Parameters#

other

Another geometry to compare to. Not compatible with the y and x arguments.

x

One or more floating-point or integer X coordinates to test for containment. If an array, an array of results will be returned.

y

One or more floating-point or integer Y coordinates to test for containment. If an array, an array of results will be returned.

difference(other: Region) Region#

Compute the point-set difference of this region with another.

static from_wkt(wkt: str) Region#

Construct from a ‘Well-Known Text’ string.

intersection(other: Bounds) Bounds#

Compute the intersection of this region with a Bounds object.

Notes#

Because Region implements the Bounds interface, its intersections need to support all other Bounds objects. This is not true of other Region point-set operations like union and difference.

serialize() RegionSerializationModel#

Serialize the region to a Pydantic model.

Region serialization uses a subset of the GeoJSON specification (IETF RFC 7946).

to_shapely() Polygon | MultiPolygon#

Convert to a shapely.Polygon or shapely.MultiPolygon object.

try_to_box() Region | Box#

If the underlying geometry is a rectangle that fully covers integer pixels (i.e. has all vertices at half-integer positions), return the equivalent Box.

In all other cases self is returned.

try_to_polygon() Region#

If the underlying geometry is a single polygon with no holes, return a Polygon instance holding it.

In all other cases self is returned.

union(other: Region) Region#

Compute the point-set union of this region with another.