Proposed edit of some `barrier=kerb kerb=raised` nodes

If you’ve been reading my posts about kerb tagging (1, 2), then you already know that StreetComplete places kerb=raised by itself on a node where a footway meets a road to mean “you might expect a crossing and lowered kerb here but there isn’t one”. Whether there are better ways of tagging this is currently being discussed here. The problem is that iD users have added barrier=kerb to such nodes because the validator in iD told them to. This leads to issues, because it’s interpreted as a raised kerb across the road. For example it stops OSRM from routing cars along the road.

The good news is that new nodes like this will no longer be created because of a recent change in iD, disabling the suggestion to add barrier=kerb to such nodes. I’m grateful to everyone involved that this has been fixed so soon after I spotted it.

The bad news is that there are now about 1,500 nodes tagged barrier=kerb kerb=raised that really shouldn’t have the barrier=kerb tag.

How would people feel about editing them all in one go, following the automated edit code of conduct?

I propose doing something like this

  • use Overpass (query) to get all barrier=kerb kerb=raised nodes on roads (i.e. highway ~ trunk|trunk_link|primary|primary_link|secondary|secondary_link|tertiary|tertiary_link|unclassified|residential), there are 1495 of them
  • check a few dozen manually and only proceed if they are clear tagging mistakes
  • for each suspicious node, retrieve the history (example API call)
  • find the changeset that added barrier=kerb; retrieve the changeset metadata (example API call) and see if it was created_by iD with resolved:outdated_tags:incomplete_tags >= 1
  • if yes, go back further in the changeset history to find the changeset that added kerb=raised; retrieve the changeset metadata (example API call) to see if it was created_by StreetComplete with comment “Add whether there is a crossing” or “Specify whether there are crossings at intersections of paths and roads”
  • generate a couple of OSC files, e.g. one for each grid square (which resolution is appropriate? in other words, how many changesets should there be vs. how big should they be?)
  • upload here for scrutiny and check manually, then after people have had a chance to check it, commit using JOSM, with a changeset comment linking to the discussion, etc.

Importantly, this excludes all situations where barrier=kerb was added before or at the same time as kerb=raised, or where they used a different editor than iD, or where kerb=raised wasn’t added by StreetComplete. We don’t want to retag anything where a human set the barrier=kerb tag on purpose.

It would require a few read-only API calls (no more than 4500) that could be spread out over a few hours to make sure that service levels are not affected.

Why not create a Maproulette challenge?

I don’t have any experience with Maproulette, but from what I can see, I think it works best when some human intervention is required. Using the steps above we should be able rule out that someone added the barrier=kerb on purpose to mean that there is a kerb across the road, so checking each one manually would not be a good use of anyone’s time.

Any thoughts on this?

I don’t have any experience with Maproulette

Me neither but I think it is possible to feed it an overpass query and let it create tasks from that.

1 Like

I did have a quick look at the docs. I think creating the task won’t be too difficult but is it worthwhile if we’re reasonably sure that in all cases the result will be to remove barrier=kerb?

note that Automated Edits code of conduct - OpenStreetMap Wiki still requires asking on talk mailing list

though by making this thread you still are above average in following rules listed there :slight_smile:

for edit itself, it looks fairly safe with history checking


Just fix the errors. :pray:

1 Like

Also the 530 barrier=kerb / kerb=no errors (introduced mostly by SC) should be fixed.

I am slowly reviewing them - and noticeable part of them is more subtle, not introduced by SC (or by wrong answers) and simple tag replacement does not help there.

Though maybe remaining ones are not like this.

Help in reviewing them would be welcome.

1 Like

I admit I was hoping that this had been superseded by the community forum! Is there someone who could please cross-post this to the mailing list, so I don’t surprise anyone who cares about kerbs?

talk, not tagging

1 Like

OOps, my mistake. Now posted in correct place: [OSM-talk] Proposed automated edit of some barrier=kerb kerb=raised nodes (forum crosspost)

@osmuser63783 please do check if any discussion is happening there

Thanks a lot! Will do

Here are 100 example nodes that I’m proposing to remove barrier=kerb from. (Discourse won’t let me add the full list but I can email them if someone is interested.)

I used the Overpass query to identify candidates (barrier=kerb kerb=raised on roads). There were 1410. Then I checked the changeset histories and found that 1059 of them conform to the pattern I described: where an edit by StreetComplete with the quest type “AddCrossing” set kerb=raised and a later edit using iD added the “missing” tag barrier=kerb.

My plan is to group them geographically before generating changesets.

Please let me know if you have any comments.

100 example nodes

Node: 571144 | OpenStreetMap
Node: 2405171 | OpenStreetMap
Node: 5307316 | OpenStreetMap
Node: 7080181 | OpenStreetMap
Node: 10799642 | OpenStreetMap
Node: 11584239 | OpenStreetMap
Node: 12135788 | OpenStreetMap
Node: 20958621 | OpenStreetMap
Node: 21434263 | OpenStreetMap
Node: 21520450 | OpenStreetMap
Node: 21993066 | OpenStreetMap
Node: 25430022 | OpenStreetMap
Node: 25533506 | OpenStreetMap
Node: 25627093 | OpenStreetMap
Node: 25917010 | OpenStreetMap
Node: 26127772 | OpenStreetMap
Node: 26782385 | OpenStreetMap
Node: 26807218 | OpenStreetMap
Node: 26821160 | OpenStreetMap
Node: 27306275 | OpenStreetMap
Node: 27783436 | OpenStreetMap
Node: 31031623 | OpenStreetMap
Node: 31054741 | OpenStreetMap
Node: 31425456 | OpenStreetMap
Node: 31624842 | OpenStreetMap
Node: 31800226 | OpenStreetMap
Node: 32908736 | OpenStreetMap
Node: 33531248 | OpenStreetMap
Node: 33694223 | OpenStreetMap
Node: 35664995 | OpenStreetMap
Node: 36158707 | OpenStreetMap
Node: 36663663 | OpenStreetMap
Node: 36664676 | OpenStreetMap
Node: 44093467 | OpenStreetMap
Node: 44844495 | OpenStreetMap
Node: 45381476 | OpenStreetMap
Node: 46325245 | OpenStreetMap
Node: 46354085 | OpenStreetMap
Node: 46379898 | OpenStreetMap
Node: 56304486 | OpenStreetMap
Node: 56370163 | OpenStreetMap
Node: 56372825 | OpenStreetMap
Node: 56394099 | OpenStreetMap
Node: 57745463 | OpenStreetMap
Node: 59779158 | OpenStreetMap
Node: 59968158 | OpenStreetMap
Node: 65610795 | OpenStreetMap
Node: 67978069 | OpenStreetMap
Node: 78090346 | OpenStreetMap


Did you check all those objects manually?! Or if (hopefully) not, could you share an overpass query or tool that you used to check for that? (because I’d find that quite useful in other cases too!)

Leg los…
Alleine in PRAG zB sind mehr als 100 Fehler, Routing mit OSRM ist dort quasi nicht mehr sinnvoll möglich.

There was one person on the talk mailing list who had some questions / concerns, I’m still waiting to hear back from them to see if I have addressed the concerns.

In the meantime I have created a Wiki page to document the proposed edit and example changeset.

This is a global edit affecting nodes on all continents. Using S2 cells at level 10 - ca. 9km x 9km - to split it up gives me 419 changesets of between 1 and 45 nodes. This is a compromise somewhere in the middle between one massive global changeset, and 1,059 changesets for one node each. But let me know if you think I should make them smaller or bigger.

1 Like

No :sweat_smile: that would have taken a long time. I wrote a Python script. When I’m done, I can email you the code if you like. It’s not really a tool, it’s just a short script written specifically to do these checks, but of course it could be adapted for other checks if you know some Python.

thanks @osmuser63783 that would be appreciated! E-mail is fine, or you can put it somewhere online like github or whatever where others could benefit from it. (or I could do it on my github, if you agree to release it under some open license like MIT or GPLv3 or WTFPL or whatever)

I had a quick look at the ones you removed in London, which all look fine. Thanks for doing this.

1 Like

Thanks. @Everyone: My script ran last night. For the majority of barrier=kerb kerb=raised nodes on roads, this removed the barrier=kerb tag - but the script only touched those that I am sure were created by the “process” described above.

This query finds the remaining barrier=kerb kerb=raised nodes on roads, which need manual review. Many of them are actually at the position where a road ends and a footway begins, and are therefore perfectly fine (and rather useful to know about!).

This query limits the search to only those that are in the middle of a road (that is, not the first or last node of the highway way).

Is there appetite for a Maproulette challenge?

One of the escapees is barrier=kerb + kerb=raised + kerb:height= 5 cm

We do that here, nearby me new cycleway, both sides of the cycle crossing 5 cm (sharp) kerb (not mapped), just to pester cyclists, or incompetence of the road constructors.