Python geospatial library
Project description
pyturf
Read the docs
pyturf
is a powerful geospatial library written in python, based on turf.js,
a popular library written in javascript. It follows the same modular structure and maintains the same functionality as the original
modules in that library for maximum compatibility.
It includes traditional geospatial operations, as well as helper functions for creating and manipulating GeoJSON data.
Installation
$ pip install pyturf
Usage
Most pyturf
modules expect as input GeoJSON features or a collection of these, which can be the following:
- Point / MultiPoint
- LineString / MultiLineString
- Polygon / MultiPolygon
These can either be defined as a python dictionary or as objects from pyturf
helper classes.
# example as a dictionary:
point1 = {
"type": "Feature",
"properties": {},
"geometry": {
"type": "Point",
# Note order: longitude, latitude.
"coordinates": [-73.988214, 40.749128]
}
}
...
# Example using objects from helper classes
from turf import point
# Note order: longitude, latitude.
point1 = point([-73.988214, 40.749128])
In order to use the modules, one can import directly from pyturf
, such as:
from turf import distance, point
point1 = point([-73.988214, 40.749128])
point2 = point([-73.838432, 40.738484])
dist = distance(point1, point2, {"units": "miles"})
Available Modules
Currently, the following modules have been implemented:
- along
- area
- bbox
- bbox-polygon
- bearing
- boolean-disjoint
- boolean-intersects
- boolean-point-in-polygon
- boolean-point-on-line
- boolean-within
- center
- centroid
- destination
- distance
- envelope
- explode
- great circle
- helpers
- hex_grid
- length
- line-intersect
- midpoint
- nearest-point
- point-grid
- point-on-feature
- point-to-line-distance
- polygon-tangents
- polygon-to-line
- rectangle-grid
- rhumb-bearing
- rhumb-destination
- rhumb-distance
- square
- square-grid
- triangle-grid
Contributing
This library is a work in progress, so pull requests from the community are welcome!
Check out CONTRIBUTING.md for a detailed explanation on how to contribute.
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.