No project description provided
Project description
GeoDesk is a fast and storage-efficient geospatial database for OpenStreetMap data. Also available for Java.
Why GeoDesk?
-
Small storage footprint — GeoDesk's GOL files are only 20% to 50% larger than the original OSM data in PBF format — that's less than a tenth of the storage consumed by a traditional SQL-based database.
-
Fast queries — typically 50 times faster than SQL.
-
Fast to get started — Converting
.osm.pbf
data to a GOL is 20 times faster than an import into an SQL database. Alternatively, download pre-made data tiles for just the regions you need and automatically assemble them into a GOL. -
Intuitive API — No need for object-relational mapping; GeoDesk queries return Python objects. Quickly discover tags, way-nodes and relation members. Get a feature's geometry, measure its length/area.
-
Proper handling of relations — (Traditional geospatial databases deal with geometric shapes and require workarounds to support this unique and powerful aspect of OSM data.)
-
Seamless integration with Shapely for advanced geometric operations, such as buffer, union, simplify, convex and concave hulls, Voronoi diagrams, and much more.
-
Modest hardware requirements — If it can run 64-bit Python, it'll run GeoDesk.
Get Started
Requirements
- Python 3.7 or above
- Java 16 or above (for the GOL Tool)
Download
pip install geodesk
Create a GOL
Create a Geographic Object Library based on any .osm.pbf
file, using the
GOL Tool (Requires Java 16+).
For example:
gol build switzerland switzerland-latest.osm.pbf
Example Application
Find all the pubs in Zurich (Switzerland) and print their names:
from geodesk import *
# Open switzerland.gol
features = Features("switzerland")
# Get the feature that represents the area of the city of Zurich
zurich = features("a[boundary=adminstrative][admin_level=8][name:en=Zurich]").one
# Define a set that contains nodes and areas that are pubs
pubs = features("na[amenity=pub]")
# Iterate through the pubs that are contained in the area of Zurich
# and print their names
for pub in pubs.within(zurich):
print(pub.name)
More Examples
Find all movie theaters within 500 meters from a given point:
movieTheaters = features("na[amenity=cinema]").around(
meters=500, lat=47.37, lon=8.54)
Remember, OSM uses British English for its terminology.
Discover the bus routes that traverse a given street:
for route in street.parents("[route=bus]")):
print(f"- {route.ref} from {route.from} to {route.to}")
Count the number of entrances of a building:
number_of_entrances = building.nodes("[entrance]").count
Documentation
Related Repositories
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 Distributions
Built Distributions
Hashes for geodesk-0.1.1-cp312-cp312-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eaa976abff110fd8116dc384071176207c275bb5e4e496e79ce8eaf8c75cb434 |
|
MD5 | f69862159e0ca6e77c05b724e5cbcf96 |
|
BLAKE2b-256 | 0ea8f36646da19ff0f423a0020b88ec852a1268cba4f86d4dd59285ea2160d29 |
Hashes for geodesk-0.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e7600d60051c44ec48b310d699096f4d0a9f8642d9a4cb4e648ac764a52c7ebb |
|
MD5 | 101ddcd3000df5f4916102b3fb4aedb1 |
|
BLAKE2b-256 | c67d9ce66d62486714a8747e9982266a22b872cbdd308af96b50b200a42b7116 |
Hashes for geodesk-0.1.1-cp312-cp312-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 89394196aa8dcc15200eb09be7c74e8218c7f373c3657afaab175df6de258056 |
|
MD5 | 6201a771678097d17781a10e13fa32dd |
|
BLAKE2b-256 | dce1e0a602aee7210903c86c73961d903af2c694d72110b213bee6a37bc5a40d |
Hashes for geodesk-0.1.1-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2eb5bdd1a0375315e850918a22dbab76d414a8786369693238c0d7fdc7460b1f |
|
MD5 | 7664bcf9c69fa70091e328ba1f438780 |
|
BLAKE2b-256 | aacc202b60b4e6e9b0da7b68a0b4befee32b146567da4f66294f93d3909ee333 |
Hashes for geodesk-0.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6fd25ed1edd42155c36f7bd27a800851a571d6461a2e1881d18bdb091f76e59d |
|
MD5 | 85a8a77d357aa6ae25301f06fe0573b2 |
|
BLAKE2b-256 | 73d1fee8966af8bde6df4e575de905965111d805ca334b5b705570d40a9bf433 |
Hashes for geodesk-0.1.1-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dc9be1c3914ab171d02b2980ae3867392e63200b622b40021da5902b58c06c56 |
|
MD5 | 49b5d0a6cb5fddd52d29ab4e5e6c9361 |
|
BLAKE2b-256 | 7062a12cf3199acd3646ee7ea4ae19eba4463bc8cf1734ad00b7e7f9901d99e2 |
Hashes for geodesk-0.1.1-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fb7b1fb6447c6a4baf5dbaecd44107479cfba3fb09c7661790905cd9bec8270b |
|
MD5 | d2d9697b9dec9deb7946ebef8c92de4d |
|
BLAKE2b-256 | cd870529080327e46e54cfb0750232f3b1844bccb89d1e50e5ccf0ed3673efc5 |
Hashes for geodesk-0.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 550de47bc6bdcab2bf6a39a98c0bb55a84395e1824a1eec75cbdf8c8600d5133 |
|
MD5 | f1522ea48fa3f084790e29183bda9274 |
|
BLAKE2b-256 | d91fc52623e3d5a9e6e193f20d4d8bd5e908c8ec8302cee0b99653898786759f |
Hashes for geodesk-0.1.1-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8a614f7861cbc08c2fa0b7a9d0777708b6ff7ac9b0bbdec971b9f107d8483f83 |
|
MD5 | bc502835d49856ab85de5c42ebceda3e |
|
BLAKE2b-256 | 2a9abcd03f8616ad280cb0f03bdde34591568e09c0e650df773bdc9e6bf1be45 |
Hashes for geodesk-0.1.1-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 200d73cab32d90ae71f82dce11378c36907ed47b5a85c46fa666145ae6d167c0 |
|
MD5 | 37588597a1ec12042539797f022efd54 |
|
BLAKE2b-256 | 05679343e5bc705270341bc9b75969e12bf931e99b2cdbc469dd2d52745e6fde |
Hashes for geodesk-0.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dbf76e914bd9640d89c81834409a9e2a651460cf7d060624921ddce30033c716 |
|
MD5 | 69f5da655a4b1362d9ac27f7eb78c0ae |
|
BLAKE2b-256 | c8c525c68901e854e80207e0568ec5f0f16e94d63d430ae2808afdb0b628513d |
Hashes for geodesk-0.1.1-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6ab4f4d1f832fea79ca95b9102c1b9b80906aa4115205b8ecdc4713c8c2e213a |
|
MD5 | 55b4d3c4073a675711d75caf9928d449 |
|
BLAKE2b-256 | 48321a728d20ff4da21ced1d0a80954df361efc9a7a6cd7d53aa8deec9ca3e9e |
Hashes for geodesk-0.1.1-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 358553de6071e6a5285a141de3f6a3700b9a570752c8b0d55434eb71320e150d |
|
MD5 | a1850e28a667ed58c6cfe9a0ea3c9af0 |
|
BLAKE2b-256 | 03609422f9bb4120089793aa06b39b26b4122fff5ac6b4b6adcd94bb7fb402a1 |
Hashes for geodesk-0.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d03ef36e17225fab41adbab90649b7d2ca796b533b24fdb78dd0646028565809 |
|
MD5 | 3ce5041c70fd6ddd493e4fb0ecb10d4e |
|
BLAKE2b-256 | 8ee53a018c79754f54f3d658e58a90c8d5da9332c5a53d84a3ed11d89a876c69 |
Hashes for geodesk-0.1.1-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 499aa4562fc7d1a944ef51ccbfd0c3a6ce1f6f76bcacdfa1037edce04b800463 |
|
MD5 | 6f1bd13b0887c792cd2cc77d65c73869 |
|
BLAKE2b-256 | 71e49140546f0319eeca04bf5870a3971bbc72f493f92d4828f706881b928f8f |
Hashes for geodesk-0.1.1-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2035dfeaa1acdfa85e835099f488e0198eb350dca5989d3e34c9ef8ea6b1dc9b |
|
MD5 | ce601015c3108103c5389ad4562929d2 |
|
BLAKE2b-256 | 041e6356fc3d199c0d54a827c369a09c1c81cdb58af3d7642d70088c61de6d3d |
Hashes for geodesk-0.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a66ddcb7f86b28ca193f8fb85462bf8764e4a861efe449dce38ad9e185f007cd |
|
MD5 | b901ddb467a0f4c4de1946854a7b7a5b |
|
BLAKE2b-256 | 48eba65ed1d07980a25d898a371d83ed8b6df4f7660c054f1eae957963fbdcb8 |
Hashes for geodesk-0.1.1-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5fb8f7dea35bb9bdea34aefad94a3eeb66f3eb6559e9354068cdaa2c60c07512 |
|
MD5 | e3f7bc1d98f32b78c16c1057b2e56734 |
|
BLAKE2b-256 | 13394b60b807460c15daef859f03b3a4f15f0d324c10924809ce75aa47e84fd2 |