locan.data.region.Polygon#

class locan.data.region.Polygon(points=((0, 0), (0, 1), (1, 1), (1, 0)), holes=None)[source]#

Bases: Region2D

Region class to define a polygon.

The polygon is constructed from a list of points that can be closed (i.e. the first and last point are identical) or not (in this case the list of points will be closed implicitly).

Parameters:
  • points (npt.ArrayLike) – Points with shape (n_points, 2) that define the exterior boundary of a polygon.

  • holes (list[npt.ArrayLike] | None) – Points with shape (n_holes, n_points, 2) that define holes within the polygon.

Methods

__init__([points, holes])

as_artist([origin])

Matplotlib 2D patch object for this region (e.g. matplotlib.patches.Ellipse).

buffer(distance, **kwargs)

Extend the region perpendicular by a distance.

contains(points)

Return list of indices for all points that are inside the region of interest.

from_intervals(intervals)

Constructor for instantiating axis-oriented, box-like Region from list of (min, max) bounds.

from_shapely(polygon)

Constructor for instantiating Region from shapely object.

intersection(other)

Returns a region representing the intersection of this region with other.

plot([ax])

Provide plot of region as matplotlib.axes.Axes object.

symmetric_difference(other)

Returns the union of the two regions minus any areas contained in the intersection of the two regions.

union(other)

Returns a region representing the union of this region with other.

Attributes

bounding_box

A region describing the minimum axis-aligned bounding box that encloses the original region.

bounds

Region bounds min_x, min_y, ..., max_x, max_y, .

centroid

Point coordinates for region centroid.

dimension

The region dimension.

extent

The extent (max_x - min_x), (max_y - min_y), .

holes

Holes where each hole is specified by polygon points.

max_distance

The maximum distance between any two points within the region.

points

Exterior polygon points.

region_measure

Region measure, i.e. area (for 2d) or volume (for 3d).

region_specs

Legacy interface to serve legacy RoiRegion.

shapely_object

Geometric object as defined in shapely.

subregion_measure

Measure of the sub-dimensional region, i.e. circumference (for 2d) or surface (for 3d).

as_artist(origin=(0, 0), **kwargs)[source]#

Matplotlib 2D patch object for this region (e.g. matplotlib.patches.Ellipse).

Parameters:
  • origin (Union[_SupportsArray[dtype[Any]], _NestedSequence[_SupportsArray[dtype[Any]]], bool, int, float, complex, str, bytes, _NestedSequence[Union[bool, int, float, complex, str, bytes]]]) – The (x, y) pixel position of the origin of the displayed image. Default is (0, 0).

  • kwargs (Any) – Other parameters passed to the matplotlib.patches object.

Returns:

Matplotlib patch for the specified region.

Return type:

matplotlib.patches.Patch

property centroid: ndarray[Any, dtype[float64]]#

Point coordinates for region centroid.

Returns:

of shape (dimension,)

Return type:

npt.NDArray[np.float64] | None

contains(points)[source]#

Return list of indices for all points that are inside the region of interest.

Parameters:

points (Union[_SupportsArray[dtype[Any]], _NestedSequence[_SupportsArray[dtype[Any]]], bool, int, float, complex, str, bytes, _NestedSequence[Union[bool, int, float, complex, str, bytes]]]) – Coordinates of points that are tested for being inside the specified region.

Returns:

Array with indices for all points in original point array that are within the region.

Return type:

npt.NDArray[np.int64]

classmethod from_shapely(polygon)[source]#

Constructor for instantiating Region from shapely object.

Parameters:

shapely_object – Geometric object to be converted into Region

Return type:

Polygon | MultiPolygon | EmptyRegion

property holes: list[ndarray[Any, dtype[float64]]] | None#

Holes where each hole is specified by polygon points.

Returns:

n_holes of shape(n_points, dimension)

Return type:

list[npt.NDArray[np.float64]] | None

property max_distance: float#

The maximum distance between any two points within the region.

Return type:

float

property points: ndarray[Any, dtype[float64]]#

Exterior polygon points.

Returns:

of shape(n_points, dimension)

Return type:

npt.NDArray[np.float64]

property region_measure: float#

Region measure, i.e. area (for 2d) or volume (for 3d).

Return type:

float

property region_specs#

Legacy interface to serve legacy RoiRegion.

Warning

Do not use - will be deprecated.

Return type:

dict[str, Any]

property shapely_object: Polygon#

Geometric object as defined in shapely.

Return type:

Shapely object

property subregion_measure: float#

Measure of the sub-dimensional region, i.e. circumference (for 2d) or surface (for 3d).

Return type:

float