Skip to main content

Wrapper over Shapely that returns the set of geohashes that form a Polygon

Project description

polygon-geohasher

Polygon Geohasher is an open source Python package for converting Shapely's polygons into a set of geohashes. It obtains the set of geohashes inside a polygon or geohashes that touch (intersect) the polygon. This library uses python-geohash and shapely.

Requirements

Polygon Geohasher requires:

  • Python >= 3.x.
  • GEOS >= 3.3 (due to shapely).

Installing

Linux users can get Polygon Geohasher from the Python Package Index with pip (8+):

$ pip install polygon-geohasher

Usage

Here are some simple examples:

from polygon_geohasher import polygon_to_geohashes, geohashes_to_polygon
from shapely import geometry

polygon = geometry.Polygon([(-99.1795917, 19.432134), (-99.1656847, 19.429034),
                            (-99.1776492, 19.414236), (-99.1795917, 19.432134)])
inner_geohashes_polygon = geohashes_to_polygon(polygon_to_geohashes(polygon, 7))
outer_geohashes_polygon = geohashes_to_polygon(polygon_to_geohashes(polygon, 7, False))

Benchmarking

Compare the optimized implementation against the legacy algorithm:

$ .venv/bin/python benchmarks/polygon_to_geohashes.py --iterations 5 --precision 7

Use --inner or --outer to focus on a single mode, and --no-validate to skip output validation.

geohash_to_polygon(geohash):

This function receives a geohash and returns a Shapely's Polygon.

geohashes_to_polygon(geohashes):

This function receives a set of geohashes and returns a Shapely's Polygon or MultiPolygon.

polygon_to_geohashes(polygon, precision[, inner=True]):

This function receives a Shapely's Polygon and the precision of geohashes to be used to create a polygon and returns a set of geohashes (strings) that covers said polygon. It also receives an optional parameter inner that defines the way in which those polygons will be created. If an inner parameter is given, then only contained geohashes will be used; otherwise, intersected geohashes will be used.

See geohashed polygons resulting from both options (with and without inner) in the following example:

Example

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

polygon_geohasher-0.0.2.tar.gz (4.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

polygon_geohasher-0.0.2-py3-none-any.whl (5.7 kB view details)

Uploaded Python 3

File details

Details for the file polygon_geohasher-0.0.2.tar.gz.

File metadata

  • Download URL: polygon_geohasher-0.0.2.tar.gz
  • Upload date:
  • Size: 4.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for polygon_geohasher-0.0.2.tar.gz
Algorithm Hash digest
SHA256 3c7eb95e3ee85028bf2337a17a3c61ca3088d588b57752bb2bf3b5c67690a14e
MD5 d81023e6fb75f8e7a3977f606e228013
BLAKE2b-256 b6ba33c6602bb15fe0526e7eee73dde44eae9d0a6e3bdf927e02f4172fca47a5

See more details on using hashes here.

File details

Details for the file polygon_geohasher-0.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for polygon_geohasher-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b0b34e6b96a43f10e792926d93711a6a760ea112df88027b5dbd0051ca5d5f78
MD5 ceebf5de6d8575365a0cb81900402470
BLAKE2b-256 f60b563d1c7930f78324f8cb5f932be0f32955aea08eb39041ba918092f11ca3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page