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.

[!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.1.3-cp314-cp314-win_amd64.whl (339.2 kB view details)

Uploaded CPython 3.14Windows x86-64

geodesk-2.1.3-cp314-cp314-musllinux_1_2_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

geodesk-2.1.3-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.6 MB view details)

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

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

Uploaded CPython 3.14macOS 11.0+ x86-64

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

Uploaded CPython 3.14macOS 11.0+ ARM64

geodesk-2.1.3-cp313-cp313-win_amd64.whl (328.8 kB view details)

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

geodesk-2.1.3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.6 MB view details)

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

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

Uploaded CPython 3.13macOS 11.0+ x86-64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

geodesk-2.1.3-cp312-cp312-win_amd64.whl (328.8 kB view details)

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

geodesk-2.1.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.6 MB view details)

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

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

Uploaded CPython 3.12macOS 11.0+ x86-64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

geodesk-2.1.3-cp311-cp311-win_amd64.whl (328.6 kB view details)

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

geodesk-2.1.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.6 MB view details)

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

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

Uploaded CPython 3.11macOS 11.0+ x86-64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

geodesk-2.1.3-cp310-cp310-win_amd64.whl (328.8 kB view details)

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

geodesk-2.1.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.6 MB view details)

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

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

Uploaded CPython 3.10macOS 11.0+ x86-64

geodesk-2.1.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.1.3-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: geodesk-2.1.3-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 339.2 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.1.3-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 f27e4c4b4011c19c1ee350df6027c29f97ea4daf83dbe37813864e65b7f3a09c
MD5 bc064652655e946eb956c5d2c4e4b265
BLAKE2b-256 8cc4b93acba3ad7d57728b4cbebb030e5e6fc65b2cbc2a9975df8ac23310fedc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.1.3-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 805bdf1b2e2182e0f82a89dded07573e8b22cdd741d2a522c55a121c6ff8594e
MD5 371318f7fddd780da500ab12d5123145
BLAKE2b-256 a5738ca865608e5b34b83f002cff1cb40d8411d7f53ef70b0e966905c19fb9ac

See more details on using hashes here.

File details

Details for the file geodesk-2.1.3-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for geodesk-2.1.3-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 15a91dbd1f48688e3aea752e3e6c4913799653b368eaa81117fa6d2ac39be45c
MD5 49b9f8b105cad0317fd177bd4b4ca7db
BLAKE2b-256 73c86a58f4a19c81eeeaa40cab9b15ed393816b6a2437db62fe4154e28196e19

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.1.3-cp314-cp314-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 2bb1a13163151c1b7203ec6d55f92e292c2d1100aeef340fa9f152a13836f601
MD5 393db24fbfd012964010c8a70d658318
BLAKE2b-256 78ff92d33e4d1260bce973000e9d2c21be594d4cbbafbe2354396b28910e0673

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.1.3-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3a2b168bbeb10aad536eebe95856bf5422a20e7d5c49d345ee688f49881e4e47
MD5 229b9095348acf2d1195402a0aa1bca5
BLAKE2b-256 53259b0cdbc9dacd432d81e7001b202ff784782c3f44a8d6dcbb9455617741e1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: geodesk-2.1.3-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 328.8 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.1.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 bda29ba7333e05f0ac42cbd54696513a571e684789e272ff46e09d01f3a63f8c
MD5 15000ef8465017c40b6ed1f9885302f7
BLAKE2b-256 4221055ba484b3b5f5ccc0cecf17e197631160e578af1c6ebb1b808a070c0559

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.1.3-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 536e17e869d76eb68d58f6d624c8db9f232e6b887dbbf57711f66e4eb01e8c69
MD5 0b8cd20161ae38a5698ace145614df71
BLAKE2b-256 7c36c238d552f606c6af4bb59c2a6254bee824d5fee593879bf5e76cca884102

See more details on using hashes here.

File details

Details for the file geodesk-2.1.3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for geodesk-2.1.3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a2acfde63b89758c5e766126aeddc49887fa918e65af8ebfd58d69edfd765aa5
MD5 b72e82efb84e9721f1be1b998faaeaf4
BLAKE2b-256 ca1ed1e88a6161499e3962f1073f3762b3969639329d0921dba2090a3ef3b624

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.1.3-cp313-cp313-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 8c50cba66554b7f61c2b2cb55bc3821c94017df30b6eac6b2c0d972adfbb5e26
MD5 ef60130bf1af675d9b92dee9348a8a51
BLAKE2b-256 ce4ffddc3d3b55bef8bdf2f2b8e842a249343b26a451467a2834b2865018e6c7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.1.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 94514fd0c8f1d0c79a616f7a6b78aa07d4b89bf8df301194ea8d1b5afb99a328
MD5 bdbe28d390e477b5de3406b4a53a112b
BLAKE2b-256 303a3cc1fc0a5853ceaa04f67245d465a9b4f2c14f02757a199546f24a73b280

See more details on using hashes here.

File details

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

File metadata

  • Download URL: geodesk-2.1.3-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 328.8 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.1.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 2266f0e38deed9e664e36c8aeac4aef264203870262c5b91d66c4ee5eb724697
MD5 ca6bc4d39e286b3b1f43083580ff8e8f
BLAKE2b-256 52d4da216a593d6c1f788357679b1c488ad866523eea33a6ef7f3407c8d3d723

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.1.3-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a5fee9ee01d9be57b798e322f6003b2ddc19f1d488cde77d8f734d022beb7a27
MD5 9155c1e2b042cfc2e3a9692ff2cb66cc
BLAKE2b-256 4b256d308e479eaef7db41867b095ec1ba41caf3683ccba1c5e153d0bd5780cc

See more details on using hashes here.

File details

Details for the file geodesk-2.1.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for geodesk-2.1.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 39e5001bf53a1d15d0fd7a0b5472e5b4d6f0640c5988e518add09b6783f3f34b
MD5 c22dfc6113f44dbdbb9a6eec48c5d688
BLAKE2b-256 b429141bbbc733b270a95d35745f7e496a1b15f2c09bbd4b1ea8203845f891c3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.1.3-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 d1bfabab8148867e3c2a31d50419671b6fda4983ecbfe3b1135df063a7f366aa
MD5 bc760076cba1117ff72d4e57038e485c
BLAKE2b-256 149938fd619e060ac0fc27768b1fbd911ce2f57e5246fe54ab2465db87cb264a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.1.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 898f1e97942fd9f50efc00923325d59918efcc6d253af8a60cd0942721c7b0b3
MD5 7794ed72277833df3c29b78892392a9e
BLAKE2b-256 6916e2f71481a3ff0546c829e1828bb86075f0ebd1521e4c03dc910c3ee0fd11

See more details on using hashes here.

File details

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

File metadata

  • Download URL: geodesk-2.1.3-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 328.6 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.1.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 e7b5a5ef0e67d187cdb98fda61083945428652b6fd64bf7cf12793e36e7e1f5d
MD5 aea5c3db762df9c5750d30ba475aae2b
BLAKE2b-256 758527fe30400353db0f4ba586a4b265c900abf390dc6259ae4634532929b5a0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.1.3-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3d3f07454ce6b64deff8907ad4936f5c8ee8c11d2c630d3776f33b031076f2cc
MD5 0e78160f4d4c811a6b707954e7740fc5
BLAKE2b-256 ca62fff8c026c2dd3e932df5ca3d65f96a0751f8f68c3fa3b6da9239998dd7ae

See more details on using hashes here.

File details

Details for the file geodesk-2.1.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for geodesk-2.1.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 64768cb2a68221d2cac5598f9aa5c30a0c0e7fa7b2d234bca7933ad4937c26fa
MD5 6a9df24f2898f3a384fb52124ac8c14f
BLAKE2b-256 ccf29fbd44548d218cab95401e85fcf246487b43bff33dd3f8d46f529755ddee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.1.3-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 07679ea340131b119813603e1f5e3c6f10169fb1f430d0a9ad5c956fe72d0ffd
MD5 34fe6012309303cce6c682f21b5f8310
BLAKE2b-256 6d2ca09dcaca4e27940660f28934eb2ce0b980a4ea6d4c0ebae6360698212a32

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.1.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6359bc0fc00b066111a49411baa09e0d61c8e522de5aca7227691ba71aae6f5d
MD5 d458d086fe948a884e9fa9ffdfbb93d5
BLAKE2b-256 3978407e253e321766d66dab937de604c83d3542c2ff4d624aba3cda9d5f256e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: geodesk-2.1.3-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 328.8 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.1.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 3f6675826de2eb0d731169c4f59217847cb2f36aee14773ea4da64cf6e4b254e
MD5 7ca27cb2bb0d5dfb02de9f117a035fcd
BLAKE2b-256 01abdeed5864e034f798c3dd4ce5d4b9ff562d0b76ff8fc5e3a43d8c4d0ca000

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.1.3-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c5a9142f703a43c679f9654eabb770eb70a099ad35b56288c423b20998cda4e9
MD5 b4d429b838cfdf7917c2ca52665fb2b4
BLAKE2b-256 aaa0ef9730cec1ad136ff628baecfec7655002152b510bffb822477457cea671

See more details on using hashes here.

File details

Details for the file geodesk-2.1.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for geodesk-2.1.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1ea91e842f5b46dfd39bbf35bba7e01541aec5acb3bfa6f84b227b5c94074534
MD5 9edaa25dd41e6cad6dd175a32b2fadd7
BLAKE2b-256 3e218687962e126ee6f87b6fb883cf0427e2c4ba5a310ca5d84d73eb41c87005

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.1.3-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 f92db2b66f7676a1af17111b0b1cec6aa29e7c165b594434bfc870bd86cd238f
MD5 12c25ea06904cdc74df386d2984f0cbc
BLAKE2b-256 e9342be78b054e8af0f29489b35c9dcf7cd30e83194702bc9216f85b97b57cbd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.1.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f2bfe31cad084253e14a33d10af87d208a761af58196b5bf99bd04e35e6da974
MD5 84c387a69589a0c21d6ac39d13ede7af
BLAKE2b-256 3313387f350feb58002fc840cc6458d063e59cb975ba4fd1f6a79aa6719605d2

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