Skip to main content

Fast and storage-efficient spatial database engine for OpenStreetMap features

Project description

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

This is a pre-release of the upcoming Version 2.0

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.9 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

GeoDesk Developer's Guide

Related Repositories

  • geodesk — GeoDesk for Java
  • libgeodesk — GeoDesk for C++
  • gol-tool — command-line utility for building, maintaining and querying GOL 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.

geodesk2-2.0.2-cp313-cp313-win_amd64.whl (326.7 kB view details)

Uploaded CPython 3.13Windows x86-64

geodesk2-2.0.2-cp313-cp313-musllinux_1_2_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

geodesk2-2.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

geodesk2-2.0.2-cp313-cp313-macosx_11_0_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.13macOS 11.0+ x86-64

geodesk2-2.0.2-cp313-cp313-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

geodesk2-2.0.2-cp312-cp312-win_amd64.whl (326.7 kB view details)

Uploaded CPython 3.12Windows x86-64

geodesk2-2.0.2-cp312-cp312-musllinux_1_2_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

geodesk2-2.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

geodesk2-2.0.2-cp312-cp312-macosx_11_0_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.12macOS 11.0+ x86-64

geodesk2-2.0.2-cp312-cp312-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

geodesk2-2.0.2-cp311-cp311-win_amd64.whl (326.6 kB view details)

Uploaded CPython 3.11Windows x86-64

geodesk2-2.0.2-cp311-cp311-musllinux_1_2_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

geodesk2-2.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

geodesk2-2.0.2-cp311-cp311-macosx_11_0_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.11macOS 11.0+ x86-64

geodesk2-2.0.2-cp311-cp311-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

geodesk2-2.0.2-cp310-cp310-win_amd64.whl (326.7 kB view details)

Uploaded CPython 3.10Windows x86-64

geodesk2-2.0.2-cp310-cp310-musllinux_1_2_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

geodesk2-2.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

geodesk2-2.0.2-cp310-cp310-macosx_11_0_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.10macOS 11.0+ x86-64

geodesk2-2.0.2-cp310-cp310-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

geodesk2-2.0.2-cp39-cp39-win_amd64.whl (326.8 kB view details)

Uploaded CPython 3.9Windows x86-64

geodesk2-2.0.2-cp39-cp39-musllinux_1_2_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

geodesk2-2.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

geodesk2-2.0.2-cp39-cp39-macosx_11_0_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.9macOS 11.0+ x86-64

geodesk2-2.0.2-cp39-cp39-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file geodesk2-2.0.2-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: geodesk2-2.0.2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 326.7 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.13

File hashes

Hashes for geodesk2-2.0.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 4be086810450193efb6effc8cc66fe60f0da7c1cbbacd1fe90b372829849fda4
MD5 59ebaecf9c957b265658deea959cecf9
BLAKE2b-256 e44707f757938475bc8db0dbfbb1ca9af826a486fa902cfb7bf920df2fb915f5

See more details on using hashes here.

File details

Details for the file geodesk2-2.0.2-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for geodesk2-2.0.2-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7aba460d5f69bc9b2999a9c0fc19b7eba7c66681e6b3e1a2104c29138b0d411d
MD5 ce66502f2bf7334e3ba9e0618c478076
BLAKE2b-256 e79d98773ee40dbf9f42c43213f79fb23e7610953dffd967bfaaad120db0979d

See more details on using hashes here.

File details

Details for the file geodesk2-2.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for geodesk2-2.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d8a72ff312a951490d7911f3d037f65e85832dc27cf9f92b0511939088f344cc
MD5 f2be2b2e7399f11db516501d4e623718
BLAKE2b-256 ed9acd669d096593660b053af31bbd548a55fde32e5ba897051166d08c2bad7b

See more details on using hashes here.

File details

Details for the file geodesk2-2.0.2-cp313-cp313-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for geodesk2-2.0.2-cp313-cp313-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 96b9385f029721ba1e4fb1c59958dc0ff6d332674cae4022a18c844c464fe1e9
MD5 fe6bd6e3b5d7528bc1382ab92339b865
BLAKE2b-256 065875a8d6c8fd9a7d08ed04a6bfc85de1642947786f665a44678f2ca9858dba

See more details on using hashes here.

File details

Details for the file geodesk2-2.0.2-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for geodesk2-2.0.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b803106adae560b3a79f71f63ae194c0b504faaae27014ee5973035755fdea0e
MD5 f32d3ea06a9663d9d4d0a0d0a45c3085
BLAKE2b-256 3d0e5f07c51efb74ed19c46ecd6814f6fc31fe867bc888b3601b53ea47ccf7fb

See more details on using hashes here.

File details

Details for the file geodesk2-2.0.2-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: geodesk2-2.0.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 326.7 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.13

File hashes

Hashes for geodesk2-2.0.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 5b7c8f2b481f411af823adbc97f3e3c815dc82afad3ba6391f94be54b8b04c71
MD5 2c410e9646ba940b69755e183c80cd72
BLAKE2b-256 45134828ca65fa5e85ed0e9b9b0a60f74131f17d9cb9a5d164629a4d44d1dc1e

See more details on using hashes here.

File details

Details for the file geodesk2-2.0.2-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for geodesk2-2.0.2-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 689949af7162b82de9e958055b7abf9642b1182f327599bd3fb6eeaff9a0d8ce
MD5 b348bb3f5e240fb89f61ebfb031f1cd3
BLAKE2b-256 ce3fc0844f2635dfff33c3ba62acc900e11cf6e6d2438b71d1cd08d3181f521b

See more details on using hashes here.

File details

Details for the file geodesk2-2.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for geodesk2-2.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 75b963729c11790784cad726a7d9eb9e4bedd412e7d7b4456cc941b850e6562e
MD5 4942a14a583205d5c128fdbdb07e550d
BLAKE2b-256 a29ad3e9672347e73d006ae45b494ebf3599a86fe005785f6b3803de7f37fdce

See more details on using hashes here.

File details

Details for the file geodesk2-2.0.2-cp312-cp312-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for geodesk2-2.0.2-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 f1e55d673daf2f3529671f8de4d11037e861a95ca1951a2d09f44f7b858eb263
MD5 96b59a2833a6404b04f634bdd6193437
BLAKE2b-256 5cc9ac58dc34ef12d4e07e634c1b79888824bec99c59bf54c3f2d7f74c3d7a9e

See more details on using hashes here.

File details

Details for the file geodesk2-2.0.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for geodesk2-2.0.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 92a6b3c65ddd180188182e6a6485c47e78326555bb15462ee3ee8c55e6572f10
MD5 4280748f2d23cab7b86499ecf70bf399
BLAKE2b-256 5d7f0d3bd23622791b548b44dcc73bb87699ff579846663eb20c04dbc2d79dd0

See more details on using hashes here.

File details

Details for the file geodesk2-2.0.2-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: geodesk2-2.0.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 326.6 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.13

File hashes

Hashes for geodesk2-2.0.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 def16292c06d9eeb3797582224fd7fcf36ae9ebb649249aeb098ed8b2a6af581
MD5 9db47658ebe0401aa2fab9256ceb76d9
BLAKE2b-256 6efd9144693912dcf386e1c33a72fb27212a10aa9c9a82693a92601664cd714c

See more details on using hashes here.

File details

Details for the file geodesk2-2.0.2-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for geodesk2-2.0.2-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 02967ae2d43827e412e66764a7018509f78f8ef4d04dc0138503fafe0a0ec95d
MD5 cf2687ca82eaf4a5d64a5366725575b9
BLAKE2b-256 3462c5984a475980d6bef4918f7fe2fab6d04dd8dbdf6d1b7d90d8377f9ebf6a

See more details on using hashes here.

File details

Details for the file geodesk2-2.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for geodesk2-2.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a696287a4e5cc70503ada17f25250a3b85024a0125cea7af333403780f2d4c51
MD5 0d467412511d19a958f9ec85b4f7c068
BLAKE2b-256 74361673a07aebb43085ef8038c359c990aa4a57edb41c875960ad39ed76d7d2

See more details on using hashes here.

File details

Details for the file geodesk2-2.0.2-cp311-cp311-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for geodesk2-2.0.2-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 e0e04f62483570c1cbfd32a8b525f366a86ee444ec42c98bf00498d567f46f99
MD5 517368d65c35eaa41347e2a56c48fc44
BLAKE2b-256 5eef3b6dc32c6d347cdadd6201dcd914e14cc92dbf9650d32982797f036a2c1b

See more details on using hashes here.

File details

Details for the file geodesk2-2.0.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for geodesk2-2.0.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ebf555464fe30b7bc4a7575cdbe916de5bcfaf79ac491e119151afe871be98f6
MD5 065ab6483b5803826c98b79e9711e932
BLAKE2b-256 b141e169ffd78773d7564ccc6e4d8666666801301a368fd7b1306288aaa8f66b

See more details on using hashes here.

File details

Details for the file geodesk2-2.0.2-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: geodesk2-2.0.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 326.7 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.13

File hashes

Hashes for geodesk2-2.0.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 c7ad7b9046bf8a89c485f0c4d8fcbeb412f2a65747da50c7e6e3dee1cbaef2bc
MD5 468fe3a8f5db0bb1c222e5c03d4dff23
BLAKE2b-256 b17ee6c5f858175c049c079635becda32f9160b0a082c83165997d0d3bf9bf26

See more details on using hashes here.

File details

Details for the file geodesk2-2.0.2-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for geodesk2-2.0.2-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 06de3a3be905635418630b6be609d8f13dc162cd261b84ec76e7b4891208a267
MD5 c79cf7f4cc8c614c5340b4d9fd1b6031
BLAKE2b-256 7818f317d16a94b9d74e25a863d34af86e7593dd20e5d231bbf4b578fc3e27b5

See more details on using hashes here.

File details

Details for the file geodesk2-2.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for geodesk2-2.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 22a5a12a9a6da6bfc3f2dbe5fdd621a80a8e939c430147f8d93b7e5776dca9b1
MD5 90f1c0134a16520fb75e5ba654a2c70d
BLAKE2b-256 fdec19e4030fbd3577bce48ed4a41191332382efb0ac3fe6a284fdd0958b0e3c

See more details on using hashes here.

File details

Details for the file geodesk2-2.0.2-cp310-cp310-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for geodesk2-2.0.2-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 3315d3a469a282a5f17872dd6799347c14987a5ac43d540cf05c0aaa367833c7
MD5 9e443d4507414fa844c90f64130435b5
BLAKE2b-256 bdb39447066c3de7ba55ed14a66f0e952329d6e5a56115695608fc64ec9c5cd5

See more details on using hashes here.

File details

Details for the file geodesk2-2.0.2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for geodesk2-2.0.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a2d002f8e6d1eb0ad240ff015f040c70e66b83a8fae870e818dadb1e075bdf7f
MD5 5493c2a67882cf85ec50b0e13396e549
BLAKE2b-256 0d067765c23e753ea304cc39c4916fc4ebb2590b54098fd6583093e8e25d29df

See more details on using hashes here.

File details

Details for the file geodesk2-2.0.2-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: geodesk2-2.0.2-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 326.8 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.13

File hashes

Hashes for geodesk2-2.0.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 d489fcb89764abdf89f16fd46db38f68b014e96716eb0e1cb36db44da66bc969
MD5 916e9974aad75bc199d47642196a516e
BLAKE2b-256 d73ba8ac8573a6052fc4cf6b436e2b92f1fcb217e0654e1a664a3412943f4f84

See more details on using hashes here.

File details

Details for the file geodesk2-2.0.2-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for geodesk2-2.0.2-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 31d0d795fa72df885b4f08343345f48642b5416619e065ec45d25551053b7420
MD5 c3107bff5361a95f21d843233ad56e9f
BLAKE2b-256 01fb5c8b44c691b87d28017a7d4c7bc8a367bfeeb107ed68c51fc2a3006fd116

See more details on using hashes here.

File details

Details for the file geodesk2-2.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for geodesk2-2.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d292e7a4eeb06261e073671b58c977913a4905aefef8e29e2f8d1cbab551e3ba
MD5 cbc7f6b8ade72a7ac07f8d0399dcddf5
BLAKE2b-256 5a2fdcd60807ba2679c5f17ba4840c5091ce6ea96551b28da1e6382c78fee16a

See more details on using hashes here.

File details

Details for the file geodesk2-2.0.2-cp39-cp39-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for geodesk2-2.0.2-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 6e18eb9d86b3bceb6b13e3f58131ca016c3b1fe097a357daac264e24dbc004cf
MD5 560feddc3200907a4bdb86222b6f28bb
BLAKE2b-256 2eb0fc9b67905dbce53bf0738cb0169592c0528e8a4d36e37e9d7b2a5727e1f4

See more details on using hashes here.

File details

Details for the file geodesk2-2.0.2-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for geodesk2-2.0.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f997cff33e2a3c32d150c28b2e2f512c7f4c504df81aa91525ad037590415056
MD5 37db4a865a5f8fa66d9a90c462f692a1
BLAKE2b-256 2cbf8ef8b72ac2bf0ad254b50873fc6da69a582a1822156604962aa8a62db8b6

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