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
The first Euler angle (in degrees) by which the cuboid is rotated.
The sescond Euler angle (in degrees) by which the cuboid is rotated.
A region describing the minimum axis-aligned bounding box that encloses the original region.
Region bounds min_x, min_y, ..., max_x, max_y, .
Point coordinates for region centroid.
A point that defines the lower left corner.
dimension
The region dimension.
The extent (max_x - min_x), (max_y - min_y), .
The third Euler angle (in degrees) by which the cuboid is rotated.
The length of a vector describing the edge in z-direction.
The length of a vector describing the edge in x-direction.
The maximum distance between any two points within the region.
Point coordinates.
Region measure, i.e. area (for 2d) or volume (for 3d).
Measure of the sub-dimensional region, i.e. circumference (for 2d) or surface (for 3d).
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:
- 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:
- 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