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
Related Repositories
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 16303ea15bd7c06d333013ce9ce929b0b3d7e3be002f0806e7daa2f61452be7b |
|
MD5 | 4454712056a36d77e890734b5d15ab09 |
|
BLAKE2b-256 | f35a08913288f2f4840412df36300a82441eb748536047cbb18f83704eccc945 |
File details
Details for the file geodesk-0.2.1-cp313-cp313-musllinux_1_2_x86_64.whl
.
File metadata
- Download URL: geodesk-0.2.1-cp313-cp313-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 2.2 MB
- Tags: CPython 3.13, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b1929661bdfbf992dc1ff0343f6b8405a08f2a9a2a53cc1f17ef57815d0b30c5 |
|
MD5 | b58ac7f0b3bdaae5b6073fc1f6316f04 |
|
BLAKE2b-256 | 58cdc53d530bae3a623c96589a920b02f58a247c32b79483332616bf8a70a443 |
File details
Details for the file geodesk-0.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: geodesk-0.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | df126ea52ec95b1b83bd001681cc26a71d0252fa00c0a82327ea7376910d3aa8 |
|
MD5 | e5611f81d15e2881a1b0014fe7b50872 |
|
BLAKE2b-256 | 11c94380e65ff428a265d5439828a5ea6a25468ee6c99635fb515df3d1e1f646 |
File details
Details for the file geodesk-0.2.1-cp313-cp313-macosx_11_0_x86_64.whl
.
File metadata
- Download URL: geodesk-0.2.1-cp313-cp313-macosx_11_0_x86_64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.13, macOS 11.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0a7bd4a9b323f9f2b8ee0d57155c3e545cdcbf9bb3d450dcd6a00c2f4a417549 |
|
MD5 | caa5f3650c6b44e1930b5a6be8858764 |
|
BLAKE2b-256 | 5428743dfe745b0417cc802c07d2dc33178eb38ccdadb0e6abf5cb53853d1844 |
File details
Details for the file geodesk-0.2.1-cp313-cp313-macosx_11_0_arm64.whl
.
File metadata
- Download URL: geodesk-0.2.1-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 971.4 kB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 458938e153fa254171c3fe48122911b49ea5b745ad14bba0925f09320bdb8e50 |
|
MD5 | fb5e0e3b78800b1f39e8628ef7c89741 |
|
BLAKE2b-256 | 2913be7643de4f664cc3e88402f6d9b3a0df0aa89f83fa6aed8304f33f779f9e |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 12a4e2191a6cb767260356eb3c7d6dd752b2c5a4f9beb40caaee3c1f4eb25b40 |
|
MD5 | 77ea6a8357de3de3471cd3f65b76f417 |
|
BLAKE2b-256 | 620bd065a8a51d073823b51ef99a170bc386926439afee2b4fb8dc92a26cf8f0 |
File details
Details for the file geodesk-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl
.
File metadata
- Download URL: geodesk-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 2.2 MB
- Tags: CPython 3.12, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5b57584a120b69764d23fa5b4cb47e4661bcedca2c822ba49caadfad20c720ee |
|
MD5 | 86c75020105719703a36062542f0bbd6 |
|
BLAKE2b-256 | 38bec483bc5d3e3e23e11b1a0add9b0f7dd6b31010753b8e87b2ce074cf02eb2 |
File details
Details for the file geodesk-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: geodesk-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5afc766c9e8b0f260c517009b821b3f4358a4b7762cbc187aaebc087ab67d395 |
|
MD5 | 2ca75b9bb08f9d010b2c767a7757a274 |
|
BLAKE2b-256 | 455a69fab966b9b6032149d45005f9fcd55a3078d5f3552accbc06ffd4dc8925 |
File details
Details for the file geodesk-0.2.1-cp312-cp312-macosx_11_0_x86_64.whl
.
File metadata
- Download URL: geodesk-0.2.1-cp312-cp312-macosx_11_0_x86_64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.12, macOS 11.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 708e8cbac16cc62546b0becff081fea63322406cf9ed2987a8e2008276886915 |
|
MD5 | 1a74856e72c8f75522920d46df375d45 |
|
BLAKE2b-256 | 69e2c97e15c98eb119af68b342cbf20b2254d9c28dc7cd42f2e84ed77e4e1d52 |
File details
Details for the file geodesk-0.2.1-cp312-cp312-macosx_11_0_arm64.whl
.
File metadata
- Download URL: geodesk-0.2.1-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 971.4 kB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e51132cc08777552e4401861d05470bcfa475b3be8bad99de92ab37aee6fba7c |
|
MD5 | b30973ef0f67b3a2533ec9e790fb3acd |
|
BLAKE2b-256 | b2cf1db238b9be5f82d410fb981689c7cbc72a0e4ad6592dc61b33adbe360041 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2ddd3420897fdba00802f098e46138a56be9298122a46dbbc76992be4e6581c8 |
|
MD5 | 7bb7147768e445828003de20a170715e |
|
BLAKE2b-256 | 4a0b707787efd27b2319eb29f5c1484186cf855836f7fc03a7ef81285273b2bc |
File details
Details for the file geodesk-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl
.
File metadata
- Download URL: geodesk-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 2.2 MB
- Tags: CPython 3.11, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a3032fa77170d91028b766debf879b4df260f805b6749c527b9f2e7c71e56b05 |
|
MD5 | 200218b776a6802829e5dc98ae03e53b |
|
BLAKE2b-256 | 2c7caa0770b5dfa8bedfe4a2fc60024fac610ac841e001529c1c860b63bdb29f |
File details
Details for the file geodesk-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: geodesk-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 96c91c50b7f08687d2ebb563005063586713ab2ff508e7baca4afa27a6868116 |
|
MD5 | 695f31b36185c662693a0e7d1200b3ed |
|
BLAKE2b-256 | 1c42f0d30c7f82c82e41fff7b82a5cb63bef5f3d1c284fbc3ba7de29f554b8b1 |
File details
Details for the file geodesk-0.2.1-cp311-cp311-macosx_11_0_x86_64.whl
.
File metadata
- Download URL: geodesk-0.2.1-cp311-cp311-macosx_11_0_x86_64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.11, macOS 11.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fe88ec9ce5f57cfb437950a029a4886f9b5df762339fcb4e53325d7662f97030 |
|
MD5 | 448625b705aabce21566ed8dddea30bf |
|
BLAKE2b-256 | d9dba62f17c9131fac6b59245d249d03502d09805f0558f46833908b6a5637d4 |
File details
Details for the file geodesk-0.2.1-cp311-cp311-macosx_11_0_arm64.whl
.
File metadata
- Download URL: geodesk-0.2.1-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 971.4 kB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 89e1972a7e969ddee142201b20ea019991cc418705d7cd0b0aa580e24a5bed67 |
|
MD5 | fc131af66a6f738b7d4cfc3345a57f9f |
|
BLAKE2b-256 | 0aa0a5cbb5060dcf8e422a316851c07f73f060a394faeeabf4ee1d838bfbcefe |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 68efa2c47f236dc4a0d9f41bb188a5f459777024121a73f6ec7a9920a2f8274b |
|
MD5 | 4928c3a969bb70c9de1b971a5c1d9bb5 |
|
BLAKE2b-256 | d3b5125571d0e6d279fd1c17cf9fbd9c61fc8565b3dfba96e1db5fc8f4bc519d |
File details
Details for the file geodesk-0.2.1-cp310-cp310-musllinux_1_2_x86_64.whl
.
File metadata
- Download URL: geodesk-0.2.1-cp310-cp310-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 2.2 MB
- Tags: CPython 3.10, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9baee2c5ff9d5b514f99b3426142836944a3159db1734b2a6da49a56dd8cfd60 |
|
MD5 | 8a3c035b775ad6c98f14b0e751e384cd |
|
BLAKE2b-256 | 30bf1ee0453f5b3d2f7c02f2e20b864fc7c60e0edca6d2953577febfba63c8af |
File details
Details for the file geodesk-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: geodesk-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d38483a2a5fe01ce0fdfde8c18f63cf30391658f8101e8f6742483ef1daf65d2 |
|
MD5 | fa1cb73e695be6c3b1c11919d7fb4500 |
|
BLAKE2b-256 | 3ea0cf141a6851f51f11e0d12cce52700d25e70587e18d2145d69e3474fd1797 |
File details
Details for the file geodesk-0.2.1-cp310-cp310-macosx_11_0_x86_64.whl
.
File metadata
- Download URL: geodesk-0.2.1-cp310-cp310-macosx_11_0_x86_64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.10, macOS 11.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 69ca86fa66b638c43181a4eb959c72170ccd0fb2de82e19f7b3f4b680b6c7f64 |
|
MD5 | 592d50599b688d375a8590873f5eeac3 |
|
BLAKE2b-256 | 6959890c505fe3e75fce1636ce3ec8cfd80a3036c5eaa75460a0b72e4b1a5291 |
File details
Details for the file geodesk-0.2.1-cp310-cp310-macosx_11_0_arm64.whl
.
File metadata
- Download URL: geodesk-0.2.1-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 971.4 kB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b0d412873fc5f5dd5e6f8a54a93fcf1aad6f488721362f467b23319e6d0cc24d |
|
MD5 | d0e694f14dbf6a0db6b5930f078157c2 |
|
BLAKE2b-256 | 5e2d00ee2f1e0120e9a44315551367d63350d1c62528d0dc7fd8541371503696 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6a4a4c40b8db87505702732eca6a6f600e64ffb318f139334009d7b9f9ad104e |
|
MD5 | 53d45ce2b9604e32d4c96306f20f5076 |
|
BLAKE2b-256 | 8e99bbbc57486f1ce6de5fadf8ac59478588a5851b8c420be216e41146e9ed9c |
File details
Details for the file geodesk-0.2.1-cp39-cp39-musllinux_1_2_x86_64.whl
.
File metadata
- Download URL: geodesk-0.2.1-cp39-cp39-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 2.2 MB
- Tags: CPython 3.9, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2bb155ac0f6f33126843afc8d68b575e9d636b7afa7d6cc40b62cfd191a6b872 |
|
MD5 | d2edc7ef38f1f47e955526f18450fffa |
|
BLAKE2b-256 | 856d024be0a7bf6d2b092fbfd6fb3a59675e980e69035147be2b72fb8836329b |
File details
Details for the file geodesk-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: geodesk-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5cb39cdeb2647ebe9d030c391f9ceeebba8fbb0d78a7295a13c9d4ba582f70dc |
|
MD5 | fa5c8161de12a5312060d4d34a697f2f |
|
BLAKE2b-256 | d126859e1d37b1f12448dea3a2935c1df80b783ef705c61833233dce0a0e5ddf |
File details
Details for the file geodesk-0.2.1-cp39-cp39-macosx_11_0_x86_64.whl
.
File metadata
- Download URL: geodesk-0.2.1-cp39-cp39-macosx_11_0_x86_64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.9, macOS 11.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2566f4404b48dd02b14c4e335515711d400f9467479ca809be69343efc90ed4d |
|
MD5 | 1119f5cf393dba29b1d817d54b921b4b |
|
BLAKE2b-256 | 85e65822635ff555d139aebd329aa52c7fba24832b5857799ff69ed12440f298 |
File details
Details for the file geodesk-0.2.1-cp39-cp39-macosx_11_0_arm64.whl
.
File metadata
- Download URL: geodesk-0.2.1-cp39-cp39-macosx_11_0_arm64.whl
- Upload date:
- Size: 971.5 kB
- Tags: CPython 3.9, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 856e40a7b838f9c1cf17f1c2329b0681cb3efc8aef31b5238403567eb1f2eab1 |
|
MD5 | 002b11e7dffb5086f9daec005d587214 |
|
BLAKE2b-256 | 103dafd5765245e508c66eb960364c8b44fd537e35941805faea12d7a336e8ec |