United States cities are built for cars, with very few exceptions. From where I am sitting right now, I see this:
Cars zooming by incessantly at 70kph.
Finding your way in an urban space that is designed this way is tricky – and often dangerous – if you are walking or bicycling. Sidewalks are often not present, crossing streets can be very dangerous or even impossible. OSM has great tagging for bike lanes and sidewalks, but I find that these crucial tags are often missing on ways that need them most: the four or six lane urban arterials that you see in the picture above.
As I was sitting here asking myself how on earth I would get back to my hotel (which is 10 minutes away) safely, I thought to myself: ‘we can fix this problem and make the world a bit safer for those who can’t or won’t drive.’
MapRoulette to the rescue!
I created this challenge highlighting all
secondary ways that have no
sidewalk tag in Tampa, Florida. (I am actually in Sarasota now, south of Tampa, but I already fixed all the ways there so that would be a boring challenge.) The idea is to look at the aerial image in JOSM or iD, see if there is a sidewalk, and add the appropriate tag. Adding
sidewalk=no is actually just as important as adding
left. Here is an example way from this challenge:
Even zooming further in there is no sight of a sidewalk:
So let’s add that information:
Create a Challenge for your city
The fun part is that you can easily replicate this challenge for your own city. Here’s what to do.
First you head over to Overpass Turbo and run the query that highlights all
highway=secondary that have no
You can use my query as a template, replacing the GeocodeArea with the name of your city.
Once you have the results, export them to GeoJSON. Let’s use a gist:
You can now click on the gist link and see the result on GitHub as well:
We will need the ‘raw’ GeoJSON content, so click on the ‘Raw’ button and copy the link it leads you to.
Next we’ll use a little tool I created to easily turn the contents of a GeoJSON file into a MapRoulette challenge. To get it, head over to the Github repository and follow the instructions to install the tool.
The tool takes its configuration from a YAML file. The samples directory contains an example for this sidewalks challenge you can use as a template:
# the base URL for the MapRoulette server API to call
# server API admin credentials
# source file or URL. You can give a list of URLs too, all data will be gathered and added to the same challenge.
# source_file: ....
# source geojson property key to use as your task identifier (optional, will use random UUID if not given)
# identifier_property = ...
# Challenge metadata, see https://gist.github.com/mvexel/b5ad1cb0c91ac245ea3f for background
title: Add sidewalks to major roads in Sarasota
instruction: This way has no `sidewalk` tag. Usually you can see from the aerial imagery if there is a sidewalk or not. Please add the appropriate `sidewalk` tagging.
help: "Help make OSM be a better resource for safe, walkable streets! Many primary and secondary roads in the US are not safe for pedestrians if there is no sidewalk. This challenge highlights all `primary` and `secondary` ways that have no [`sidewalk`](https://wiki.openstreetmap.org/wiki/Key:sidewalk) tagging whatsoever. You can help by looking at aerial imagery and adding the appropriate `sidewalk` tagging. `sidewalk=no` is just as important to have as the 'positive' values. Thanks for helping make OSM better!"
The only items you would need to change are the
source_url (use the raw GeoJSON github link you just copied), the
sidewalks-YOURSTATE-YOURCITY or something similar – this will be the challenge URL component in MapRoulette) and the
title (change the city name).
By default this configuration will post to dev.maproulette.org. If you want to post tomaproulette.org you would need to get in touch with me to get the credentials.
Once you have the YAML config file in order posting to MapRoulette is as simple as:
$ ./geojson2maproulette.py samples/sidewalks-sarasota.yaml --post --activate
Posting 364 tasks...
server alive: True
Let me know if you need any help with this or if you want me to create a challenge for you!