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.

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

geodesk-1.1.0-cp313-cp313-win_amd64.whl (325.4 kB view details)

Uploaded CPython 3.13Windows x86-64

geodesk-1.1.0-cp313-cp313-musllinux_1_2_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

geodesk-1.1.0-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

geodesk-1.1.0-cp313-cp313-macosx_11_0_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.13macOS 11.0+ x86-64

geodesk-1.1.0-cp313-cp313-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

geodesk-1.1.0-cp312-cp312-win_amd64.whl (325.4 kB view details)

Uploaded CPython 3.12Windows x86-64

geodesk-1.1.0-cp312-cp312-musllinux_1_2_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

geodesk-1.1.0-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

geodesk-1.1.0-cp312-cp312-macosx_11_0_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.12macOS 11.0+ x86-64

geodesk-1.1.0-cp312-cp312-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

geodesk-1.1.0-cp311-cp311-win_amd64.whl (325.3 kB view details)

Uploaded CPython 3.11Windows x86-64

geodesk-1.1.0-cp311-cp311-musllinux_1_2_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

geodesk-1.1.0-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

geodesk-1.1.0-cp311-cp311-macosx_11_0_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.11macOS 11.0+ x86-64

geodesk-1.1.0-cp311-cp311-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

geodesk-1.1.0-cp310-cp310-win_amd64.whl (325.4 kB view details)

Uploaded CPython 3.10Windows x86-64

geodesk-1.1.0-cp310-cp310-musllinux_1_2_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

geodesk-1.1.0-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

geodesk-1.1.0-cp310-cp310-macosx_11_0_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.10macOS 11.0+ x86-64

geodesk-1.1.0-cp310-cp310-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

geodesk-1.1.0-cp39-cp39-win_amd64.whl (325.4 kB view details)

Uploaded CPython 3.9Windows x86-64

geodesk-1.1.0-cp39-cp39-musllinux_1_2_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

geodesk-1.1.0-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

geodesk-1.1.0-cp39-cp39-macosx_11_0_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.9macOS 11.0+ x86-64

geodesk-1.1.0-cp39-cp39-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: geodesk-1.1.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 325.4 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.11

File hashes

Hashes for geodesk-1.1.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 0bc049d9f3ff7ac25444fb0a348a3042758e9601908ee8283231934b51810ac5
MD5 74180ffeab18aa7c7bf0040ba8013f27
BLAKE2b-256 2c4451eb3ccd5a553f45845d767b3473b566db4f1aee1049bee70c82037e0d07

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-1.1.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5bd228f816244d9fd8cb24619ca911190106a0f1ff0722abd5081aa4d120362a
MD5 2050c16a7792afdb0013ce6c96eda584
BLAKE2b-256 85d60f0b7238f0803fc31f77f9b8e8d5991739b6cee878d011a79593418f841c

See more details on using hashes here.

File details

Details for the file geodesk-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for geodesk-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 65c742311ab3192bc93e965ece00f9529e1923e0d57a431bf0d4b0d2ef976e85
MD5 c13a3e743817f123bc2a3b275bea2a12
BLAKE2b-256 a522a648e6a8b20e686b90aecbae1d2e8d4325f23e48fe3907e880bbab0d153b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-1.1.0-cp313-cp313-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 eb6a8136b89b7449448e283480c341c45c8ac827eb5c965dfee0d47ebc0e8a96
MD5 f3731b090c1b80b408a3716754d494f7
BLAKE2b-256 f77e07f5f6dad7073fec038b21f68d3d9de0f19e109bd49aab2fe35555609030

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-1.1.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 941247433c2f034cd1f44dedf1f8deb86f0bbdba3ecc97fd1cc42394d9e0c418
MD5 7e152a4013121921e5234403f0edb182
BLAKE2b-256 b241101288cfa34657b7636290b83a46552bc26efa8419fc505a5332b3773d14

See more details on using hashes here.

File details

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

File metadata

  • Download URL: geodesk-1.1.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 325.4 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.11

File hashes

Hashes for geodesk-1.1.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 754156a2d6b901e2e317eb3383db46865f53f5c4bd7bc488178e8bf5bb1dfa26
MD5 3caa6f53c66276937388052d051c6231
BLAKE2b-256 0c65a50570b41f655c44100cbd5bbec9ce1aded89593d40a76a0274737aa493c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-1.1.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4ddf1aa97ca72fbfe9f9214766f7d1e7930d99ab54aadc5b42dfe31654ab06fe
MD5 8819a8496dbcdf536bffb22b6cbdb533
BLAKE2b-256 7a32a17c74d4624fec398a10a1afdf881dc94b4e7e711f6ee6c97e95089040b6

See more details on using hashes here.

File details

Details for the file geodesk-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for geodesk-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f63eea03f57ec8057a57eeee7e98dff662077cc53acbc9df8c2df804f553ec8b
MD5 2d3e4459595a56c4370d1b3ceaba620d
BLAKE2b-256 b1f8b2bec1844d476611743601e705fb34526e2c8e036fc4bdc62d025e7bb6f6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-1.1.0-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 e93afd1a3a3142ca5323e84c26eb7aa2a20b45086e81a2ab8367b3a828fd714a
MD5 842f2a83138610cfeb8eb309cedeb73f
BLAKE2b-256 881ee0e87810ee1e6760c7b81340036f91f11bc212ac1bf59c6429dc7ace867e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-1.1.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 253c181792d5480dee7024af89486c1770113cdad4355385b68a564da9c7f39f
MD5 5d70cb5687141c8cfe784ac6e2be49c9
BLAKE2b-256 f1c1397244c78eb597adf4a5e94d368b105fb2bf162e18bb52958fad7f8b69d8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: geodesk-1.1.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 325.3 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.11

File hashes

Hashes for geodesk-1.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 917dd0fe0d3c9ef19d6c00604bdefd576d564da0e313801ee580f0564e50eba4
MD5 7371ca3d0d9b8ae589cf9bc61db920d9
BLAKE2b-256 3dbbb2a927795a2c93f576135a4252fd5fe5ecef06f6aa2468ce730b73859eaa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-1.1.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8e82b3d19ecba95b15fc315f40a925ccdf64aec0fa2ee581890b3c6bee47667b
MD5 be8e14b0aec6d0a985738ab8568e5902
BLAKE2b-256 603c2052ff1fcf26681005ddcf249a6f63b77a85eecbf90acdea3be199e01648

See more details on using hashes here.

File details

Details for the file geodesk-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for geodesk-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 94b003317e804a3079805346dbf13507b4de0d31432827cef250d4e8bb374957
MD5 c08b344ce4b20fed633cde7ee0e03dda
BLAKE2b-256 50e0c03cedff98c3c9953b18dc0ff96304533f9e1488fe18d763d881c7572c93

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-1.1.0-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 9dac4313f5b560d7b75f9de1b855a4e8e1908ebc10f2b6f6fe2ac7cbc9b6f31a
MD5 c0ac0daa50c4837f0a861f4048fbc63c
BLAKE2b-256 a25602f4882513babc40e397d1c03d0b669374614cb782008adeb37d2e694b0f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-1.1.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0f34caeb35f4dd8cd2528980dc9ad6486820b706c1600e40d235cfed5c019d21
MD5 6bf4847571c76e522ae2bd48b837acd7
BLAKE2b-256 ba3f8f48ec7cdbc011e6a3e5c7f21a671b05ee78470630cd4cccb2c02cee2950

See more details on using hashes here.

File details

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

File metadata

  • Download URL: geodesk-1.1.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 325.4 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.11

File hashes

Hashes for geodesk-1.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 73d047b424486734467c614c9ddf2a96033a54fea64c2ddc4513d1c4db9a8c9e
MD5 e098d3c16d1ba80601460d80b5b04bac
BLAKE2b-256 fd452a3a87e27397c2f9dd0332fc0fbf4821e750ab56e735765d34a92129258b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-1.1.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d019179f39d554a6fb62d97ac7aa01fd10b62ba665a595db45596c7654942702
MD5 cb0dbc3e7df31c590441956610316453
BLAKE2b-256 b4a2bfa5c9863d0b50bff4a1cc7c7576393359dfa347a82e3cdd854a288c6435

See more details on using hashes here.

File details

Details for the file geodesk-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for geodesk-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cb9faedab3da9b0cd0abe1719289c6dacd9b36315d634a044c09a6df782c77b4
MD5 43d9843ccea77a52ea25e5a39448f1f5
BLAKE2b-256 fa8415ddf2941206209fc25ce03f1052ae9d2c04b19927e38f083c8bbdbeeca1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-1.1.0-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 c6e866c2187143221b827e83e7d6b91c27be8a38e1341edca7396e8c08802895
MD5 f6e49ab1a433a2005849f4ad49ac71b3
BLAKE2b-256 49f736a25ff71ceb37e2ca15291be6aacf4773adec93d823ca2de169c6751ba4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-1.1.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dd1e2e7a5313f78e4dc7095144c404e82d4329ae5a8001bf4699abe00467a092
MD5 3a5172521b6d14cbcca727c6a518cb6d
BLAKE2b-256 711f6cb897e23cc9b3e88e56fd45dcca1dd210ed6ee14ba74033d597b33b5a56

See more details on using hashes here.

File details

Details for the file geodesk-1.1.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: geodesk-1.1.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 325.4 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.11

File hashes

Hashes for geodesk-1.1.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 8583117adc152bbd2b252e866fe3c3d3c00e4c0171f58e44b8265fa92e2723a3
MD5 10483bbe6096bc719f5f205f8d5c7cc4
BLAKE2b-256 7c13702c6b4183cbbff8136ba9d1510060bca4dda77d3cf86686297df4cace5d

See more details on using hashes here.

File details

Details for the file geodesk-1.1.0-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for geodesk-1.1.0-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8ac70b4f6c698d41ed912f14957207454723b060b4bbf3cab8c35a2e0279e144
MD5 38e7236fb651d99297cc42ccdb1b3b3d
BLAKE2b-256 995b53f779bcb42071a3efd72957e52e1fc17765ec0b03aa3140e004a615f9df

See more details on using hashes here.

File details

Details for the file geodesk-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for geodesk-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b961e43a69af3ed1ae2e5a4415b05284e3dc03164de5d2704a20b47c145869f2
MD5 0595dd9ccba847b0222506ac0d4f6cbb
BLAKE2b-256 51ffe5f15f99d069754272b5625dc1bf8b39f1dc35979cfbce09ebf21a28884a

See more details on using hashes here.

File details

Details for the file geodesk-1.1.0-cp39-cp39-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for geodesk-1.1.0-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 391d9f4ec578fa8f7eb43697c3ec1e64a7877e5b5cafdc7efe19df1472dd9ef0
MD5 92773b448c2c7c855e6c02db9cf9537d
BLAKE2b-256 4bea8d271f514f75e9ebf5bc68246fef4716243b259bdb572c9564c674605cb0

See more details on using hashes here.

File details

Details for the file geodesk-1.1.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for geodesk-1.1.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4793b05c4b7ab476e075d96e02cb9fa1848df080501f08cef26a6a0ef99fdb14
MD5 b749eaee37ec74a9d2b4d3f2d56464f7
BLAKE2b-256 f734005726a496b9c72161af5ab657e081d8e5edd16b504303c1809b01649c6f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page