Pedestrian Accessibility in OpenStreetMap

· martijn writes (sometimes)

Developing a detection algorithm for pedestrian infrastructure map completeness in OpenStreetMap data

If you are interested in custom OSM data quality analysis with actionable results that can be used to engage the OSM mapping community, or guide your own teams to solve specific quality issues you care about for your use case, you can hire me!

One area where OpenStreetMap (OSM) really shines in United States cities compared to other, proprietary maps is the quality of pedestrian infrastructure. OpenStreetMap United States has a dedicated Pedestrian Working Group that meets regularly to talk about ways to further improve the quality of pedestrian infrastructure and engage the mapping community. To learn more about their work, I recommend watching Chad Blevins’ talk at the recent State of the Map U.S. conference.

One of their accomplishments is a very clever classification system that categorizes pedestrian infrastructure quality for a city as Bronze, Silver or Gold, based on the level of detail available, such as the presence of surface type and quality, crossing detail and curb cut detail. They created a guide that goes into great detail about how to map the features and attributes needed to reach each level.

alt text

OpenStreetMap in Salt Lake City #

I run a local OSM group in my home town of Salt Lake City. We hold monthly meetings where mappers come together to share, learn and map. We recently held a special Map Night to focus on sidewalks and crossings. This proved a popular theme: 10 people showed up and we spent an evening mapping pedestrian features together.

alt text

This event got me really excited to dive deeper into this question of quality. Could I run an analysis that could point our group, and mapping groups everywhere, to specific intersections where work still needs to be done?

Designing a Pedestrian Infrastructure Quality Algorithm #

I have been involved in OSM for almost twenty years and worked on data quality analysis for a good part of that time, so I think I should be able to put something together! Let’s look at the problem space in a bit more detail to see what we need to measure. Let’s look at an intersection that would represent the “Gold Standard”

alt text

This intersection has it all:

At the other extreme we have intersections that have no pedestrian features mapped at all:

alt text

My analysis focused on identifying intersections like this one, that obviously need more detail for pedestrian navigation. I implemented an automated GIS analysis using Python, Geopandas, OSMnx, NetworkX and sklearn that consists of several steps

I then classify intersections into a number of buckets:

I wrapped this analysis in a Python script with a number of parameters that can be tweaked based on the local situation or false negative tolerance.

Results #

Running this analysis on Salt Lake City takes 50 seconds on my M1 MacBook pro, and that includes OSMnx retrieving the network graph.

In spite of our local mapping community’s intense focus on pedestrian infrastructure, it’s clear (but unsurprising) that there’s still work to do! Of 3003 intersections considered:

Missing Sidewalks #

Here are the 464 intersections in Salt Lake City that, according to my analysis, have no sidewalk information at all.

alt text

If an intersection does not have sidewalk information, that could just mean that no sidewalks exist, like here:

alt text

In that case, the road features should still be tagged with sidewalk=no. Many cases I looked at are like this.

There are false positives too, like this intersection that has sidewalk and even curb information that was not picked up by my analysis algorithm, possibly because the road is quite wide and the sidewalks fall outside the default buffer. Needs investigation!

alt text

Missing Crossings #

This is a map of the 579 intersections that have sidewalks around, but no complete crossing information:

alt text

Here, we find some false positives as well, such as this situation here:

alt text

No obvious crossing opportunity for pedestrians exists at this intersection, so the representation in OSM is in fact correct.

Many intersections identified as having sidewalks but no crossings are actually in need of mapping work, however:

alt text

Missing Curb Cuts #

Here is a map of the 1216 intersections that still need detailed curb cut mapping work:

alt text

Such as this colorful intersection here:

alt text

Conclusions and Further Work #

I am happy with this analysis result. It required a day of coding and iteration, and the result is a jumble of spaghetti code that needs clean up. I will iterate on it some more. The results could be better at complex intersections where a separated highway is involved, like here:

alt text

This complex intersection was not considered at all, meaning it was not identified by my algorithm as an intersection in the first place. Some feeble attempts to fix this led to new false positives, so I gave up on that for now now, to revisit at a later point.

The results of this analysis is highly actionable for local (and remote!) mappers. The output of the script is a bunch of GeoJSON files that can be used by mappers and mapping groups in a variety of ways:

I am providing the output files for Salt Lake City as a zip file download. I am happy to run the analysis for your city if you are a volunteer OSM mapper or run a local mapping group.

last updated: