Skip to content

GeoSeries

polars_st.GeoSeries #

GeoSeries(
    name: str | ArrayLike | None = None,
    values: ArrayLike | None = None,
    dtype: PolarsDataType | None = None,
    *,
    strict: bool = True,
    nan_to_null: bool = False
)

Bases: Series

Create a new GeoSeries.

A GeoSeries is a regular polars.Series with type annotations added for the st namespace. It contains geometries in binary EWKB format.

You can create a GeoSeries from a list of WKB, WKT, EWKT or GeoJSON strings, or Shapely objects. Geometries will be created by infering the correct deserialization operation. It is also possible to create a GeoSeries of Points from a Polars Array with shape (2 | 3, n).

See pl.Series for parameters documentation.

Examples:

>>> gs = st.GeoSeries([
...     "POINT(0 0)",
...     "POINT(1 2)",
... ])
>>> gs2 = st.GeoSeries([
...     [0, 0],
...     [1, 2],
... ], dtype=pl.Array(pl.Float64, 2))
>>> gs.equals(gs2)
True
>>> gs.dtype
Binary
>>> import shapely
>>> gs = st.GeoSeries([
...     shapely.Point(0, 0),
...     shapely.Point(1, 2),
... ])
>>> gs2 = st.GeoSeries([
...     '{"type": "Point", "coordinates": [0, 0]}'
...     '{"type": "Point", "coordinates": [1, 2]}'
... ])
>>> gs.equals(gs2)
True

st property #

polars_st.GeoSeriesNameSpace #

polars_st.GeoSeriesNameSpace.__geo_interface__ property #

__geo_interface__: dict

Return a GeoJSON GeometryCollection dict representation of the DataFrame.

polars_st.GeoSeriesNameSpace.geometry_type #

geometry_type() -> Series

polars_st.GeoSeriesNameSpace.dimensions #

dimensions() -> Series

polars_st.GeoSeriesNameSpace.coordinate_dimension #

coordinate_dimension() -> Series

polars_st.GeoSeriesNameSpace.area #

area() -> Series

polars_st.GeoSeriesNameSpace.bounds #

bounds() -> Series

polars_st.GeoSeriesNameSpace.length #

length() -> Series

polars_st.GeoSeriesNameSpace.minimum_clearance #

minimum_clearance() -> Series

polars_st.GeoSeriesNameSpace.x #

x() -> Series

polars_st.GeoSeriesNameSpace.y #

y() -> Series

polars_st.GeoSeriesNameSpace.z #

z() -> Series

polars_st.GeoSeriesNameSpace.m #

m() -> Series

polars_st.GeoSeriesNameSpace.count_coordinates #

count_coordinates() -> Series

polars_st.GeoSeriesNameSpace.coordinates #

coordinates(output_dimension: Literal[2, 3] = 2) -> Series

polars_st.GeoSeriesNameSpace.count_geometries #

count_geometries() -> Series

polars_st.GeoSeriesNameSpace.get_geometry #

get_geometry(index: IntoIntegerExpr) -> GeoSeries

polars_st.GeoSeriesNameSpace.count_points #

count_points() -> Series

polars_st.GeoSeriesNameSpace.get_point #

get_point(index: IntoIntegerExpr) -> GeoSeries

polars_st.GeoSeriesNameSpace.count_interior_rings #

count_interior_rings() -> Series

polars_st.GeoSeriesNameSpace.get_interior_ring #

get_interior_ring(index: IntoIntegerExpr) -> GeoSeries

polars_st.GeoSeriesNameSpace.exterior_ring #

exterior_ring() -> GeoSeries

polars_st.GeoSeriesNameSpace.rings #

rings() -> Series

polars_st.GeoSeriesNameSpace.parts #

parts() -> Series

polars_st.GeoSeriesNameSpace.precision #

precision() -> Series

polars_st.GeoSeriesNameSpace.set_precision #

set_precision(
    grid_size: IntoDecimalExpr,
    mode: Literal["valid_output", "no_topo", "keep_collapsed"] = "valid_output",
) -> GeoSeries

polars_st.GeoSeriesNameSpace.distance #

distance(other: IntoGeoExprColumn) -> Series

polars_st.GeoSeriesNameSpace.hausdorff_distance #

hausdorff_distance(
    other: IntoGeoExprColumn, densify: float | None = None
) -> Series

polars_st.GeoSeriesNameSpace.frechet_distance #

frechet_distance(
    other: IntoGeoExprColumn, densify: float | None = None
) -> Series

polars_st.GeoSeriesNameSpace.srid #

srid() -> Series

polars_st.GeoSeriesNameSpace.set_srid #

set_srid(srid: IntoIntegerExpr) -> GeoSeries

polars_st.GeoSeriesNameSpace.to_srid #

to_srid(srid: IntoIntegerExpr) -> GeoSeries

polars_st.GeoSeriesNameSpace.to_wkt #

to_wkt(
    rounding_precision: int | None = 6,
    trim: bool = True,
    output_dimension: Literal[2, 3, 4] = 3,
    old_3d: bool = False,
) -> Series

polars_st.GeoSeriesNameSpace.to_ewkt #

to_ewkt(
    rounding_precision: int | None = 6,
    trim: bool = True,
    output_dimension: Literal[2, 3, 4] = 3,
    old_3d: bool = False,
) -> Series

polars_st.GeoSeriesNameSpace.to_wkb #

to_wkb(
    output_dimension: Literal[2, 3, 4] = 3,
    byte_order: Literal[0, 1] | None = None,
    include_srid: bool = False,
) -> Series

polars_st.GeoSeriesNameSpace.to_geojson #

to_geojson(indent: int | None = None) -> Series

polars_st.GeoSeriesNameSpace.to_shapely #

to_shapely() -> Series

polars_st.GeoSeriesNameSpace.to_dict #

to_dict() -> Series

polars_st.GeoSeriesNameSpace.to_geopandas #

to_geopandas(
    *, use_pyarrow_extension_array: bool = False, **kwargs: Any
) -> GeoSeries

Convert this Series to a geopandas GeoSeries.

polars_st.GeoSeriesNameSpace.has_z #

has_z() -> Series

polars_st.GeoSeriesNameSpace.has_m #

has_m() -> Series

polars_st.GeoSeriesNameSpace.is_ccw #

is_ccw() -> Series

polars_st.GeoSeriesNameSpace.is_closed #

is_closed() -> Series

polars_st.GeoSeriesNameSpace.is_empty #

is_empty() -> Series

polars_st.GeoSeriesNameSpace.is_ring #

is_ring() -> Series

polars_st.GeoSeriesNameSpace.is_simple #

is_simple() -> Series

polars_st.GeoSeriesNameSpace.is_valid #

is_valid() -> Series

polars_st.GeoSeriesNameSpace.is_valid_reason #

is_valid_reason() -> Series

polars_st.GeoSeriesNameSpace.crosses #

crosses(other: IntoGeoExprColumn) -> Series

polars_st.GeoSeriesNameSpace.contains #

contains(other: IntoGeoExprColumn) -> Series

polars_st.GeoSeriesNameSpace.contains_properly #

contains_properly(other: IntoGeoExprColumn) -> Series

polars_st.GeoSeriesNameSpace.covered_by #

covered_by(other: IntoGeoExprColumn) -> Series

polars_st.GeoSeriesNameSpace.covers #

covers(other: IntoGeoExprColumn) -> Series

polars_st.GeoSeriesNameSpace.disjoint #

disjoint(other: IntoGeoExprColumn) -> Series

polars_st.GeoSeriesNameSpace.dwithin #

dwithin(other: IntoGeoExprColumn, distance: float) -> Series

polars_st.GeoSeriesNameSpace.intersects #

intersects(other: IntoGeoExprColumn) -> Series

polars_st.GeoSeriesNameSpace.overlaps #

overlaps(other: IntoGeoExprColumn) -> Series

polars_st.GeoSeriesNameSpace.touches #

touches(other: IntoGeoExprColumn) -> Series

polars_st.GeoSeriesNameSpace.within #

within(other: IntoGeoExprColumn) -> Series

polars_st.GeoSeriesNameSpace.equals #

equals(other: IntoGeoExprColumn) -> Series

polars_st.GeoSeriesNameSpace.equals_exact #

equals_exact(other: IntoGeoExprColumn, tolerance: float = 0.0) -> Series

polars_st.GeoSeriesNameSpace.equals_identical #

equals_identical(other: IntoGeoExprColumn) -> Series

polars_st.GeoSeriesNameSpace.relate #

relate(other: IntoGeoExprColumn) -> Series

polars_st.GeoSeriesNameSpace.relate_pattern #

relate_pattern(other: IntoGeoExprColumn, pattern: str) -> Series

polars_st.GeoSeriesNameSpace.union #

union(other: IntoGeoExprColumn, grid_size: float | None = None) -> GeoSeries

polars_st.GeoSeriesNameSpace.unary_union #

unary_union(grid_size: float | None = None) -> GeoSeries

polars_st.GeoSeriesNameSpace.coverage_union #

coverage_union() -> GeoSeries

polars_st.GeoSeriesNameSpace.intersection #

intersection(
    other: IntoGeoExprColumn, grid_size: float | None = None
) -> GeoSeries

polars_st.GeoSeriesNameSpace.difference #

difference(
    other: IntoGeoExprColumn, grid_size: float | None = None
) -> GeoSeries

polars_st.GeoSeriesNameSpace.symmetric_difference #

symmetric_difference(
    other: IntoGeoExprColumn, grid_size: float | None = None
) -> GeoSeries

polars_st.GeoSeriesNameSpace.boundary #

boundary() -> GeoSeries

polars_st.GeoSeriesNameSpace.buffer #

buffer(
    distance: IntoDecimalExpr,
    quad_segs: int = 8,
    cap_style: Literal["round", "square", "flat"] = "round",
    join_style: Literal["round", "mitre", "bevel"] = "round",
    mitre_limit: float = 5.0,
    single_sided: bool = False,
) -> GeoSeries

polars_st.GeoSeriesNameSpace.offset_curve #

offset_curve(
    distance: IntoDecimalExpr,
    quad_segs: int = 8,
    join_style: Literal["round", "mitre", "bevel"] = "round",
    mitre_limit: float = 5.0,
) -> GeoSeries

polars_st.GeoSeriesNameSpace.centroid #

centroid() -> GeoSeries

polars_st.GeoSeriesNameSpace.clip_by_rect #

clip_by_rect(xmin: float, ymin: float, xmax: float, ymax: float) -> GeoSeries

polars_st.GeoSeriesNameSpace.convex_hull #

convex_hull() -> GeoSeries

polars_st.GeoSeriesNameSpace.concave_hull #

concave_hull(ratio: float = 0.0, allow_holes: bool = False) -> GeoSeries

polars_st.GeoSeriesNameSpace.segmentize #

segmentize(max_segment_length: IntoDecimalExpr) -> GeoSeries

polars_st.GeoSeriesNameSpace.envelope #

envelope() -> GeoSeries

polars_st.GeoSeriesNameSpace.extract_unique_points #

extract_unique_points() -> GeoSeries

polars_st.GeoSeriesNameSpace.build_area #

build_area() -> GeoSeries

polars_st.GeoSeriesNameSpace.make_valid #

make_valid() -> GeoSeries

polars_st.GeoSeriesNameSpace.normalize #

normalize() -> GeoSeries

polars_st.GeoSeriesNameSpace.node #

node() -> GeoSeries

polars_st.GeoSeriesNameSpace.point_on_surface #

point_on_surface() -> GeoSeries

polars_st.GeoSeriesNameSpace.remove_repeated_points #

remove_repeated_points(tolerance: IntoDecimalExpr = 0.0) -> GeoSeries

polars_st.GeoSeriesNameSpace.reverse #

reverse() -> GeoSeries

polars_st.GeoSeriesNameSpace.simplify #

simplify(
    tolerance: IntoDecimalExpr, preserve_topology: bool = True
) -> GeoSeries

polars_st.GeoSeriesNameSpace.minimum_rotated_rectangle #

minimum_rotated_rectangle() -> GeoSeries

polars_st.GeoSeriesNameSpace.snap #

snap(other: IntoGeoExprColumn, tolerance: IntoDecimalExpr) -> GeoSeries

polars_st.GeoSeriesNameSpace.shortest_line #

shortest_line(other: IntoGeoExprColumn) -> GeoSeries

polars_st.GeoSeriesNameSpace.interpolate #

interpolate(distance: IntoDecimalExpr, normalized: bool = False) -> GeoSeries

polars_st.GeoSeriesNameSpace.line_merge #

line_merge(directed: bool = False) -> GeoSeries

polars_st.GeoSeriesNameSpace.shared_paths #

shared_paths(other: IntoGeoExprColumn) -> GeoSeries

polars_st.GeoSeriesNameSpace.total_bounds #

total_bounds() -> Series

polars_st.GeoSeriesNameSpace.multipoint #

multipoint() -> GeoSeries

polars_st.GeoSeriesNameSpace.multilinestring #

multilinestring() -> GeoSeries

polars_st.GeoSeriesNameSpace.multipolygon #

multipolygon() -> GeoSeries

polars_st.GeoSeriesNameSpace.geometrycollection #

geometrycollection() -> GeoSeries

polars_st.GeoSeriesNameSpace.collect #

collect() -> GeoSeries

polars_st.GeoSeriesNameSpace.union_all #

union_all(grid_size: float | None = None) -> GeoSeries

polars_st.GeoSeriesNameSpace.coverage_union_all #

coverage_union_all() -> GeoSeries

polars_st.GeoSeriesNameSpace.intersection_all #

intersection_all(grid_size: float | None = None) -> GeoSeries

polars_st.GeoSeriesNameSpace.difference_all #

difference_all(grid_size: float | None = None) -> GeoSeries

polars_st.GeoSeriesNameSpace.symmetric_difference_all #

symmetric_difference_all(grid_size: float | None = None) -> GeoSeries

polars_st.GeoSeriesNameSpace.polygonize #

polygonize() -> GeoSeries

polars_st.GeoSeriesNameSpace.voronoi_polygons #

voronoi_polygons(
    tolerance: float = 0.0,
    extend_to: bytes | None = None,
    only_edges: bool = False,
) -> GeoSeries

polars_st.GeoSeriesNameSpace.delaunay_triangles #

delaunay_triangles(
    tolerance: float = 0.0, only_edges: bool = False
) -> GeoSeries

polars_st.GeoSeriesNameSpace.plot #

plot(**kwargs: Unpack[EncodeKwds]) -> Chart

Draw map plot.

Polars does not implement plotting logic itself but instead defers to Altair.

df.st.plot(**kwargs) is shorthand for alt.Chart(df).mark_geoshape().encode(**kwargs).interactive(). Please read Altair GeoShape documentation for available options.