SpatialTypes functions for extend PyPika with GIS
Project description
PyPika GIS
This library contains SpatialTypes functions for extending PyPika with GIS.
Table of Contents
Install
pip install pypika-gis
Examples
PostGIS
from pypika import Query, Table
from pypika_gis.spatialtypes import postgis as st
table = Table('table')
query = Query.from_(table).select(table.id, st.AsGeoJSON(table.geom))
print(str(query))
# SELECT "id",ST_AsGeoJSON('geom') FROM "table"
query = Query.from_(table).select('id').where(
st.Intersects(table.geom, st.SetSRID(st.MakePoint(10, 5), 4326)))
print(str(query))
# SELECT "id" FROM "table" WHERE ST_Intersects('geom',ST_SRID(ST_MakePoint(10,5),4326))
MSSQLSpatial
from pypika import Query, Table
from pypika_gis.spatialtypes import mssql as st
table = Table('table')
query = Query.from_(table).select(table.id, st.AsText(table.geom))
print(str(query))
# SELECT "id",geom.STAsText() FROM "table"
query = Query.from_(table).select(table.id).where(
st.Intersects(table.geom, st.GeomFromText('POINT(10 10)', 4326)))
print(str(query))
# SELECT "id" FROM "table" WHERE geom.STIntersects(geometry::STGeomFromText('POINT(10 10)',4326))
Available functions
| pypika-gis | PostGIS | MSSQLSpatial |
|---|---|---|
| Area | ST_Area |
STArea |
| AsBinary | ST_AsBinary |
STAsBinary |
| AsGeoJSON | ST_AsGeoJSON |
❌ |
| AsMVT | ST_AsMVT |
❌ |
| AsText | ST_AsText |
STAsText |
| Boundary | ST_Boundary |
STBoundary |
| Buffer | ST_Buffer |
STBuffer |
| Centroid | ST_Centroid |
STCentroid |
| ClosestPoint | ST_ClosestPoint |
❌ |
| Contains | ST_Contains |
STContains |
| ConvexHull | ST_ConvexHull |
STConvexHull |
| CoveredBy | ST_CoveredBy |
❌ |
| Covers | ST_Covers |
❌ |
| Crosses | ST_Crosses |
STCrosses |
| CurveN | ❌ | STCurveN |
| CurveToLine | ST_CurveToLine |
STCurveToLine |
| Difference | ST_Difference |
STDifference |
| Dimension | ST_Dimension |
STDimension |
| Disjoint | ST_Disjoint |
STDisjoint |
| Distance | ST_Distance |
STDistance |
| DWithin | ST_DWithin |
❌ |
| EndPoint | ST_EndPoint |
STEndPoint |
| Envelope | ST_Envelope |
STEnvelope |
| Equals | ST_Equals |
STEquals |
| ExteriorRing | ST_ExteriorRing |
STExteriorRing |
| Extent | ST_Extent |
❌ |
| GeoHash | ST_GeoHash |
❌ |
| GeometryN | ST_GeometryN |
STGeometryN |
| GeometryType | ST_GeometryType |
STGeometryType |
| GeogFromGeoJSON | ST_GeogFromGeoJSON |
❌ |
| GeogFromText | ST_GeogFromText |
STGeomFromText |
| GeogFromWKB | ST_GeogFromWKB |
STGeomFromWKB |
| GeogPoint | ST_GeogPoint |
❌ |
| GeogPointFromGeoHash | ST_GeogPointFromGeoHash |
❌ |
| GeomFromGeoJSON | ST_GeomFromGeoJSON |
❌ |
| InteriorRingN | ST_InteriorRingN |
STInteriorRingN |
| Intersection | ST_Intersection |
STIntersection |
| Intersects | ST_Intersects |
STIntersects |
| IsCollection | ST_IsCollection |
❌ |
| IsClosed | ST_IsClosed |
STIsClosed |
| IsEmpty | ST_IsEmpty |
STIsEmpty |
| IsRing | ST_IsRing |
STIsRing |
| IsSimple | ST_IsSimple |
STIsSimple |
| IsValid | ST_IsValid |
STIsValid |
| Length | ST_Length |
STLength |
| MakeLine | ST_MakeLine |
❌ |
| MakePoint | ST_MakePoint |
❌ |
| MakePolygon | ST_MakePolygon |
❌ |
| NumCurves | ❌ | STNumCurves |
| NumGeometries | ❌ | STNumGeometries |
| NumInteriorRing | ❌ | STNumInteriorRing |
| NumPoints | ❌ | STNumPoints |
| Overlaps | ST_Overlaps |
STOverlaps |
| Perimeter | ST_Perimeter |
❌ |
| Point | ST_Point |
Point |
| PointN | ST_PointN |
STPointN |
| PointOnSurface | ST_PointOnSurface |
STPointOnSurface |
| Relate | ST_Relate |
STRelate |
| SetSRID | ST_SetSRID |
❌ |
| SRID | ❌ | STSrid1 |
| StartPoint | ST_StartPoint |
STStartPoint |
| SymDifference | ❌ | STSymDifference |
| Touches | ST_Touches |
STTouches |
| Union | ST_Union |
STUnion |
| Within | ST_Within |
STWithin |
| X | ST_X |
STX1 |
| Y | ST_Y |
STY1 |
| Z | ST_Z |
❌ |
Development
Dependencies
Setup
poetry install
poetry run pre-commit install
Tests
Full tests and coverage
poetry run pytest
Publish
poetry build
poetry publish
Credits
pypika-gis is based on PyPika. Check their page for further query buider instructions, examples and more details about PyPika core.
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
pypika-gis-2.0.0.tar.gz
(12.7 kB
view details)
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 pypika-gis-2.0.0.tar.gz.
File metadata
- Download URL: pypika-gis-2.0.0.tar.gz
- Upload date:
- Size: 12.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.11 CPython/3.8.10 Linux/5.11.0-37-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ae1b26d383ee3c1546da03b7e4e31906d899db9a45d7af480b7eb87e036ca172
|
|
| MD5 |
f4ec30f8e5708d2d6c1f660e8b354624
|
|
| BLAKE2b-256 |
a22a72d406e621a65b2a4ce5bf9b10960705d1470cddf3a507dcdfe6959e8916
|
File details
Details for the file pypika_gis-2.0.0-py3-none-any.whl.
File metadata
- Download URL: pypika_gis-2.0.0-py3-none-any.whl
- Upload date:
- Size: 12.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.11 CPython/3.8.10 Linux/5.11.0-37-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
36c2ae3f01bad76ecb0a21e45452b422a5f9972ccf40beb1bcc18db83d75c8a7
|
|
| MD5 |
fa645f9dcd36410d48bf067a7d1bc70a
|
|
| BLAKE2b-256 |
af627b2a0205a44b18740029949b83eae4b05ca76f186951272f3132d96f9dd5
|