locan.data.region.Cuboid#

class locan.data.region.Cuboid(corner=(0, 0, 0), length=1, width=1, height=1, alpha=0, beta=0, gamma=0)[source]#

Bases: Region3D

Region class to define a cuboid.

This is a 3-dimensional convex region with rectangular faces. Extension in x-, y-, z-coordinates correspond to length, width, height. Corresponding Euler angles are defined by alpha, beta, gamma.

Parameters:
  • corner (npt.ArrayLike) – A point that defines the lower left corner with shape (2,).

  • length (float) – The length of a vector describing the edge in x-direction.

  • width (float) – The length of a vector describing the edge in y-direction.

  • alpha (float) – The first Euler angle (in degrees) by which the cuboid is rotated.

  • beta (float) – The second Euler angle (in degrees) by which the cuboid is rotated.

  • gamma (float) – The third Euler angle (in degrees) by which the cuboid is rotated.

Methods

__init__([corner, length, width, height, ...])

as_artist([origin])

Matplotlib 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.

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

alpha

The first Euler angle (in degrees) by which the cuboid is rotated.

beta

The sescond Euler angle (in degrees) by which the cuboid is rotated.

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.

corner

A point that defines the lower left corner.

dimension

The region dimension.

extent

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

gamma

The third Euler angle (in degrees) by which the cuboid is rotated.

height

The length of a vector describing the edge in z-direction.

length

The length of a vector describing the edge in x-direction.

max_distance

The maximum distance between any two points within the region.

points

Point coordinates.

region_measure

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

subregion_measure

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

width

The length of a vector describing the edge in y-direction.

property alpha: float#

The first Euler angle (in degrees) by which the cuboid is rotated.

Return type:

float

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

Matplotlib 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, z) pixel position of the origin of the displayed image. Default is (0, 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 beta: float#

The sescond Euler angle (in degrees) by which the cuboid is rotated.

Return type:

float

property bounding_box: Self#

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

Return type:

Region

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

Region bounds min_x, min_y, …, max_x, max_y, … for each dimension.

Returns:

of shape (2 * dimension,)

Return type:

npt.NDArray[np.float64] | None

buffer(distance, **kwargs)[source]#

Extend the region perpendicular by a distance.

Parameters:

distance (float) – Distance by which the region is extended.

Returns:

The extended region.

Return type:

Region

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]

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

A point that defines the lower left corner.

Returns:

with shape (2,)

Return type:

npt.NDArray[np.float64]

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

The extent (max_x - min_x), (max_y - min_y), … for each dimension.

Returns:

of shape (dimension,)

Return type:

npt.NDArray[np.float64] | None

property gamma: float#

The third Euler angle (in degrees) by which the cuboid is rotated.

Return type:

float

property height: float#

The length of a vector describing the edge in z-direction.

Return type:

float

property length: float#

The length of a vector describing the edge in x-direction.

Return type:

float

property max_distance: float#

The maximum distance between any two points within the region.

Return type:

float

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

Point coordinates.

Returns:

of shape (n_points, dimension)

Return type:

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

property region_measure: float#

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

Return type:

float

property subregion_measure: float#

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

Return type:

float

property width: float#

The length of a vector describing the edge in y-direction.

Return type:

float