RoadMatcher
RoadMatcher is a plugin for the GIS OpenJUMP that allows for automated conflation of geographical topologies.
Note: This document is generalized, and uses the term "government" to refer to a source data set, though it could come from any entity willing to release data to OSM.
Getting Started
From the project's download page download openjump-x.x.x.zip direct link to 1.3.1, and unzip it to a folder in your home directory. You don't need to install it anywhere (no need to install to /usr/bin or /opt), as it will run right from your home directory, wherever you unzip it to.
Download (from the same page) roadmatcher1.4forOJ (under More Plugins) direct link, and unzip.
Copy the three jar files from RoadMatcher and put them in openjump-1.3.1/lib/ext
You should at this point have openjump-1.3.1/lib/ext/jcommon-0.8.4.jar etc. in some directory on your computer.
Make openjump-1.3.1/bin/openjump.sh executable (chmod u+x openjump.sh or whatever command you prefer)
Run OpenJump using the sh file.
File->Open File...
In the drop down box at the top of the dialog, make sure ESRI Shapefile is selected.
Open up the shapefiles for the "government" data and OSM (you can use Ctrl-click).
Roadmatcher->New Session Plugin...
No profile required, just hit next
Colours don't matter, but make sure the "government" set is the reference set. This is important. The "government" has the reference set, and we are matching OSM against it. Hit next.
We don't need constraint layers, hit next.
I don't like to Automatch from the beginning, so I just hit next.
Matching
Matching itself is a slight art. Read through the Roadmatcher pdf files that came in the zip file. The user guide and quick reference both contain very good information, along with diagrams and explanations of how to use each tool, so there is no point in repeating it here. You won't need all the features (eg. you can skip constraint layers, which are used to affix nodes when they are on the boundary of the working area and you will require those nodes to match up with nodes in another working set). If you are going to be using geobase2osm.py or pineridge2osm.py, then making positional corrections will not affect the final outcome, as those scripts will use the original positional data from .gml files. It is standard procedure to perform Autoconflation first, then manually adjust and correct. Sometimes I find it useful to perform manual conflation on roads that are obvious matches but will probably fail the automated process before running Autoconflation. Autoconflation will then work around my manual matches, and I tend to get better results. I also suggest doing a "dry run" for the first time, where you go through and do the matching, but then delete your results and start over after you know how the tools work.
Exporting
When you're done, go to Roadmatcher->Result->Options....
Set the source dropdown box to be "government".
Click the "id" attribute in the list, and click the single arrow right icon to add it to the list of attributes that will get exported. (Note: this may be called something else, depending on what "government" source you're using. For Canada, it's "id". For Albania, it's "et_id") It's important to get the id transferred to the result file, or else geobase2osm.py won't know the id number of any roads!
Roadmatcher->Result->Generate Layer...
Included Gov is the only checkbox you need checked, then hit ok
You'll get a Result layer in you layers toolbox. Right click it, and Save Dataset As...
This Result.jml file will get passed in to the processing script for your region (geobase2osm.py for Canada, pineridge2osm.py for Albania)
External Links
- Product page for RoadMatcher by original developer Vivid Solutions