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

Uploaded CPython 3.14Windows x86-64

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

Uploaded CPython 3.14macOS 11.0+ x86-64

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

Uploaded CPython 3.14macOS 11.0+ ARM64

geodesk-2.2.1-cp313-cp313-win_amd64.whl (477.0 kB view details)

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13macOS 11.0+ x86-64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

geodesk-2.2.1-cp312-cp312-win_amd64.whl (477.0 kB view details)

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12macOS 11.0+ x86-64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

geodesk-2.2.1-cp311-cp311-win_amd64.whl (476.8 kB view details)

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11macOS 11.0+ x86-64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

geodesk-2.2.1-cp310-cp310-win_amd64.whl (476.9 kB view details)

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10macOS 11.0+ x86-64

geodesk-2.2.1-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.1-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: geodesk-2.2.1-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 492.1 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.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 56bcae899719610b39b981172329b62684aaed01a9bc3e6be6dc7db97434e792
MD5 6b8c6b35d00bec6a398ecc6c8469a57d
BLAKE2b-256 f1c6d234b357207201dc5fedbb01ff63736a70a3eab0152ad5bec2a8377fa97e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.1-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 33d7ebd9854a4b50b37b487484103d5bddd2c46dc7fa57d29bd18bec7cd045f8
MD5 91cc45f754e73ee95a4c8dbed1dee6c0
BLAKE2b-256 f4b16c73bef99120cef1302e05ca99bc8f80f1d533396cca7625ff266192a6b8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d810cba2c89ca45c0d6d0efbdc4beab42ab7410110facbd4b8bc279e6f049aa9
MD5 e428e8e0ea800077703978693b9e149f
BLAKE2b-256 7a74bfea9d445d1c261aa5aaa9b78ee16cdf0e5b3e1ad5d049d2887b3d6da378

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.1-cp314-cp314-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 376f3189fddcc59304d0bfcee232d9e1b3713dece20c99b525851433e334d34a
MD5 1057db3a8f43d8a5a46ad8442284c339
BLAKE2b-256 7ef8f69220b8a505d5bfa9daa4a1542818761a0252ca181b2dce389ea6c444c3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 234376fb1db1a586e8459f57ab181842f6380418dae5ca1d725d52c236bb20e8
MD5 63f7eb03b98f9ea9badc1d5c5d4c316b
BLAKE2b-256 0b88d90e1908fe4b7574763da89e8ad8bd90249b75baaa12147fbabe2555ec8b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: geodesk-2.2.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 477.0 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.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 ad06c9a08ab0d2a267650fa4e8cebb607421b6b2d4c1811d04de8899de16e3a6
MD5 8c96aa57a49bb3549e079a1abf6c4b91
BLAKE2b-256 4f5cc58c2f47d50c4cddfe028825ba331434e43ecd5ad3b3abf01156928638c5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 baaaaddae88b3888f800d361c133f108b4329e93550afd40c38b587f6c92cbd5
MD5 749db3b7d7249d7c1c8f2263c523c80c
BLAKE2b-256 33f824d03bff83e0693ca2297db548adfbdd67e016dff0cb5803552244189e57

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6b0261dad34bfb858b61afb82ba356df5e06f72f6c00c2f9f6c35bfd9b856103
MD5 b5f7222a00faa61cddb52f8387306dc6
BLAKE2b-256 61c6347b92e01683940890ce8f954d8b491f9ba1b55ced0067988cca8452afee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.1-cp313-cp313-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 c7adc23996b8117ebf098dcf09545d46526a0a04055606a03e1906b608b19015
MD5 ee632bc6ef241382a66c35be8c25e98e
BLAKE2b-256 4f21d189e980d5991d450acd92f6cef0ab8577b3f7112facdcb849ee34a7cfcf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 07ba3278488e2f03128de18d2bce0f3e612456a1ce624aabcd8c34bc76e08100
MD5 ef560c47ce7e54d1386ab741d6dc44e7
BLAKE2b-256 36c5e602b0a81c176d834f5a6f08387f178781cde57f4ee13bee9e0026b17e1f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: geodesk-2.2.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 477.0 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.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 bed973b22c40ff161025e73baa35f4b6628fc87adda3de26ec7fe5af691fd522
MD5 4e7d69750f4554298ec69ac837423db5
BLAKE2b-256 399e35bde7ed2d543f97c12f7b03baba7999466f9a0fbfb5b0d6261fc586c6c5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 de3b3153b8847628375cb44160e58722006b7261bc5602173fa0fa70af06a194
MD5 3cb7e703ccb9dc5c0594df17172efa64
BLAKE2b-256 75f8019e7a021320a50584afc6ec27e92675f330aeabc688c9afc4d5ed3f273c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b6d491cbb5c7fbfb11dc96223b9b2ebb94761286c8cd32175419966395c99342
MD5 2be572f96176a5f752e75fe541e18c17
BLAKE2b-256 9e19ca762f5663c1743608136000dbbdbc99dd360ba1d3fdfb6c310313d84ac7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.1-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 9777f64dd8b0a633656efab18b728c796c3eb87f80291cf8c1d5ce4ce603ea8b
MD5 2019a3c9dd32a691aa5c45f329b1e64d
BLAKE2b-256 41f8c7cccd60a91ad96f02786864d65f48ecd8b250320071f95942544353cc45

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fb2f2e954acb6a773bb98914fe906e0c06b3a51be761f5647d5101a4860b775e
MD5 efb0a18cdf319e8b75c3965944ccd7ac
BLAKE2b-256 e7bece7dd51e3ae6d2b26050af4d885802fb8661bf9c0f5a72e43f5cb9944022

See more details on using hashes here.

File details

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

File metadata

  • Download URL: geodesk-2.2.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 476.8 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.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 1e42094255cc69544c52165fc825f3e2232abe6a72890882e660602afdbe6f42
MD5 edb0c1debcfa3ca4dae7a270b5fca52c
BLAKE2b-256 b9ff7e28c92271a5d19ef9a3eb1ab1b64113639264b45f14bf3e4023661d5dc3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2072b66ecae0f8b6f835d81698422addcabeca6ff8501e16df3c6809e1eaba97
MD5 3399bf0b46368e5b2b6dcec5cef01890
BLAKE2b-256 c20426a4d5c3f9533667f9d9e90957e945a87ddec9502971a06a1ef9f67b9ba2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 652fc12954ec91fbab586d39730361a14facab7910ef14d628679e13d57e2026
MD5 05cd68f921c81261936e0132ad7a2ee5
BLAKE2b-256 7721abdc3afc556242f3c71aacdad731235c192f03e3234fdf0f2b6f954cc81b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.1-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 463017e7f820eee8ee09810052a20ce6676ce093ffde6e8819471144d11b6a1e
MD5 24f54cdc5553607499bd810085f2440f
BLAKE2b-256 aa86652b7256d375cf46f1d123f2df363b17829465858271011d77a973091302

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 075a74b81046eac9d35df528ec3422cca10f2085dee54e8b5440f8ae8bfb17e4
MD5 89585c4d81179e9dcb3adf9109fa7008
BLAKE2b-256 ff4c7c18a18a6ad1590ef058d96ee6d218de9d7bf84f4f6674703f581fc74a24

See more details on using hashes here.

File details

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

File metadata

  • Download URL: geodesk-2.2.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 476.9 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.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 1cbc33f01ae9e0107fe090d43d0a6aadbf1ee19c4c1f0b8b5cc90f1e0dc8c8b5
MD5 49872ac49f94e5bafc50fa551a798de2
BLAKE2b-256 251c6714a8d5a544b7d11b57c5c2e37d4345eb155181c4f8e7b94ba41b180978

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.1-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 62f12a313572a7049aba1386488096d89f3d7dfaea191974f24cd3e7cfa2f430
MD5 90d0785ae6f480f05a6b92c15494bfbb
BLAKE2b-256 0196c129c0936b5853fb0936d47390244674abe4ce2f7a05d929b835ab1eef35

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c47af24ebfc7c85f832f0bc9ab8ab765eb54ea8e5f4576eccd3599a47a85c6ab
MD5 95296bf6fee87a0b007053dba784426b
BLAKE2b-256 8dbff11a7bc5b7ee1243d7afc984a5024a912476063073c1455215e094fa9da3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.1-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 26fd3e4713a1fc740d3141b8d2dc2b876cc6137c7c71e49a7e5e2db45d85ecc8
MD5 baf5dae0857f95d6d84a37338428ed26
BLAKE2b-256 a639971dc40299461630443310bbb42257a22ae4e783e417122d4daa6abc4edc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-2.2.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 67e1652213eff97572e52440da3f29d38a32300e90618eaddab57df49c4d0d0d
MD5 59cc28095bd2327f5d4f8bafcc92de66
BLAKE2b-256 3849a3eb979ee61ff0a63a4561fbf772a18a6bccf45a23c9663b07470604c89c

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