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

Uploaded CPython 3.14Windows x86-64

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

Uploaded CPython 3.14macOS 11.0+ x86-64

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

Uploaded CPython 3.14macOS 11.0+ ARM64

geodesk-2.2.0-cp313-cp313-win_amd64.whl (474.4 kB view details)

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13macOS 11.0+ x86-64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

geodesk-2.2.0-cp312-cp312-win_amd64.whl (474.4 kB view details)

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12macOS 11.0+ x86-64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

geodesk-2.2.0-cp311-cp311-win_amd64.whl (474.1 kB view details)

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11macOS 11.0+ x86-64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

geodesk-2.2.0-cp310-cp310-win_amd64.whl (474.1 kB view details)

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10macOS 11.0+ x86-64

geodesk-2.2.0-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.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: geodesk-2.2.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 489.0 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.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 b5936de87c5d5b36517d7488312a58ddf53eb251799142c9563c7847fc513d83
MD5 2345e3931c8645f06178b503b9e1c282
BLAKE2b-256 ca386465275a743eab7145970dc26217f625b83ff727fd2c835a137129a0d7a0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.0-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 141751fb8c5d4de89923e7a62100c3005ffb50bcfc27d142ca4fe5340412d0d8
MD5 4161ed0cee98d64b1975e5f70b4c940f
BLAKE2b-256 74b3f7eafd828fc45e49de564eb64369609557b48add39fa2951cbe4e5ac8d2b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8a1bab9251ef812349a4d883876e5479acde5271d5fe90713b3bc4ca81be1727
MD5 ee74f7868b9c7fa9e2c2ad91c345ff79
BLAKE2b-256 6ec5acc1d2709bf130c6c1fcbaa7c2b4b1b9d28a9b79ff9a622ce112df36f545

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.0-cp314-cp314-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 5f94627f4af2e5cd3403308bb1d9aee39f003bb38493f68c8945f3eaa856eecd
MD5 03cc1c84d38056e95fdd74fff96162cd
BLAKE2b-256 c51dc2cadbe508cb526fdaec8eaaf895cf1fb77709da912f27f18590ab832ec6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c1fb7b1b45e520653e64d81633eee5b7214c371721e8a20084050a5e779d20a0
MD5 c07e152d26c67a694b96f02123d725db
BLAKE2b-256 fce11cc052b13017da776945efff5d9f39cc4630343438c72765a2e8d25164ab

See more details on using hashes here.

File details

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

File metadata

  • Download URL: geodesk-2.2.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 474.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.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 a9f4d1f8c37de97a1e25f8d7c0bbe838ab0a0fcba48d614e0bace291297d3806
MD5 8f949c0ba4b76763f7a33890a6b84aab
BLAKE2b-256 03cd52c6b65a0157bc784081c9ca9d0b45d9d7d3e5ee870c5ceb356518e965b6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b493bccf19fc9c00c019d58b841eff1843015b82dde5beb0711443119d8bf3aa
MD5 5b6fae695b27f1ac220c218c481928b7
BLAKE2b-256 57513f21e82c623ececafcd25d83f19bb15cc45f75badb1b48dbef1cb540ea77

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 07b1e1a9340f6fb8bb22484e2625a52da3b1d8566d9ae36d3b57d512131ae83c
MD5 125db7a5eb44b460582cd293ccdc2ab5
BLAKE2b-256 c53f8c4f4af3af6e4d916434733277aaf8de2b9b54544a9dac78b5da3235cb8f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.0-cp313-cp313-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 fd7cb796ad4479920913a65248e6c1cce796d13b47507d30c4819b75ae83b6c8
MD5 148d73db29e63dd79df13cc38df9ca0c
BLAKE2b-256 07267316f15798c0d4abad3de3c0bffdfa0b5eb173af19008b43dccd0aa97c18

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 01fc6e44dbb6696c675094d0575ff74a6ae997b0b1eee368e2e7f9e22818cb34
MD5 4592453167db61b22d90ecd4086aaab1
BLAKE2b-256 1b6fad9c148e41e31c37a2becb462c5ffca09d46ffaeef37247458bdb85e4ab7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: geodesk-2.2.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 474.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.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 7d29a78c6f2efba8fe980c7e97a45da289bcb9965594f5e39f5da12bf65dc357
MD5 37c1bde7bf108e2cbc6f321b183b8c35
BLAKE2b-256 816d8c837b3fea21500cedf74ddf757cf4e29097eff3a1227b0f5a9dd1e38e4d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b8361cf83d4a7bf1b758e2577f6263990852ee25bc54d017f99f516d585915cc
MD5 52cc26dcaa5ca27bb5e68f42f5533e4f
BLAKE2b-256 1552e253bc89c25ca774a5b4f0475194503c121e3fe75ba26bbdd35de4249336

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 97ccb3577af90c62fb8bc4ea8b7ae73f95789aa0666021eb66fd4954b98ed8f5
MD5 f676eaff7ddb09fcff32d8372bedc97e
BLAKE2b-256 1bdb73fd267577d4c4198b298ff13e41f559e331170560c67ceb4c3ed3d4ec59

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.0-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 f607ce12e9db17a6a572104c1c35852c4aa39041dc81cb5fee53743a1afaaa74
MD5 5d6d8c2584f93f764b4756bbac3ee35d
BLAKE2b-256 5e7ed1a90dd9ca68f2b2f0207d8f59dcccc14eba31a87b2d5e53eac6d1cd6f9c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 788656b9cef2a9c76cf93de8582f22ef380a5a4ee366bed0367e8e49bf35f61c
MD5 c741860e425af5c293a48f4e9e4390a8
BLAKE2b-256 da37610df76f49fc1af1a3617237412dad3343b2e2d369fb496c87509e0621e0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: geodesk-2.2.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 474.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.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 888339ef3825432ae17f745acd55d8594f57865a3811a968179ff1a968a71558
MD5 af88f185b0f987a2f7ec39fddb520ce3
BLAKE2b-256 be6bbe5a00aa0bbcdd3df6240a199ac9ae7bf08d2f2ec68dc433b25cde90946e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 65f38576ca95b0b248a11b68c9df4969fdc7c6bce04efab49c4ea6b3545386ee
MD5 23183b1197bbd45bd02ed0e246539c20
BLAKE2b-256 b252daca3e4fe3763a1f48c568c5b3c7166c73786d4e9cdbfb3c22d4157c9d6b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1801168f4619b1bc11f7e15e073c0838a6db76c0b8a4276f87964ee25cf05c23
MD5 9b08b96d4bf0102f592ee8d08b31850f
BLAKE2b-256 1fab1a81ffbb49b10920501d2496622fdbcafec59e01abed95f8a21795eea99b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.0-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 25e1f0fc3ae3c3b5fff31bd3399af09e49af8ba2f0a34fa340a11c5ca952694f
MD5 25031ea559c6ab1236b02f5c1157bf23
BLAKE2b-256 932f39fd32bcfbc5cfaa047e9cf0f24e680d2274723e1dbd13f1e086e3d5fdc3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 54df519b1e0ea71a475a7d9f44ef44acbc52246a9b63b1ee38d056016050585e
MD5 6ddec18eee4a881cbf761e426751643e
BLAKE2b-256 0ac21b22fadbae25ab15f703b02a507eeb696a00205873016f2302ac47d9137c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: geodesk-2.2.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 474.1 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.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 7897d01bcb4603aae05e4be96a3ea358e406246b35c0b8320964d9060a2fb68c
MD5 7ac219a2a596e46ee10bff24b6466664
BLAKE2b-256 a4e8322a68751f7c0bc2d4f681f51e84d3eb341758929fde4a9acbafe4c8e588

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 61846c7708e25c532b612482a02a2b0b14bc4b428e4f2ce3d0267bcd86d46b27
MD5 770a7f0b28a48e78e66fa1436fb36dd0
BLAKE2b-256 99a42e1eee2842d7bdc32c0eab5873bdc76e780be62386b2a876960556c59884

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a9f082a2e295192c1d98cb1ca506f3ec86ab6c499e78db85c6c1682c42535c54
MD5 c63d1ebf1320f3fc108a117cf18c90a1
BLAKE2b-256 75491e0d60c701a2c070c26f2b0443a3f747c886724def7ea5ee7b317aa588ae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.0-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 a96e6784ee642b1d4f60033541ce0d4ece9e06457ea63df314d3e67297a9ae0b
MD5 5c2c3f52896aaa74de8cd8a33b487d57
BLAKE2b-256 827c925db25750c16a977ce9a97d747b54a9462aaa41a47203e64eaba101d64c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 eeb1fc6952227bb9fdbed6775f3bc00c406218229329fd33929b31ce8b8e2bbd
MD5 9227f8ff1c9e80e4798210f64e96e207
BLAKE2b-256 467aac4ab6111b89205d61ba4744fb0e9e8198bde8d434b51a81d71a714dff5c

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