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.3-cp314-cp314-win_amd64.whl (494.5 kB view details)

Uploaded CPython 3.14Windows x86-64

geodesk-2.2.3-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.3-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.3-cp314-cp314-macosx_11_0_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.14macOS 11.0+ x86-64

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

Uploaded CPython 3.14macOS 11.0+ ARM64

geodesk-2.2.3-cp313-cp313-win_amd64.whl (479.4 kB view details)

Uploaded CPython 3.13Windows x86-64

geodesk-2.2.3-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.3-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.3-cp313-cp313-macosx_11_0_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.13macOS 11.0+ x86-64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

geodesk-2.2.3-cp312-cp312-win_amd64.whl (479.4 kB view details)

Uploaded CPython 3.12Windows x86-64

geodesk-2.2.3-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.3-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.3-cp312-cp312-macosx_11_0_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.12macOS 11.0+ x86-64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

geodesk-2.2.3-cp311-cp311-win_amd64.whl (479.1 kB view details)

Uploaded CPython 3.11Windows x86-64

geodesk-2.2.3-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.3-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.3-cp311-cp311-macosx_11_0_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.11macOS 11.0+ x86-64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

geodesk-2.2.3-cp310-cp310-win_amd64.whl (479.3 kB view details)

Uploaded CPython 3.10Windows x86-64

geodesk-2.2.3-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.3-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.3-cp310-cp310-macosx_11_0_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.10macOS 11.0+ x86-64

geodesk-2.2.3-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.3-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: geodesk-2.2.3-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 494.5 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.3-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 c2b6a7c565b1575f681a5c6a7c8d9e74e39a44010534efc6b61684be3096b691
MD5 0be335d5a50556a10f79789fb9710019
BLAKE2b-256 4d25bf6e8270ce844fa6469c681afe6e53eb1770a32b2b5727cbf505dd6524d1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.3-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 acb63931c8b02e9c51d4464dd53ce36f512f30cedb829941deb1d6b77057bc1c
MD5 2979ff3ff9356ea0ed380dcf5487f5f9
BLAKE2b-256 157db64686f31824411d99a5c882eb9442c4c12a835e0d0e6484c738f567ae46

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7f88f455e7c9e1642ec1a6c236f00d2e419a1bdbeacd10d60809efd9cb351349
MD5 02f9028486f32b83a6856139687dd186
BLAKE2b-256 513a6a40ef6786c12638612a480701bcc38f356ee9cec6292739fc701b03ebf2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.3-cp314-cp314-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 8638e6fa91edf899dcbf22c0ba6b330e48520f9a00a676ab094841ff61ff0233
MD5 bc111810dc9babf85099e7a6d337d2b4
BLAKE2b-256 1a71cfc43f4d30bc2ccc9d84c8fcd9c8dac9cd359a0e8e75aa1e1f2f54286992

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.3-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a889121121166e3a43bb7ec23bf922f2e7a276780ad6d35afabbec41a56a189e
MD5 1c5137e66559fb7a4ef9f3305f0d933b
BLAKE2b-256 8d6b47c2e7d7e079553cccbe9e6b5a851f3b9a6770874dbde9b8933886423abd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: geodesk-2.2.3-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 479.4 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.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 80104c84e97bb3bdf88d23d64692d7f895f0835c53b115d45ffc65a8e13b914f
MD5 18c1d9a2a1a73bc06f04070bd5873d94
BLAKE2b-256 71b5a2db492fb4d9fd5d2b5ca41930973ddaa9dd5dda99686a495321f8bb0d89

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.3-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 36255ca797ae0b03d11d295ebd4b8dff0d59ec9e1ad7384e741004968ba1e111
MD5 88d142b8493eed5f3a0cdc0967f3f70e
BLAKE2b-256 60f40b634cf7319c393cd0ded1192261d29c032bd644b7e8d6e8b7e7774fe0ef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4309314fa9be1acbda46bf85e403f43d11c5980da0c86cc96129a1cc0f09dc4c
MD5 42320f4c2f79dc98db2991f2f5e579dc
BLAKE2b-256 a2db9551570bc28b4a1e9f4a6a2372282cb3aff1fe9c02d6b10539cd019fa4d5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.3-cp313-cp313-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 d7e26e2e7f1c73bdaac22d8e51d59278310b556b86e79bb4241da7c682423ad2
MD5 9651a3c8ec0d38f8b52ee5b4d40cff9c
BLAKE2b-256 88baf4c2c5c96068f1f15977d2c73ab0fac6b548c96bf6242375d1907e23719b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a5704e185e6ac5bad37fffb9c465e35a40f7b3eca5a5858c4f5ae316c5404eac
MD5 f0f6e16f1f87d0e6fe1867034d2451b3
BLAKE2b-256 2958734432bc5c40ae09e2472ae8b7c3d67dc56b144485084b638432537a2934

See more details on using hashes here.

File details

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

File metadata

  • Download URL: geodesk-2.2.3-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 479.4 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.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 15c52749d83ddf2f8315da63516110fe7206fbe22fa3f1d0f0e272de7c0f9211
MD5 9c4e7bd482688dd9ce18143cd22c69be
BLAKE2b-256 ddcf3c05a154f23d5e7f76da866d0a583468fe9deeb1ca3e14353857d92626cd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.3-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1c84d0d68fd2345497f73999cd9f3414dbcae411f75eb7d47443b83c362e7c5e
MD5 47c161fcaa7ed26205744c10f09c503d
BLAKE2b-256 879cb956b18aa4e31feb521b498b236d8122d618df135fc7d9b5ed6e135974c3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1c3915e64ea3491aa16a4555a2ad9bfa8770750ef6027474a431500f7378d227
MD5 d0f6066582c97df0694a34e49001715e
BLAKE2b-256 54f6a5bb762682b7b0aca13f8d721a0cc15006f85eabaf5214bf8bd3b8cff355

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.3-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 fc06a5d3e2730a92ba0dba02cf5b3a282459a34093b463286f4d56106b8753ad
MD5 7dec936fc6ee66818ba92718d658ad12
BLAKE2b-256 d713af58d811187dbd2990888d446606540af8b0253ca552e10e2332e662b47e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 776f0fe0f4e639cd8cabe50ffd4b8e121736fd052595303fadb527565e50c1f2
MD5 318d925c3a201a75aaadbb2c7535c6d4
BLAKE2b-256 d46db1064be75c49f60e1c49bdfc128a5b827783f733649de69c98d3ce2c45ac

See more details on using hashes here.

File details

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

File metadata

  • Download URL: geodesk-2.2.3-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 479.1 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.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 edea7b872e8edc67ed7ea7c5fb4fd9c4c7d83687969f586a1ec17060afdd4c10
MD5 276c76b337b0030b01539200a90692c6
BLAKE2b-256 78ff16c5146b6bb124e7a2e3738a76394b4eeefad21fcfbea233ba17a58036a0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.3-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 aa3e9fe82b4cc895705dae7848308355765365d9653ee3df882665526cf97527
MD5 55a21e527dfaca3417726b18039d8697
BLAKE2b-256 58c99134a1aba7676230c8567cc1289b3f3ec425f5b32981eb51764bd7fc4144

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9f8d866f5d3bd44ded303518cab3d23fab450b3e57a590aa2ab279b14dd03980
MD5 4a1af34f07db02f5ac672116362a273a
BLAKE2b-256 ba0ceeaad3de94b329bf8832067a0a3e8de0367e39497702748f2020dc66f641

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.3-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 e39d7bce98ffa07bca6ac480f1f02a709e89e0850f9ef6b415de147b477212ca
MD5 afd3bc230b168447952affd9a61be01d
BLAKE2b-256 5bccc3aa8812872e4103402ad026fbe5475deb884164eb0acca67c823f726545

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5ffd5fc202cd5023daf5dce6c99bbb8dbed1abb8a2a907e3b1f990ae38d18d35
MD5 17298edf3adb4c668edf2ec8e5515164
BLAKE2b-256 64726d1cbbe9d920e25cd8b98c9059822a978b144d9c8d68a248f3e8b1e4b50f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: geodesk-2.2.3-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 479.3 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.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 33d11c3d86fcc49875081bbea2301b55148d63acb97423f1f6ad62c3f323e468
MD5 dd12c4aa0b23bf9c4a1cb7bdaf5b1def
BLAKE2b-256 7d2fd2ebbe96ae70c8c4db15abb0229489d82a0eb09fa34278174fc958013007

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.3-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8493227e1a2b0013362b7e9bd018ae6acfb5d4b5cbf7cf6e98e0dc95e1d48e97
MD5 b5495fcfed4224d907e6a8522e6d6c92
BLAKE2b-256 81892d3b2232d6915f54cd530eac8021ea6eb7e012278f1b672961b8c265cdf2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 85ce9f9fd12f3e17d9c2f70f641e68996b02de97413fd9825c7031af1f1efb68
MD5 0c30a98617fc7327d8645b480bdbb21c
BLAKE2b-256 d9e7459e9431c442b59a86efe72b51ca836e28ee25c89dde8f1c4592385aa4c2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.3-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 b0b16734ff386572f4d2fdff84d1520f1a3ccd1a8056cdd7da31ff04482148f1
MD5 554fc0fadb790140bd5776728d29aa65
BLAKE2b-256 7c04d88bbb85286ddfdca8d01ba088ce7104af84a8393b9bdbb7f2851b1d9fee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c1132f75addd3b2a3dcd4d1e6afdc3f3b60ebb4b62d152a8e579945134f6cfe8
MD5 5f9ae3b91fee5fbec0836b9eaaae362a
BLAKE2b-256 1e1cdc42693c1defcbe64fbef87f86ba1281c629d54deecf31e090fab7aa2ad6

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