This tool assists with batch uploading address data to OpenStreetMap. Currently only designed to work with Charlotte Mecklenburg county's Open Mapping master address dataset, although I intend to implement a general solution if this project finds success.
- Support for multifamily units
- Reconcile addresses that already exist in OSM
- Manual user review for non-confident matches
- Match street names to physically nearest name match
- Generalize for other datasets and address formats
- Support for multiple cities, states, and countries
- OSM account Oauth support
- Automatically generate and upload OSM changeset
- GUI?
- Python 3
- Clone the repository
git clone https://github.com/alexwohlbruck/osm-addresser.git
cd osm-addresser
- Create a virtual environment
python3 -m venv venv
source venv/bin/activate
- Install the required packages
pip3 install -r requirements.txt
- Download your address dataset. As of now, this must be a shapefile with a format that matches the Mecklenburg County GIS Master Address Table. In the
stage
directory I have included a sample dataset with a only few dozen addresses. You can download a full copy here. - Unzip the downloaded file and place all unzipped files in the
stage
directory. Replace existing files if necessary. - Activate the virtual environment
source venv/bin/activate
- Run the script
python3 addresser.py ./stage/{shapefile name}.shp {city name} {state abbreviation}
Example for the Mecklenburg County dataset:
python3 addresser.py ./stage/MAT-filtered.shp Charlotte NC