Python tools for PostGIS
Project description
plpygis
plpygis is a pure Python module with no dependencies that can convert geometries between Well-known binary (WKB/EWKB), Well-known Text (WKT/EWKT) and GeoJSON representations. plpygis is mainly intended for use in PostgreSQL PL/Python functions to augment PostGIS's native capabilities.
Basic usage
plpygis implements several subclasses of the Geometry class, such as Point, LineString, MultiPolygon and so on:
>>> from plpygis import Point
>>> p = Point((-124.005, 49.005), srid=4326)
>>> print(p.ewkb)
0101000020e6100000b81e85eb51005fc0713d0ad7a3804840
>>> print(p.geojson)
{'type': 'Point', 'coordinates': [-124.005, 49.005]}
>>> p.z = 1
>>> print(p.wkt)
POINT Z (-124.005 49.005 1)
Usage with PostGIS
plpygis is designed to provide an easy way to implement PL/Python functions that accept geometry arguments or return geometry results. The following example will take a PostGIS geometry(Point) and use an external service to create a geometry(PointZ).
CREATE OR REPLACE FUNCTION add_elevation(geom geometry(POINT))
RETURNS geometry(POINTZ)
AS $$
from plpygis import Geometry
from requests import get
p = Geometry(geom)
response = get(f'https://api.open-meteo.com/v1/elevation?longitude={p.x}&latitude={p.y}')
if response.status_code == 200:
content = response.json()
p.z = content['elevation'][0]
return p
else:
return None
$$ LANGUAGE plpython3u;
The Geometry() constructor will convert a PostGIS geometry that has been passed as a parameter to the PL/Python function into one of its plpygis subclasses. A Geometry that is returned from the PL/Python function will automatically be converted back to a PostGIS geometry.
The function above can be called as part of an SQL query:
SELECT
name,
add_elevation(geom)
FROM
city;
Documentation
Full plpygis documentation is available at http://plpygis.readthedocs.io/.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file plpygis-0.6.1.tar.gz.
File metadata
- Download URL: plpygis-0.6.1.tar.gz
- Upload date:
- Size: 34.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
30a119b3d5a60e285a7a66ee95b65a5efcc0d569b2d02d3183e736bbad7f748b
|
|
| MD5 |
e863846877e2a80af816ffb1e0cf718d
|
|
| BLAKE2b-256 |
15b058b5ee5caffff4fec4445443d5076012ec911f4e9e694172050adc5305d8
|
File details
Details for the file plpygis-0.6.1-py3-none-any.whl.
File metadata
- Download URL: plpygis-0.6.1-py3-none-any.whl
- Upload date:
- Size: 25.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
79bccb916ab6768d15af505ec9d2a2f894735c5c8eef18ba7dc9fa46a697ec08
|
|
| MD5 |
58c203ed436eacbdc7bdf660d3533de8
|
|
| BLAKE2b-256 |
54ff5135eb38650e5a39612d13734379c37d1caceb59404cc1461813c0406cdb
|