-
Notifications
You must be signed in to change notification settings - Fork 51
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Detect sidewalks and crossings that aren't tagged as such #125
Comments
First (super simple, super naïve) pass is kinda-sorta doing the right things:
There are some fun edges cases that I'm not handling yet, like bridges / tunnels: seems like a crossing, because it intersects roads, but is actually a sidewalk along a bridge sidewalk touches the road, so is flagged as sidewalk and crossing, but there's actually no crossing here One possible approach here to make this everything more accurate is to work on segments instead of entire ways, so we can flag that only the section which actually crossing a road should be marked |
Very cool @tcql Most of the sidewalk suggestions around the Lincoln memorial look like false positives, so its a nice area to see how to optimize the detection. Once the segment splitting is in this is going to be ready for the data team! |
@tcql for me, if its alongside the road kerb its a sidewalk, else remains a footway. @1ec5 ? Its quite hard to define a standard offset under which we flag it as a sidewalk, maybe 3 lanes wide? |
I disagree. It really depends: a single sidewalk can run right up to the curb for a stretch then move a few lane-widths away for another stretch but still remain a sidewalk. There is no standard offset, and it doesn’t even have to be completely straight. To me, it’s telling that in this example the walkway parallel to the road continues straight into a crossing at the intersection. The curb right next to the buses should be tagged as a bus platform. If the buses hadn’t been present in the imagery, I would’ve just ignored that curb. I’m not sure what to make of the connections between the sidewalk and the road. I’m inclined to call them sidewalks too, because they’re probably also part of the road’s easement and don’t go beyond the walkway that I’m sure is a sidewalk. |
Sometimes there are gray areas, for example when a walkway meanders so far away from a road that it would appear distinct from the road at any zoom level, or when it’s built a bit wider to accommodate bicycles (a lot of suburban “bike trails” are built this way). |
Yeah I am pretty liberal with adding I don't add the sidewalk tag for paths that lead up to building entrances, or go towards some other destination. (Just my $0.02) |
This is actually kind of complex, because it seems like OSM wiki's opinion is that sidewalks should be at the edges of roads, but if you're thinking of the reason for distinction between a plain footway and a sidewalk as a matter of purpose, then things like this should be a sidewalk: As for distance from the road, OSM wiki makes this pretty clear:
EDIT: so given the above I think my question is answered "Yes, those should be sidewalks" |
Personally I would map that as a plain footway because it's not alongside a street. That said.... If somebody else mapped it as sidewalk, I wouldn't bother changing it - that's cool too. Also, the OSM wiki is.. informative but not normative. It captures the opinion of the people who edit the wiki, not necessarily the opinion of the broader OSM community, or the needs of downstream data consumers, or the current tagging practice (and all of these things change constantly). Most of us who work on OSM tools have a kind of love-hate relationship with the wiki. |
Per voice with @lxbarth this isn't super important to nail down at the moment. We'll flag things that are probably sidewalks (because they are really close to roads, stick mostly along the same path as the roadway), and we can discuss some broader questions about tagging obscure cases some other time. Biggest hurdle we're going to be looking at now is how to check if we've "fixed" everything. Because there can be false positives, re-running this analysis after a big data team lift might still show a lot of potentially bad footways. If anybody has suggestions on how best to get feedback in the end, I'll take them. |
agree 💯 |
Yes, this is a common tagging style (and my personal preference, just out of expediency), although recent changes to iD’s presets are gently nudging me towards using |
okay, per voice with @lxbarth again, we'll concentrate on segments missing |
Latest results I've got for DC area: I'm working on running a bigger job, but having some issues with splitting up the job size / getting tile-reduce-watchbot to play nice. I'll still try and get something more put together tonight |
Whitelist
|
@tcql, I'm interested on how your detection magic works in this area This is the park near BLR office. There is sidewalk and a footway inside the park. |
The automatic matching of sidewalks is not detecting some of the sidewalks which have |
@tcql
|
@srividyacb interesting. bridges / tunnels should work - I've got code that checks the |
Came across some more false positives: Images linked to OSM link
Also another issues in one of the place is that in the beginning the sidewalk runs along with the highway and at one place it moves away from the sidewalk and later again joins the highway parallely. |
At a cursory glance, some of Maning's examples look like sidewalks to me, although there's some gray area. In the U.S., the trend is to construct sidewalks set back from the street by increasing distances. Of course, if you see a creek running between the footway and the road, it's less likely to be a sidewalk. |
@tcql would you be open to a potentially huge performance improvement of the sidewalk script? I have a cool idea. Currently my linematch algorithm (which is used in the super-fast difference processor) essentially does line subtraction within a tolerance. Earlier I was thinking of making the algorithm more generic by extending it to support line intersection within a tolerance as well, meaning it would output segments of lines that go close to each other. I didn't have a use case for that at the time, but sidewalk detection seems like the perfect use case. It may be useful for other similar tasks in the future too. |
@mourner oh that's awesome. Yea, something like that could be very awesome |
I didn't see this mentioned before, but footpaths in parks I've tagged with surface=dirt still show up as potential sidewalks. Sometimes real sidewalks are dirt but usually not (USA). |
@bryceco thanks! we're still working on improving this, and surface checking is a great idea |
@tcql, here's a list of secondary tags that should be excluded: |
If tunnel is excluded, then so should bridge (skywalks, pedestrian bridges).
I don't think this tag should be excluded: in many localities, bikes are only allowed on the sidewalk, not the street, and the tagging would reflect that. I think highway=cycleway is sufficient for bike paths. |
these shouldn't be getting picked up anyway; the analysis only looks at
There are definitely bridges with what I would consider a sidewalks (and aren't tagged right now), such as the Arlington Memorial Bridge in DC |
@tcql these get picked up when they are combined with In cases, where people cycle in these lanes, addition of @nickidlugash, hiding sidewalks will lead to discontinuity in footways where the footway is also having /cc @srividyacb @maning |
These should still be tagged as |
No next actions here. Closing. |
We need to identify all
highway=footway
that are sidewalks or crosswalks but *not tagged accordingly with the sub tagsfootway=sidewalk
orfootway=crossing
. This is a non-trivial task as there are many valid footways that are taggedhighway=footway
in OpenStreetMap - for instance a footway through a park.Example
Look at this example (click for map):
This inconsistent tagging leads to issues on maps where we want to hide sidewalks (we always do, because sidewalks are horribly incomplete):
Analysis
Here's a sketch for an analysis:
Use Tile Reduce to look for
highway=footway
without afootway=sidewalk
orfootway=crossing
highway=footway
without afootway=crossing
orfootway=sidewalk
First result should be a map, can be of a small area.
cc @morganherlocker @tcql @planemad @mikelmaron
The text was updated successfully, but these errors were encountered: