Skip to main content

Fast and storage-efficient spatial database engine for OpenStreetMap features

Project description

PyPI

GeoDesk is a fast and storage-efficient geospatial database for OpenStreetMap data. Also available for C++ and for Java.

[!IMPORTANT] For Version 2.0, you will need to build GOLs with GOL Tool 2.0.

To read GOLs built with GOL Tool 1.x, use Version 1.3.0 of this toolkit.

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

Download

pip install geodesk

Create a GOL

Create a Geographic Object Library based on any .osm.pbf file, using the GOL Tool.

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

GeoDesk Developer's Guide

Related Repositories

  • geodesk — GeoDesk for Java
  • libgeodesk — GeoDesk for C++
  • geodesk-gol — command-line utility for building, maintaining and querying GOL files
  • gol-tool — legacy GOL Tool (supports GOL 1.0 files)

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

geodesk-2.2.2-cp314-cp314-win_amd64.whl (492.1 kB view details)

Uploaded CPython 3.14Windows x86-64

geodesk-2.2.2-cp314-cp314-musllinux_1_2_x86_64.whl (2.7 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

geodesk-2.2.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

geodesk-2.2.2-cp314-cp314-macosx_11_0_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.14macOS 11.0+ x86-64

geodesk-2.2.2-cp314-cp314-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

geodesk-2.2.2-cp313-cp313-win_amd64.whl (477.0 kB view details)

Uploaded CPython 3.13Windows x86-64

geodesk-2.2.2-cp313-cp313-musllinux_1_2_x86_64.whl (2.7 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

geodesk-2.2.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

geodesk-2.2.2-cp313-cp313-macosx_11_0_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.13macOS 11.0+ x86-64

geodesk-2.2.2-cp313-cp313-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

geodesk-2.2.2-cp312-cp312-win_amd64.whl (477.0 kB view details)

Uploaded CPython 3.12Windows x86-64

geodesk-2.2.2-cp312-cp312-musllinux_1_2_x86_64.whl (2.7 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

geodesk-2.2.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

geodesk-2.2.2-cp312-cp312-macosx_11_0_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.12macOS 11.0+ x86-64

geodesk-2.2.2-cp312-cp312-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

geodesk-2.2.2-cp311-cp311-win_amd64.whl (476.8 kB view details)

Uploaded CPython 3.11Windows x86-64

geodesk-2.2.2-cp311-cp311-musllinux_1_2_x86_64.whl (2.7 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

geodesk-2.2.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

geodesk-2.2.2-cp311-cp311-macosx_11_0_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.11macOS 11.0+ x86-64

geodesk-2.2.2-cp311-cp311-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

geodesk-2.2.2-cp310-cp310-win_amd64.whl (476.9 kB view details)

Uploaded CPython 3.10Windows x86-64

geodesk-2.2.2-cp310-cp310-musllinux_1_2_x86_64.whl (2.7 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

geodesk-2.2.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

geodesk-2.2.2-cp310-cp310-macosx_11_0_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.10macOS 11.0+ x86-64

geodesk-2.2.2-cp310-cp310-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file geodesk-2.2.2-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: geodesk-2.2.2-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 492.1 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for geodesk-2.2.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 69e7b6259614808549261b2ea60ca94ee2299e04c4c73ff51d98286c08823a8f
MD5 269dac5ca2dc3c9543f01a238263d954
BLAKE2b-256 2c9c1ad792f7335608b597dec9b8e8b8d586f44e585b1a8f1b1a8d1082445bcd

See more details on using hashes here.

File details

Details for the file geodesk-2.2.2-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for geodesk-2.2.2-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 73edd6fb00543897df3fa3236b7160dcc2c4907e0cb77ab6035b1df32d1df032
MD5 a7692075448eea85903b13032a32388b
BLAKE2b-256 31525f70ef8caca7dc720ec4f7a8b2c6e04229ad86ad45e90c031ea8597e9f1f

See more details on using hashes here.

File details

Details for the file geodesk-2.2.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for geodesk-2.2.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 10fdfa1aae01776c686cdb0451d7afcecde2192a48c8686a9998f7c992f39576
MD5 c9b782b7031f68f47366d1c852e4ad34
BLAKE2b-256 4dbbc89d7cdc27b16e932cd97ce61dcc2746cc57b6c3fc0b45838171d6e251fa

See more details on using hashes here.

File details

Details for the file geodesk-2.2.2-cp314-cp314-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for geodesk-2.2.2-cp314-cp314-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 37b9bfe6f6f375881b134f7677bd4df7faf6013ef006deb8e5c72fc715d0de57
MD5 f1db72e2639eec09d8e2dc3665e5f9c4
BLAKE2b-256 fbffd601205a4c3f3bc2026f7003483dff5196030a93891158ad931bb5feb3bb

See more details on using hashes here.

File details

Details for the file geodesk-2.2.2-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for geodesk-2.2.2-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b0b415ef40fe02d42bfed913dceeece96011dd2edc10604c554e24b8186927e6
MD5 f21ce2efe1b6dd6a932fe71617c83934
BLAKE2b-256 863fed9c8f1212769405f9e70df7a3581956bbb860f1ee879e470febb00b9374

See more details on using hashes here.

File details

Details for the file geodesk-2.2.2-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: geodesk-2.2.2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 477.0 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for geodesk-2.2.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 a5d00919142a6a6060bd7ca7c953670fdb151f7686c718eb2e99f8c21e573da1
MD5 7dd07bdf3e1f48b7dcecf006bceeec57
BLAKE2b-256 03496dae2434c98394b51e92658dbe4be0318323f375009fd7e6aecd5be2cadb

See more details on using hashes here.

File details

Details for the file geodesk-2.2.2-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for geodesk-2.2.2-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4a4db71cf0a2138c2cdbe597299cf73db6ea8cd0486654581d217b28ba6f0ec5
MD5 60e66c5e785372d1fd9a57b773717390
BLAKE2b-256 c768e2ea76ef5968c6dd4c71ac74eb079d215c795c338dca117df5bd08c3d889

See more details on using hashes here.

File details

Details for the file geodesk-2.2.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for geodesk-2.2.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 20321e13b58351fcd686376cb3a010972d5e7b0578a03e058ba30592ee5de13f
MD5 59adc678b383f89ae5b8c9ea76814d7b
BLAKE2b-256 1711e9b4967c688f844069f82a2671e6352cedbacecffaba3eedbe247b7dd5d7

See more details on using hashes here.

File details

Details for the file geodesk-2.2.2-cp313-cp313-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for geodesk-2.2.2-cp313-cp313-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 d1f083f32f285dffc9691b4b01e7dff3d124109590b1343765099cd26ea498cd
MD5 618cfa5ba4ded0a2d4648712fbeaed7b
BLAKE2b-256 0338f48ac8a4ad6a6fa1a81c69f876b31826d327674d82ebe120a56f7b9e780c

See more details on using hashes here.

File details

Details for the file geodesk-2.2.2-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for geodesk-2.2.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b7f8e3004d53a97e3f160685495880014354dfadbf5937080d5d7695fd9bf4c6
MD5 9370aaa42a3f8d72a5585d2d12305425
BLAKE2b-256 01116e38443419b05eccb12dc595bdb0b9ef9a9a3436768a8bf24b00681b33b2

See more details on using hashes here.

File details

Details for the file geodesk-2.2.2-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: geodesk-2.2.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 477.0 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for geodesk-2.2.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a309251166577a9797d556ef6318b4a02a7cadfdbfa43a703ebbdb034f86288a
MD5 9d4d3187ee85f6de71652da6ff463097
BLAKE2b-256 23e50b2df82217a8f0441bba778d89d54bcb04d7f3ea088e93f6594f8af341d6

See more details on using hashes here.

File details

Details for the file geodesk-2.2.2-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for geodesk-2.2.2-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 83955d0ee656e2887ab2869b60808883ae64489f0417fb8842965948204fa3d9
MD5 a5ea3f60dd3cfb4b6bb2b42b78ed0653
BLAKE2b-256 2161869c4b269d6e983790357427699f6e7338f6e9860de35e08329e358689aa

See more details on using hashes here.

File details

Details for the file geodesk-2.2.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for geodesk-2.2.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 95c8ee8e7a77485bf1cc1b5a432a90bad34c8953b8bf352876876fd6dc96c562
MD5 c85a99c1de04ac0d175cb88a7fc68eb8
BLAKE2b-256 ac3d816d8b31a12f559c8242a31ea8799d9e6eb88035698d053001e6d0e3aa11

See more details on using hashes here.

File details

Details for the file geodesk-2.2.2-cp312-cp312-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for geodesk-2.2.2-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 5e4ec9f20592cf5b10aa21b9d8bfc12bb0da6863afc4c2004bb1b75360ddfa83
MD5 f9ed5846201e81f24660c60e4304b37d
BLAKE2b-256 5b886712ce4a35e2bd93839f53e51d0999711ca9a854f9b2cbf528aac85af1b3

See more details on using hashes here.

File details

Details for the file geodesk-2.2.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for geodesk-2.2.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 21a56f3ebed1644fd1e1321854a46f0ccee19dcd5201cc577707a9403c3b1760
MD5 6a8e1c8f3bea05a9a5eeb57522fa4e3f
BLAKE2b-256 31265fcf9248d56d42d4cb99d24fec938b922cf2e01f59159c69ea691c67532e

See more details on using hashes here.

File details

Details for the file geodesk-2.2.2-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: geodesk-2.2.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 476.8 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for geodesk-2.2.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 9e2f5afa9972013f2dd53d4ab2ef2f42740cadf2f28119b09d69f15b4bcd7894
MD5 05fb01990e2a1512c66aa54484251246
BLAKE2b-256 4e702ca616cc714490135b2e44639cff3588ebc3b8cb49517aeabb3f0dca7367

See more details on using hashes here.

File details

Details for the file geodesk-2.2.2-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for geodesk-2.2.2-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6ea5e2954cb7de425f9360c4353140335a82694cb4d4ce09399ce991f6300e3c
MD5 d8952d5d2d0298e6c1df7b64c2864b60
BLAKE2b-256 87a21244fea2f5d72da7e68d8da6680c19af194df354cda4c992aaae4749ee58

See more details on using hashes here.

File details

Details for the file geodesk-2.2.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for geodesk-2.2.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 38bd2a368e42b7a52bf9a8748d202f4efa1a1ccfe7edaae6cc62667b23afb8a3
MD5 e936c0ac955484fa3d97d6126eef0296
BLAKE2b-256 d9679041a91051d939dbfaf6219bec8f87c24fad6ce1e81f88aaf6fa0a4cb0f4

See more details on using hashes here.

File details

Details for the file geodesk-2.2.2-cp311-cp311-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for geodesk-2.2.2-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 160e08952b381128ae69e974c61f2bf1a8eead62d9add7d23e291f5c0206958f
MD5 1c415799ee72f7d125505cf1936cb5dc
BLAKE2b-256 3c6a62ca71cdd78b9acafc97db6bcdc7cf5c64f0867b2c14d9146cede31a7e23

See more details on using hashes here.

File details

Details for the file geodesk-2.2.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for geodesk-2.2.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 39285c1f425490937a67c7ceae9baef30bc93a5a8f0a7740178a7ae5a5758fde
MD5 1f46a728329d20e289499b3874b6f845
BLAKE2b-256 168cc198c1b37fa1d5fff2b546c0851334c91acbfdb7a74c7aba3edc54cbf341

See more details on using hashes here.

File details

Details for the file geodesk-2.2.2-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: geodesk-2.2.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 476.9 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for geodesk-2.2.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 73e2eaec7d6ffcf9fba9d6da749b3c2cda6ffa2ca6e70bb8f9d19774a0ee1c9d
MD5 fd10274f8b91af78e4cf7c74404503ec
BLAKE2b-256 c566c7e19863aaa9da51ed9b4a48c31c25af70c599ae739817d5b4a48fb97e66

See more details on using hashes here.

File details

Details for the file geodesk-2.2.2-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for geodesk-2.2.2-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9d23902c1c0930ae979a94488f4ab0d083b99f1466950a431fb58a6721d92023
MD5 e5a743f545787b73b3536ed1c3d8cc1f
BLAKE2b-256 7474450a678e2b3314674d0cc5665ace913aa005df122215bb3f2d4721155e8a

See more details on using hashes here.

File details

Details for the file geodesk-2.2.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for geodesk-2.2.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9d873b86aefb1108742fb43071e7a7299812f72e4877b474b526675ef87a1fd0
MD5 a3258f18066449275701042c424cf55e
BLAKE2b-256 df17c12422ba844658fa33f5b3f732eb5df54793ac79c0e97e12028fa3e983bf

See more details on using hashes here.

File details

Details for the file geodesk-2.2.2-cp310-cp310-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for geodesk-2.2.2-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 daaf48be1d19368b73bd8a346264805d4c50ae90d24d2dfbfc3a6818db0a2d6b
MD5 9c20b86826aa1a035a87c526fdf577fe
BLAKE2b-256 dcefc30a83f77e37f55a63d771a415a5caceb79b6ddcb98e5b6a6aa009214e3f

See more details on using hashes here.

File details

Details for the file geodesk-2.2.2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for geodesk-2.2.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8e405cd7719b58119e1d5d2257ec41ea2b09ca06a21c457d4fccb61bfc94d6ca
MD5 56758a0b9c82b819db59375188d83d13
BLAKE2b-256 828a982579635d617b41760c2e772690e3e108c09be0347f3253298b355130e7

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