Scaling up a field mapping project within a city of over 5 million people requires proper planning and training. We first wanted to give our field mappers a thorough overview of how data is inputted into OSM to ensure a clear understanding of the OSM ecosystem and how it works. At a later stage, we will be showing them how OSM data can be used for several different purposes.
Teaching 300 new mappers how to map, however, comes with certain challenges. All of our mappers have been beginners, and most of them have never contributed to OSM before. Their first task was therefore a simple one – to create OSM accounts, signing up to join the global community of contributors. We then introduced them to the platform and showed them how to make edits.
One of the goals of Ramani Huria 2.0 is to map the entire city of Dar es Salaam in OSM. We began by dividing our mappers into four teams and distributing mapping tasks. Within hours, the relatively small tasks were mapped to 100% and mappers had been effectively introduced to mapping and had successfully contributed to OSM..
We anticipated the beginner level of our mappers would cause some issues, and indeed it did – data quality.
That very evening, we got a message from one of the experienced mappers in the OSM community highlighting some of the errors they had come across, which had been made by our mappers. This is the power of the OSM community. Earlier on in the training, a question had been asked of the authenticity of OSM data and how errors are addressed and controlled. Here was their answer. The community is always looking.
Student mappers mapping with JOSM
Next on our agenda was to address these data quality issues, a vital step in successfully contributing to OSM. Major issues identified were tag spelling mistakes, untagged buildings and several buildings not squared or connected to each other. We wanted to introduce simple methods for addressing these while also using the same opportunity to exhibit the value of more tools in JOSM.
JOSM filters came in handy to solve the data quality challenges, with the guidance of plugins like the Todo list. It was a combination of these that brought us closer to completely eliminating the problem. The teams validated the tasks, which reduced and cleaned up some of these errors, but several were still unsolved.
A new task was subsequently set up, intended to be a validation task for the data that had been created earlier on.
New task created
The steps for this are as follows:
- Select the task to validate and open it in JOSM.
- Use Bing Aerial Imagery to validate, unless there is cloud cover, then use Mapbox imagery or DigitalGlobe Premium.
- Check that all buildings are mapped in the task being validated, if there are unmapped buildings, map and tag them correctly, with the tag building=yes.
- Use filters to filter out all highways, land use, and waterways. Add these filters to JOSM.
- type:node untagged (to hide all way nodes that are not tagged).
- highway=* (to hide all highways).
- waterway=* (to hide all waterways).
- landuse=* (to hide land use type features).
- Use the Todo list plugin to check attributes of all buildings one by one.
- Attributes to check are:
- Attributes to check are:
- Common tagging errors encountered were:
Buildings added to the Todo list to be checked
- Once all buildings have been checked (shapes and tags), Run Validation in the Validation Results window, look up all the warnings and fix them.
- upload to OSM.
These steps solved the issues to a great extent. However, there were some of errors that remained even after checking the tasks again. The problem now was not related to workflow, but to experience. Our mappers need more time practicing and mapping to effectively outgrow some of these errors.
We are also considering whether a spell-checker could be a useful feature for JOSM! A lot of mappers, particularly new ones, perform a relatively limited set of operations, such as adding buildings; they rarely need tags outside of the “core” set of common OSM tags. Perhaps JOSM could alert a mapper when a tag is not within that small set (possibly due to misspelling)? Anyone out there in the coding community want to take a look?