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 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
  • 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-0.2.1-cp313-cp313-win_amd64.whl (305.3 kB view details)

Uploaded CPython 3.13 Windows x86-64

geodesk-0.2.1-cp313-cp313-musllinux_1_2_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.13 musllinux: musl 1.2+ x86-64

geodesk-0.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.13 manylinux: glibc 2.17+ x86-64

geodesk-0.2.1-cp313-cp313-macosx_11_0_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.13 macOS 11.0+ x86-64

geodesk-0.2.1-cp313-cp313-macosx_11_0_arm64.whl (971.4 kB view details)

Uploaded CPython 3.13 macOS 11.0+ ARM64

geodesk-0.2.1-cp312-cp312-win_amd64.whl (305.3 kB view details)

Uploaded CPython 3.12 Windows x86-64

geodesk-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.2+ x86-64

geodesk-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

geodesk-0.2.1-cp312-cp312-macosx_11_0_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.12 macOS 11.0+ x86-64

geodesk-0.2.1-cp312-cp312-macosx_11_0_arm64.whl (971.4 kB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

geodesk-0.2.1-cp311-cp311-win_amd64.whl (305.1 kB view details)

Uploaded CPython 3.11 Windows x86-64

geodesk-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ x86-64

geodesk-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

geodesk-0.2.1-cp311-cp311-macosx_11_0_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.11 macOS 11.0+ x86-64

geodesk-0.2.1-cp311-cp311-macosx_11_0_arm64.whl (971.4 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

geodesk-0.2.1-cp310-cp310-win_amd64.whl (305.2 kB view details)

Uploaded CPython 3.10 Windows x86-64

geodesk-0.2.1-cp310-cp310-musllinux_1_2_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.2+ x86-64

geodesk-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

geodesk-0.2.1-cp310-cp310-macosx_11_0_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.10 macOS 11.0+ x86-64

geodesk-0.2.1-cp310-cp310-macosx_11_0_arm64.whl (971.4 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

geodesk-0.2.1-cp39-cp39-win_amd64.whl (305.3 kB view details)

Uploaded CPython 3.9 Windows x86-64

geodesk-0.2.1-cp39-cp39-musllinux_1_2_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.9 musllinux: musl 1.2+ x86-64

geodesk-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

geodesk-0.2.1-cp39-cp39-macosx_11_0_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.9 macOS 11.0+ x86-64

geodesk-0.2.1-cp39-cp39-macosx_11_0_arm64.whl (971.5 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: geodesk-0.2.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 305.3 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.10

File hashes

Hashes for geodesk-0.2.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 16303ea15bd7c06d333013ce9ce929b0b3d7e3be002f0806e7daa2f61452be7b
MD5 4454712056a36d77e890734b5d15ab09
BLAKE2b-256 f35a08913288f2f4840412df36300a82441eb748536047cbb18f83704eccc945

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-0.2.1-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b1929661bdfbf992dc1ff0343f6b8405a08f2a9a2a53cc1f17ef57815d0b30c5
MD5 b58ac7f0b3bdaae5b6073fc1f6316f04
BLAKE2b-256 58cdc53d530bae3a623c96589a920b02f58a247c32b79483332616bf8a70a443

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-0.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 df126ea52ec95b1b83bd001681cc26a71d0252fa00c0a82327ea7376910d3aa8
MD5 e5611f81d15e2881a1b0014fe7b50872
BLAKE2b-256 11c94380e65ff428a265d5439828a5ea6a25468ee6c99635fb515df3d1e1f646

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-0.2.1-cp313-cp313-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 0a7bd4a9b323f9f2b8ee0d57155c3e545cdcbf9bb3d450dcd6a00c2f4a417549
MD5 caa5f3650c6b44e1930b5a6be8858764
BLAKE2b-256 5428743dfe745b0417cc802c07d2dc33178eb38ccdadb0e6abf5cb53853d1844

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-0.2.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 458938e153fa254171c3fe48122911b49ea5b745ad14bba0925f09320bdb8e50
MD5 fb5e0e3b78800b1f39e8628ef7c89741
BLAKE2b-256 2913be7643de4f664cc3e88402f6d9b3a0df0aa89f83fa6aed8304f33f779f9e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: geodesk-0.2.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 305.3 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.10

File hashes

Hashes for geodesk-0.2.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 12a4e2191a6cb767260356eb3c7d6dd752b2c5a4f9beb40caaee3c1f4eb25b40
MD5 77ea6a8357de3de3471cd3f65b76f417
BLAKE2b-256 620bd065a8a51d073823b51ef99a170bc386926439afee2b4fb8dc92a26cf8f0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5b57584a120b69764d23fa5b4cb47e4661bcedca2c822ba49caadfad20c720ee
MD5 86c75020105719703a36062542f0bbd6
BLAKE2b-256 38bec483bc5d3e3e23e11b1a0add9b0f7dd6b31010753b8e87b2ce074cf02eb2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5afc766c9e8b0f260c517009b821b3f4358a4b7762cbc187aaebc087ab67d395
MD5 2ca75b9bb08f9d010b2c767a7757a274
BLAKE2b-256 455a69fab966b9b6032149d45005f9fcd55a3078d5f3552accbc06ffd4dc8925

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-0.2.1-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 708e8cbac16cc62546b0becff081fea63322406cf9ed2987a8e2008276886915
MD5 1a74856e72c8f75522920d46df375d45
BLAKE2b-256 69e2c97e15c98eb119af68b342cbf20b2254d9c28dc7cd42f2e84ed77e4e1d52

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-0.2.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e51132cc08777552e4401861d05470bcfa475b3be8bad99de92ab37aee6fba7c
MD5 b30973ef0f67b3a2533ec9e790fb3acd
BLAKE2b-256 b2cf1db238b9be5f82d410fb981689c7cbc72a0e4ad6592dc61b33adbe360041

See more details on using hashes here.

File details

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

File metadata

  • Download URL: geodesk-0.2.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 305.1 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.10

File hashes

Hashes for geodesk-0.2.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 2ddd3420897fdba00802f098e46138a56be9298122a46dbbc76992be4e6581c8
MD5 7bb7147768e445828003de20a170715e
BLAKE2b-256 4a0b707787efd27b2319eb29f5c1484186cf855836f7fc03a7ef81285273b2bc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a3032fa77170d91028b766debf879b4df260f805b6749c527b9f2e7c71e56b05
MD5 200218b776a6802829e5dc98ae03e53b
BLAKE2b-256 2c7caa0770b5dfa8bedfe4a2fc60024fac610ac841e001529c1c860b63bdb29f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 96c91c50b7f08687d2ebb563005063586713ab2ff508e7baca4afa27a6868116
MD5 695f31b36185c662693a0e7d1200b3ed
BLAKE2b-256 1c42f0d30c7f82c82e41fff7b82a5cb63bef5f3d1c284fbc3ba7de29f554b8b1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-0.2.1-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 fe88ec9ce5f57cfb437950a029a4886f9b5df762339fcb4e53325d7662f97030
MD5 448625b705aabce21566ed8dddea30bf
BLAKE2b-256 d9dba62f17c9131fac6b59245d249d03502d09805f0558f46833908b6a5637d4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-0.2.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 89e1972a7e969ddee142201b20ea019991cc418705d7cd0b0aa580e24a5bed67
MD5 fc131af66a6f738b7d4cfc3345a57f9f
BLAKE2b-256 0aa0a5cbb5060dcf8e422a316851c07f73f060a394faeeabf4ee1d838bfbcefe

See more details on using hashes here.

File details

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

File metadata

  • Download URL: geodesk-0.2.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 305.2 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.10

File hashes

Hashes for geodesk-0.2.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 68efa2c47f236dc4a0d9f41bb188a5f459777024121a73f6ec7a9920a2f8274b
MD5 4928c3a969bb70c9de1b971a5c1d9bb5
BLAKE2b-256 d3b5125571d0e6d279fd1c17cf9fbd9c61fc8565b3dfba96e1db5fc8f4bc519d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-0.2.1-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9baee2c5ff9d5b514f99b3426142836944a3159db1734b2a6da49a56dd8cfd60
MD5 8a3c035b775ad6c98f14b0e751e384cd
BLAKE2b-256 30bf1ee0453f5b3d2f7c02f2e20b864fc7c60e0edca6d2953577febfba63c8af

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d38483a2a5fe01ce0fdfde8c18f63cf30391658f8101e8f6742483ef1daf65d2
MD5 fa1cb73e695be6c3b1c11919d7fb4500
BLAKE2b-256 3ea0cf141a6851f51f11e0d12cce52700d25e70587e18d2145d69e3474fd1797

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-0.2.1-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 69ca86fa66b638c43181a4eb959c72170ccd0fb2de82e19f7b3f4b680b6c7f64
MD5 592d50599b688d375a8590873f5eeac3
BLAKE2b-256 6959890c505fe3e75fce1636ce3ec8cfd80a3036c5eaa75460a0b72e4b1a5291

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-0.2.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b0d412873fc5f5dd5e6f8a54a93fcf1aad6f488721362f467b23319e6d0cc24d
MD5 d0e694f14dbf6a0db6b5930f078157c2
BLAKE2b-256 5e2d00ee2f1e0120e9a44315551367d63350d1c62528d0dc7fd8541371503696

See more details on using hashes here.

File details

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

File metadata

  • Download URL: geodesk-0.2.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 305.3 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.10

File hashes

Hashes for geodesk-0.2.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 6a4a4c40b8db87505702732eca6a6f600e64ffb318f139334009d7b9f9ad104e
MD5 53d45ce2b9604e32d4c96306f20f5076
BLAKE2b-256 8e99bbbc57486f1ce6de5fadf8ac59478588a5851b8c420be216e41146e9ed9c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-0.2.1-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2bb155ac0f6f33126843afc8d68b575e9d636b7afa7d6cc40b62cfd191a6b872
MD5 d2edc7ef38f1f47e955526f18450fffa
BLAKE2b-256 856d024be0a7bf6d2b092fbfd6fb3a59675e980e69035147be2b72fb8836329b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5cb39cdeb2647ebe9d030c391f9ceeebba8fbb0d78a7295a13c9d4ba582f70dc
MD5 fa5c8161de12a5312060d4d34a697f2f
BLAKE2b-256 d126859e1d37b1f12448dea3a2935c1df80b783ef705c61833233dce0a0e5ddf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-0.2.1-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 2566f4404b48dd02b14c4e335515711d400f9467479ca809be69343efc90ed4d
MD5 1119f5cf393dba29b1d817d54b921b4b
BLAKE2b-256 85e65822635ff555d139aebd329aa52c7fba24832b5857799ff69ed12440f298

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geodesk-0.2.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 856e40a7b838f9c1cf17f1c2329b0681cb3efc8aef31b5238403567eb1f2eab1
MD5 002b11e7dffb5086f9daec005d587214
BLAKE2b-256 103dafd5765245e508c66eb960364c8b44fd537e35941805faea12d7a336e8ec

See more details on using hashes here.

Supported by

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