Top-level functions¶
Array/Chunked Array functions¶
geoarrow.rust.core ¶
affine_transform
builtin
¶
affine_transform(input: AffineInputT | ArrowArrayExportable | ArrowStreamExportable, transform: AffineTransform) -> AffineInputT | NativeGeometryArrayT | NativeChunkedGeometryArrayT
Apply an affine transformation to geometries.
This is intended to be equivalent to shapely.affinity.affine_transform
for 2D transforms.
Parameters:
-
input
(AffineInputT | ArrowArrayExportable | ArrowStreamExportable
) –input geometry array or chunked geometry array
-
other
–an affine transformation to apply to all geometries.
This integrates with the
affine
Python library, and most users should use that integration, though it allows any input that is a tuple with 6 or 9 float values.
Returns:
-
AffineInputT | NativeGeometryArrayT | NativeChunkedGeometryArrayT
–New GeoArrow array or chunked array with the same type as input and with transformed
-
AffineInputT | NativeGeometryArrayT | NativeChunkedGeometryArrayT
–coordinates.
area
builtin
¶
area(input: ArrowArrayExportable | ArrowStreamExportable, *, method: AreaMethod | AreaMethodT = 'euclidean') -> Float64Array | ChunkedFloat64Array
Determine the area of an array of geometries
Parameters:
-
input
(ArrowArrayExportable | ArrowStreamExportable
) –input geometry array or chunked geometry array
Other Parameters:
-
method
(AreaMethod | AreaMethodT
) –The method to use for area calculation. One of "Ellipsoidal", "Euclidean", or "Spherical". Refer to the documentation on AreaMethod for more information.
Returns:
-
Float64Array | ChunkedFloat64Array
–Array or chunked array with area values.
center
builtin
¶
center(input: ArrowArrayExportable | ArrowStreamExportable) -> PointArray | ChunkedPointArray
Compute the center of geometries
This first computes the axis-aligned bounding rectangle, then takes the center of that box
Parameters:
-
input
(ArrowArrayExportable | ArrowStreamExportable
) –input geometry array or chunked geometry array
Returns:
-
PointArray | ChunkedPointArray
–Array or chunked array with center values.
centroid
builtin
¶
centroid(input: ArrowArrayExportable | ArrowStreamExportable) -> PointArray | ChunkedPointArray
Calculation of the centroid.
The centroid is the arithmetic mean position of all points in the shape. Informally, it is the point at which a cutout of the shape could be perfectly balanced on the tip of a pin.
The geometric centroid of a convex object always lies in the object. A non-convex object might have a centroid that is outside the object itself.
Parameters:
-
input
(ArrowArrayExportable | ArrowStreamExportable
) –input geometry array or chunked geometry array
Returns:
-
PointArray | ChunkedPointArray
–Array or chunked array with centroid values.
chaikin_smoothing
builtin
¶
chaikin_smoothing(input: ChaikinSmoothingT | ArrowArrayExportable | ArrowStreamExportable, n_iterations: int) -> LineStringArray | PolygonArray | MultiLineStringArray | MultiPolygonArray | ChunkedLineStringArray | ChunkedPolygonArray | ChunkedMultiLineStringArray | ChunkedMultiPolygonArray
Smoothen LineString
, Polygon
, MultiLineString
and MultiPolygon
using Chaikins algorithm.
Each iteration of the smoothing doubles the number of vertices of the geometry, so in some cases it may make sense to apply a simplification afterwards to remove insignificant coordinates.
This implementation preserves the start and end vertices of an open linestring and smoothes the corner between start and end of a closed linestring.
Parameters:
-
input
(ChaikinSmoothingT | ArrowArrayExportable | ArrowStreamExportable
) –input geometry array or chunked geometry array
-
n_iterations
(int
) –Number of iterations to use for smoothing.
Returns:
-
LineStringArray | PolygonArray | MultiLineStringArray | MultiPolygonArray | ChunkedLineStringArray | ChunkedPolygonArray | ChunkedMultiLineStringArray | ChunkedMultiPolygonArray
–Smoothed geometry array or chunked geometry array.
convex_hull
builtin
¶
convex_hull(input: ArrowArrayExportable | ArrowStreamExportable) -> PolygonArray | ChunkedPolygonArray
Returns the convex hull of a Polygon. The hull is always oriented counter-clockwise.
This implementation uses the QuickHull algorithm, based on Barber, C. Bradford; Dobkin, David P.; Huhdanpaa, Hannu (1 December 1996) Original paper here: www.cs.princeton.edu/~dpd/Papers/BarberDobkinHuhdanpaa.pdf
Parameters:
-
input
(ArrowArrayExportable | ArrowStreamExportable
) –input geometry array
Returns:
-
PolygonArray | ChunkedPolygonArray
–Array with convex hull polygons.
densify
builtin
¶
densify(input: ArrowArrayExportable, max_distance: float) -> LineStringArray | PolygonArray | MultiLineStringArray | MultiPolygonArray
Return a new linear geometry containing both existing and new interpolated
coordinates with a maximum distance of max_distance
between them.
Note: max_distance
must be greater than 0.
Parameters:
-
input
(ArrowArrayExportable
) –input geometry array
-
max_distance
(float
) –maximum distance between coordinates
Returns:
-
LineStringArray | PolygonArray | MultiLineStringArray | MultiPolygonArray
–Densified geometry array
envelope
builtin
¶
envelope(input: ArrowArrayExportable | ArrowStreamExportable) -> RectArray | ChunkedRectArray
Computes the minimum axis-aligned bounding box that encloses an input geometry
Parameters:
-
input
(ArrowArrayExportable | ArrowStreamExportable
) –input geometry array
Returns:
-
RectArray | ChunkedRectArray
–Array with axis-aligned bounding boxes.
frechet_distance
builtin
¶
frechet_distance(input: ArrowArrayExportable | ArrowStreamExportable, other: BroadcastGeometry) -> Float64Array | ChunkedFloat64Array
Determine the similarity between two arrays of LineStrings
using the Frechet distance.
The Fréchet distance is a measure of similarity: it is the greatest distance between any point in A and the closest point in B. The discrete distance is an approximation of this metric: only vertices are considered. The parameter ‘densify’ makes this approximation less coarse by splitting the line segments between vertices before computing the distance.
Fréchet distance sweep continuously along their respective curves and the direction of curves is significant. This makes it a better measure of similarity than Hausdorff distance for curve or surface matching.
This implementation is based on Computing Discrete Frechet Distance by T. Eiter and H. Mannila.
Parameters:
-
input
(ArrowArrayExportable | ArrowStreamExportable
) –input geometry array or chunked geometry array
-
other
(BroadcastGeometry
) –the geometry or geometry array to compare against. This must contain geometries of `LineString`` type. A variety of inputs are accepted:
- A scalar
LineString
- A
LineStringArray
- A
ChunkedLineStringArray
- Any Python class that implements the Geo Interface, such as a
shapely
LineString - Any GeoArrow array or chunked array of
LineString
type
- A scalar
Returns:
-
Float64Array | ChunkedFloat64Array
–Array or chunked array with float distance values.
geodesic_perimeter
builtin
¶
geodesic_perimeter(input: ArrowArrayExportable) -> Float64Array
Determine the perimeter of a geometry on an ellipsoidal model of the earth.
This uses the geodesic measurement methods given by Karney (2013).
For a polygon this returns the sum of the perimeter of the exterior ring and interior rings.
To get the perimeter of just the exterior ring of a polygon, do polygon.exterior().geodesic_length()
.
Units¶
- return value: meter
Returns:
-
Float64Array
–Array with output values.
is_empty
builtin
¶
is_empty(input: ArrowArrayExportable | ArrowStreamExportable) -> BooleanArray | ChunkedBooleanArray
Returns True if a geometry is an empty point, polygon, etc.
Parameters:
-
input
(ArrowArrayExportable | ArrowStreamExportable
) –input geometry array
Returns:
-
BooleanArray | ChunkedBooleanArray
–Result array.
length
builtin
¶
length(input: ArrowArrayExportable | ArrowStreamExportable, *, method: LengthMethod | LengthMethodT = 'euclidean') -> Float64Array | ChunkedFloat64Array
Calculation of the length of a Line
Parameters:
-
input
(ArrowArrayExportable | ArrowStreamExportable
) –input geometry array or chunked geometry array
Other Parameters:
-
method
(LengthMethod | LengthMethodT
) –The method to use for length calculation. One of "Ellipsoidal", "Euclidean", "Haversine", or "Vincenty". Refer to the documentation on LengthMethod for more information.
Returns:
-
Float64Array | ChunkedFloat64Array
–Array or chunked array with length values.
line_interpolate_point
builtin
¶
line_interpolate_point(input: ArrowArrayExportable | ArrowStreamExportable, fraction: float | int | ArrowArrayExportable | ArrowStreamExportable | NumpyArrayProtocolf64) -> PointArray | ChunkedPointArray
Returns a point interpolated at given distance on a line.
This is intended to be equivalent to shapely.line_interpolate_point
when
normalized=True
.
If the given fraction is
* less than zero (including negative infinity): returns the starting point
* greater than one (including infinity): returns the ending point
* If either the fraction is NaN, or any coordinates of the line are not
finite, returns Point EMPTY
.
Parameters:
-
input
(ArrowArrayExportable | ArrowStreamExportable
) –input geometry array or chunked geometry array
-
fraction
(float | int | ArrowArrayExportable | ArrowStreamExportable | NumpyArrayProtocolf64
) –the fractional distance along the line. A variety of inputs are accepted:
- A Python
float
orint
- A numpy
ndarray
withfloat64
data type. - An Arrow array or chunked array with
float64
data type.
- A Python
Returns:
-
PointArray | ChunkedPointArray
–PointArray or ChunkedPointArray with result values
line_locate_point
builtin
¶
line_locate_point(input: ArrowArrayExportable | ArrowStreamExportable, point: GeoInterfaceProtocol | ArrowArrayExportable | ArrowStreamExportable) -> Float64Array | ChunkedFloat64Array
Returns a fraction of the line's total length representing the location of the closest point on the line to the given point.
This is intended to be equivalent to shapely.line_locate_point
when
normalized=True
.
If the line has zero length the fraction returned is zero.
If either the point's coordinates or any coordinates of the line
are not finite, returns NaN
.
Parameters:
-
input
(ArrowArrayExportable | ArrowStreamExportable
) –input geometry array or chunked geometry array
-
point
(GeoInterfaceProtocol | ArrowArrayExportable | ArrowStreamExportable
) –the fractional distance along the line. A variety of inputs are accepted:
- A scalar
Point
- A
PointArray
- A
ChunkedPointArray
- Any Python class that implements the Geo Interface, such as a
shapely
Point - Any GeoArrow array or chunked array of
Point
type
- A scalar
Returns:
-
Float64Array | ChunkedFloat64Array
–Array or chunked array with float fraction values.
polylabel
builtin
¶
polylabel(input: ArrowArrayExportable | ArrowStreamExportable, tolerance: float) -> PointArray | ChunkedPointArray
Calculate a Polygon's ideal label position by calculating its pole of inaccessibility.
The pole of inaccessibility is the most distant internal point from the polygon outline (not to be confused with centroid), and is useful for optimal placement of a text label on a polygon.
The calculation uses an iterative grid-based algorithm, ported from the original JavaScript implementation.
Parameters:
-
input
(ArrowArrayExportable | ArrowStreamExportable
) –input geometry array or chunked geometry array
-
tolerance
(float
) –precision of algorithm. Refer to the original JavaScript documentation for more information
Returns:
-
PointArray | ChunkedPointArray
–PointArray or ChunkedPointArray with result values
signed_area
builtin
¶
signed_area(input: ArrowArrayExportable | ArrowStreamExportable, *, method: AreaMethod | AreaMethodT = 'euclidean') -> Float64Array | ChunkedFloat64Array
Signed area of a geometry array
Parameters:
-
input
(ArrowArrayExportable | ArrowStreamExportable
) –input geometry array or chunked geometry array
Other Parameters:
-
method
(AreaMethod | AreaMethodT
) –The method to use for area calculation. One of "Ellipsoidal", "Euclidean", or "Spherical". Refer to the documentation on AreaMethod for more information.
Returns:
-
Float64Array | ChunkedFloat64Array
–Array or chunked array with area values.
simplify
builtin
¶
simplify(input: SimplifyInputT | ArrowArrayExportable | ArrowStreamExportable, epsilon: float, *, method: SimplifyMethod | SimplifyMethodT = 'rdp') -> SimplifyInputT | PointArray | LineStringArray | PolygonArray | MultiPointArray | MultiLineStringArray | MultiPolygonArray | ChunkedPointArray | ChunkedLineStringArray | ChunkedPolygonArray | ChunkedMultiPointArray | ChunkedMultiLineStringArray | ChunkedMultiPolygonArray
Simplifies a geometry.
Parameters:
-
input
(SimplifyInputT | ArrowArrayExportable | ArrowStreamExportable
) –input geometry array
-
epsilon
(float
) –tolerance for simplification. An epsilon less than or equal to zero will return an unaltered version of the geometry.
Other Parameters:
-
method
(SimplifyMethod | SimplifyMethodT
) –The method to use for simplification calculation. One of
"rdp"
,"vw"
, or"vw_preserve"
. Refer to the documentation on SimplifyMethod for more information.
Returns:
-
SimplifyInputT | PointArray | LineStringArray | PolygonArray | MultiPointArray | MultiLineStringArray | MultiPolygonArray | ChunkedPointArray | ChunkedLineStringArray | ChunkedPolygonArray | ChunkedMultiPointArray | ChunkedMultiLineStringArray | ChunkedMultiPolygonArray
–Simplified geometry array.
total_bounds
builtin
¶
total_bounds(input: ArrowArrayExportable | ArrowStreamExportable) -> Tuple[float, float, float, float]
Computes the total bounds (extent) of the geometry.
Parameters:
-
input
(ArrowArrayExportable | ArrowStreamExportable
) –input geometry array
Returns:
Table functions¶
geoarrow.rust.core ¶
explode
builtin
¶
explode(input: ArrowStreamExportable) -> GeoTable
Explode a table.
This is intended to be equivalent to the explode
function
in GeoPandas.
Parameters:
-
input
(ArrowStreamExportable
) –input table
Returns:
-
GeoTable
–A new table with multi-part geometries exploded to separate rows.