pygeos.coordinates

pygeos.coordinates.apply(geometry, transformation)

Returns a copy of a geometry array with a function applied to its coordinates.

All returned geometries will be two-dimensional; the third dimension will be discarded, if present.

Parameters

geometry : Geometry or array_like

transformation : function

A function that transforms a (N, 2) ndarray of float64 to another (N, 2) ndarray of float64.

Examples

>>> apply(Geometry("POINT (0 0)"), lambda x: x + 1)
<pygeos.Geometry POINT (1 1)>
>>> apply(Geometry("LINESTRING (2 2, 4 4)"), lambda x: x * [2, 3])
<pygeos.Geometry LINESTRING (4 6, 8 12)>
>>> apply(None, lambda x: x) is None
True
>>> apply([Geometry("POINT (0 0)"), None], lambda x: x).tolist()
[<pygeos.Geometry POINT (0 0)>, None]
pygeos.coordinates.count_coordinates(geometry)

Counts the number of coordinate pairs in a geometry array.

Parameters

geometry : Geometry or array_like

Examples

>>> count_coordinates(Geometry("POINT (0 0)"))
1
>>> count_coordinates(Geometry("LINESTRING (2 2, 4 4)"))
2
>>> count_coordinates(None)
0
>>> count_coordinates([Geometry("POINT (0 0)"), None])
1
pygeos.coordinates.get_coordinates(geometry)

Gets coordinates from a geometry array as an array of floats.

The shape of the returned array is (N, 2), with N being the number of coordinate pairs. Three-dimensional data is ignored.

Parameters

geometry : Geometry or array_like

Examples

>>> get_coordinates(Geometry("POINT (0 0)")).tolist()
[[0.0, 0.0]]
>>> get_coordinates(Geometry("LINESTRING (2 2, 4 4)")).tolist()
[[2.0, 2.0], [4.0, 4.0]]
>>> get_coordinates(None)
array([], shape=(0, 2), dtype=float64)
pygeos.coordinates.set_coordinates(geometry, coordinates)

Returns a copy of a geometry array with different coordinates.

All returned geometries will be two-dimensional; the third dimension will be discarded, if present.

Parameters

geometry : Geometry or array_like

coordinates: array_like

Examples

>>> set_coordinates(Geometry("POINT (0 0)"), [[1, 1]])
<pygeos.Geometry POINT (1 1)>
>>> set_coordinates([Geometry("POINT (0 0)"), Geometry("LINESTRING (0 0, 0 0)")], [[1, 2], [3, 4], [5, 6]]).tolist()
[<pygeos.Geometry POINT (1 2)>, <pygeos.Geometry LINESTRING (3 4, 5 6)>]
>>> set_coordinates([None, Geometry("POINT (0 0)")], [[1, 2]]).tolist()
[None, <pygeos.Geometry POINT (1 2)>]