Skip to main content

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-adm4 pcode and name columns from fieldmaps.io humanitarian boundaries.
  • Name transliteration to Latin script (name_latin) via unidecode, with name_en preferred 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

oex-0.3.0.tar.gz (99.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

oex-0.3.0-py3-none-any.whl (86.0 kB view details)

Uploaded Python 3

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

Hashes for oex-0.3.0.tar.gz
Algorithm Hash digest
SHA256 493b2d19f5de93b44be2f3b87136754f9e3ae3cb8c37849b7f25e203c43b12f5
MD5 3bd8794c36ec1db0c7a1c2ff1e5aa48c
BLAKE2b-256 247d1ff4a84d124027134ec424255cf85670131356b48aa20eb50ba9045d8ace

See more details on using hashes here.

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

Hashes for oex-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e0956881d191805308e52718efaaa18e0257be9eb066af16f93698abc056fa9d
MD5 8870d940c3d83c6965a25510dd4809e1
BLAKE2b-256 40bd8bb3f5ec365a2e3ca8c705dc98741e1baff4d442b68c40855355b69e174f

See more details on using hashes here.

Supported by

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