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.17
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 | |
|---|---|---|---|---|
| oex-0.4.17.tar.gz | 218.0 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| oex-0.4.17-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 362.4 kB
Release files / oex-0.4.17.tar.gz
| Download URL | oex-0.4.17.tar.gz |
|---|---|
| Size | 218.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e3decc009d9cbb42f40e5a8ecf6eb7bbcf74de174de02206aa045b3766c85703
|
|
BLAKE2b-256 checksum How to use checksums |
b13a114418b535b911c1a2c9698744d76c6e6154b3bb68b0c370b8b34b6bef3d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.3 {"installer":{"name":"uv","version":"0.13.3","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.17-py3-none-any.whl
| Download URL | oex-0.4.17-py3-none-any.whl |
|---|---|
| Size | 144.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f82a26326e9dfd3e99cf57e3a095929c26b07d4bf9b1c88ae91bcf1ec20598e2
|
|
BLAKE2b-256 checksum How to use checksums |
e9b73ccfdb403e73d43f123e6a35fdcdff7da71bb8ec4f4e265d46f8bdb52279
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.3 {"installer":{"name":"uv","version":"0.13.3","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.17
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.