Country-scale OSM and Overture Maps vector datasets, exported to GIS formats and optionally published to HDX.
Project description
oex
Open Data Exporter. Country-scale vector data from OpenStreetMap and Overture Maps, exported to GeoPackage, Shapefile, GeoJSON, or KML. Optional HDX publication.
Install
One-line installer (picks uv, pipx, or pip --user, whichever you have):
curl -LsSf https://raw.githubusercontent.com/osgeonepal/oex/main/scripts/install.sh | sh
Or pick directly:
uv tool install oex # uv
pipx install oex # pipx
pip install --user oex # pip
Or run the docker image without installing anything:
docker run --rm -v "$PWD/output:/app/output" \
ghcr.io/osgeonepal/oex:latest oex-cli osm npl
For docker as a system command:
curl -LsSf https://raw.githubusercontent.com/osgeonepal/oex/main/scripts/install.sh | sh -s -- --docker
That writes /usr/local/bin/oex-cli wrapping the docker image so
oex-cli osm npl runs the container.
One liner country export
oex-cli osm npl
Eight categories (Buildings, Roads, Hospitals, Schools, Rivers, Land Use,
Transportation Hubs, Settlements) for Nepal as gpkg + shp zips in
./output/. Replace npl with any ISO3. Use oex-cli overture <iso3>
for Overture Maps instead.
Two ways to customise
# Curated schema (12-layer HOT-style HDX export, Overture data package, etc)
oex-cli osm --config configs/examples/hot-schema.yaml --iso3 NPL
# Your own categories
oex-cli osm --config ./my-stuff.yaml
See Get started for the install matrix and three flows in detail, Custom categories for the schema, and HDX publication for pushing to HDX.
Features
- 8 default categories: Buildings, Roads, Hospitals, Schools, Rivers, Land Use, Transportation Hubs, Settlements.
- 12-layer HOT-style HDX schema mirroring
hotosm_<iso3>_*exports. - 15-dataset Overture data package (one per theme/feature type).
- Output formats:
gpkg,shp,geojson,kml. Default is[gpkg, shp]. - Administrative pcode tagging: each feature gets
adm0-adm4pcode and name columns from fieldmaps.io humanitarian boundaries. - Name transliteration to Latin script (
name_latin) via unidecode, withname_enpreferred when present. - ISO3 language columns (
name_hi,name_ar,name_ne, ...) resolved via pycountry + babel. - Per-category export report: feature count, bbox, geometry types, temporal range, null %, distinct counts, and top values per column.
- Brazil HOT 12-category run: ~22 M features in ~63 min, peak ~5.7 GB RAM.
Develop from source
git clone https://github.com/osgeonepal/oex
cd oex
just setup
just test
just osm nepal
Stack
| Concern | Tool |
|---|---|
| Package manager | uv |
| Build backend | uv_build |
| Linter + formatter | ruff |
| Type checker | ty |
| Tests | pytest + pytest-cov |
| Task runner | just |
| Query engine | DuckDB + spatial extension |
| OSM parser | QuackOSM |
| Overture access | DuckDB httpfs over s3://overturemaps-us-west-2 |
| Boundaries (default) | geoBoundaries CGAZ ADM0 |
| Pcode boundaries | fieldmaps.io humanitarian admin boundaries |
| Pcode index | H3 hexagonal cell index at resolution 7 |
License
GPL-3.0-only. See LICENSE.
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 Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file oex-0.3.0.tar.gz.
File metadata
- Download URL: oex-0.3.0.tar.gz
- Upload date:
- Size: 99.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
493b2d19f5de93b44be2f3b87136754f9e3ae3cb8c37849b7f25e203c43b12f5
|
|
| MD5 |
3bd8794c36ec1db0c7a1c2ff1e5aa48c
|
|
| BLAKE2b-256 |
247d1ff4a84d124027134ec424255cf85670131356b48aa20eb50ba9045d8ace
|
File details
Details for the file oex-0.3.0-py3-none-any.whl.
File metadata
- Download URL: oex-0.3.0-py3-none-any.whl
- Upload date:
- Size: 86.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e0956881d191805308e52718efaaa18e0257be9eb066af16f93698abc056fa9d
|
|
| MD5 |
8870d940c3d83c6965a25510dd4809e1
|
|
| BLAKE2b-256 |
40bd8bb3f5ec365a2e3ca8c705dc98741e1baff4d442b68c40855355b69e174f
|