A reusable Python toolkit for extracting, processing, and exporting OpenStreetMap (OSM) data for any Local Government Area (LGA) in Nigeria. Supports roads, buildings, healthcare facilities, schools, points of interest, administrative boundaries, and other OSM features, enabling mapping and geospatial analysis, . Developed for Map<>kathon 2026.
# Nigerian LGA OSM Extractor
[ ]
(
github.com)
**Live demo:**
lga-extractor.streamlit.app · **GitHub:**
github.com
Turn a plain Nigerian LGA name into a clean, ready-to-use, richly
attributed OSM dataset which includes roads, buildings, waterways, land use, health
facilities, and schools with a verifiable boundary, a correct
projection, and a formal manifest of exactly what was extracted, with
no Overpass query syntax, GIS software, or manual data wrangling
required.
Built for **Map<>kathon 2026** (Lightweight Tool / Demo track), as the
data-extraction engine behind the sibling submission
**akure-accessibility-dashboard**,
*"Mapping the Gap: Health and Education Accessibility in Akure North
and Akure South."* The tool itself is generalized to work for **any**
Nigerian LGA, not just those two: constructing correct Overpass
queries, resolving inconsistent administrative boundaries, and
projecting into the correct UTM zone are real, recurring friction
points for Nigerian GIS students and researchers, and this tool
removes them entirely, for any of Nigeria's 774 LGAs.
> **How this serves the public good:** every Nigerian GIS student or
> researcher who has tried to pull OSM data for their own state or LGA
> knows the friction of hand-writing Overpass queries, resolving
> inconsistent administrative boundaries, and guessing which UTM zone
> applies. This tool removes that friction entirely, and does so with
> a traceable, auditable output - not just a file, but a signed record
> of how that file was produced - so more people can go from "I have
> an idea" to "I have data I can actually trust" and build something
> real with OpenStreetMap.
## Try it
The live demo requires no setup:
lga-extractor.streamlit.app
Or run it locally:
```bash
pip install -e ".[app]"
streamlit run app.py
```
Type in an LGA name, watch a **live, per-s …