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 from configs/examples/ in this repo (HOT-style HDX export, Overture package)
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 gbOpen ADM0 |
| Pcode boundaries | fieldmaps.io humanitarian admin boundaries |
| Pcode index | H3 hexagonal cell index at resolution 7 |
License
GPL-3.0-only. See LICENSE.
Metadata
Release files for oex 0.4.19
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| oex-0.4.19.tar.gz | 220.6 kB | Without provenance | Details for oex-0.4.19.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| oex-0.4.19-py3-none-any.whl | Python 3 | none | any | Details for oex-0.4.19-py3-none-any.whl |
Total release size: 365.8 kB
Release files / oex-0.4.19.tar.gz
| Download URL | oex-0.4.19.tar.gz |
|---|---|
| Size | 220.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
850c02f6ed685f665d10fe0f303430892dcfa835701aab3acf683f980a02c970
|
|
BLAKE2b-256 checksum How to use checksums |
8e4cafb1a3a2be2908d652b64ac2bf63e92a1ee8474cde4471655021a093baad
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / oex-0.4.19-py3-none-any.whl
| Download URL | oex-0.4.19-py3-none-any.whl |
|---|---|
| Size | 145.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0703166952493f232863f5c281945a06a6a84d790588294476f5898bb14022a7
|
|
BLAKE2b-256 checksum How to use checksums |
01821979f22664dacab8feb6f51029ec063ebc60c18b95f0c2143d8bf31e7b85
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for oex 0.4.19
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.