geomet
Pure Python conversion library for common geospatial data formats
What it is and what it does
GeoMet is a pure-Python library for converting between common geospatial data formats: GeoJSON, WKT (Well-Known Text), WKB (Well-Known Binary), Extended WKT/WKB (EWKT/EWKB), GeoPackage Binary, and EsriJSON. It handles 2D, 3D, and 4D geometries including Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon, and GeometryCollection types. The library exposes conversions through idiomatic load/loads/dump/dumps interfaces, making it straightforward to parse and serialize geometries.
The package was created to avoid the complexity and maintenance burden of depending on GEOS, a compiled C/C++ library. By implementing format conversion in pure Python, GeoMet allows geometry bugs to be fixed directly in the library without waiting for upstream GEOS releases. It also preserves SRID (spatial reference system identifier) information through conversions via a custom GeoJSON extension, and supports envelope metadata in GeoPackage format.
Use it for:
- Convert GeoJSON from web APIs into WKT for database storage or PostGIS queries
- Parse WKB binary data from GeoPackage files and transform to GeoJSON for web applications
- Preserve SRID information when converting between EWKT and EWKB formats in spatial workflows
- Serialize geometry objects to EsriJSON for Esri mapping platforms
- Handle mixed-dimension geometries (2D, 3D, 4D with Z, M, ZM coordinates) in data pipelines
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Converts between GeoJSON, WKT/WKB, Extended WKT/WKB, GeoPackage Binary, and EsriJSON formats for 2D, 3D, and 4D geometries without requiring compiled dependencies.
Yes. GeoMet is stable, permissively licensed, has low install friction, and covers all common geospatial format conversions without compiled dependencies. The aging maintenance status (last release November 2023) is a minor concern for a mature library with no known vulnerabilities, but check whether your specific format combinations and SRID use cases are fully supported before committing to a production dependency.
Install
geomet on PyPI
pip
pip install geometuv
uv add geometpoetry
poetry add geometInstalling geomet
Before you install
Low install friction with a single runtime dependency (click). The package is in production/stable status but aging—last release was over a year ago (November 2023) and the last commit was June 2025, suggesting maintenance is infrequent but not abandoned.
License in practice
Licensed under Apache-2.0 (permissive), which allows commercial use, modification, and distribution with minimal restrictions—suitable for most projects.
Quickstart
pip install geomet
from geomet import wkt
point = {'type': 'Point', 'coordinates': [116.4, 45.2, 11.1]}
wkt.dumps(point, decimals=4)
# Output: 'POINT (116.4000 45.2000 11.1000)'
Verify before relying
- Performance characteristics when handling large geometry collections or high-volume conversions
- Whether SRID preservation works consistently across all format combinations
- Completeness of EsriJSON support relative to the Esri specification
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.7) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — click |
| Maintenance | aging — 1,004 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 8,871,331/month — #1,585 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: geomet-1.1.0-py3-none-any.whl
Keywords: esri, ewkb, ewkt, geojson, geopackage, geospatial, gis, spatial, wkb, wkt
Tags
More GIS packages
Shapely provides Python tools for creating,…
permissive · top 1,000 on PyPI
pyprojpyproj provides a Python interface to PROJ,…
permissive · top 1,000 on PyPI
geopandasGeoPandas extends pandas DataFrames to handle…
permissive · top 1,000 on PyPI
geopygeopy is a Python client for geocoding and…
permissive · top 5,000 on PyPI
pyogrioPyogrio provides fast, bulk-oriented read and…
permissive · top 5,000 on PyPI
h3h3 provides Python bindings to Uber's H3…
permissive · top 5,000 on PyPI
mapbox-vector-tileEncodes and decodes Mapbox Vector Tiles (MVT)…
permissive · top 15,000 on PyPI
plpygisConverts geometries between WKB/EWKB, WKT/EWKT,…
copyleft · top 15,000 on PyPI
arcgis2geojsonConverts ArcGIS JSON format to GeoJSON format,…
permissive · top 15,000 on PyPI
geojsonEncodes, decodes, and represents GeoJSON…
permissive · top 5,000 on PyPI
kml2geojsonConverts KML files to GeoJSON format,…
permissive · top 15,000 on PyPI
fudgeofudgeo creates and manages OGC…
permissive · top 15,000 on PyPI
pydantic-geojsonProvides Pydantic-based type-safe validation…
permissive · top 15,000 on PyPI
osm2geojsonConverts OpenStreetMap and Overpass API data…
permissive · top 15,000 on PyPI
geoarrow-typesProvides pure Python utilities to manage,…
permissive · top 15,000 on PyPI
geobufGeobuf encodes GeoJSON to a compact binary…
permissive · top 15,000 on PyPI