Closed NKAmapper closed 3 years ago
Great feedback, I'll look into it as soon as I can in more detail, quick comments:
indeed I think we could remove some of the fields. The initial design was try to extract all information there is that is actually extractable without giving it much thought, and then work from there when we see what we got. I'm perfectly fine with removing some fields. I haven't needed to consider that in the rural areas I've worked in so far, except for one thing - maxspeed, which I'll file a separate issue for.
It will take some time to investigate and fix all this, but here's a first readthrough.
An overall comment, some things you mention are hard to maintain and/or may be distorted by further manual edits. This is a principle that I guess we need to decide on. I have the idea that in the future when things are placed properly in the map with good coverage you can do updates much more automated, and therefore you can allow for richer amount of tags, also tags that cannot practically be mapped manually on the ground by amateurs, but need institutes like Trafikverket and actual road maintainers. However, I don't have a strong opinion about this, so if we decide to strip away some tags that's okay.
In my first correction run I'll look into the clear cases above and post a comment of what I've done, then I'll look further into the things where we may disagree and further discussion is needed. I have lot on my table now so can be slow to update. Or fast. I'm good at procrastinating and not do what I should really do by working with this instead...
Will walk though tomorrow. I should have mentioned that the observations were made in the Stockholm and Göteborg files (I wanted big samples), if you want to search for any of the tags.
A few comments:
5 I think cases like oneway=yes + lanes=2 + lanes:bus=2 could easily be resolved to lanes=2 + bus=yes + motor_vehicle=no, right? And on a two way street, lanes=2 + lanes: bus :forward=1 could be resolved to lanes=2 + bus:forward=yes + motor_vehicle:forward=no. And similar for the other tags and other number of lanes. I try to do so in my script. Deducting the access tag is important for routing if it can be done. If taxi/bus is a problem, then psv could be used instead (that is 90% of the cases in Norway). I think this type of tagging cannot easily be resolved from the armchair, or it would require considerable time to look up in Mapillary, so it would be valuable information. But nitty-gritty :)
20 It seems that NVDB has just copied the name of the street to the cycleway, but the convention in OSM is to only have a name for the cycleway if it actually has it's own name and sign, which could be the case in for example a park. Most cycleways in OSM do not have a name at all. One (more elaborate) method could be to build a set of street names used by ordinary streets, and then only tag the cycleway with a name if that name is not included in the set. Then most of the cycleways in parks and forests would get their name.
22 The compromise seems ok. 23 Agree. 24 Larger roads would be ok, I think. 25 Perhaps keep it for larger roads?
1: DONE: highway traffic signals should now be correctly tagged 2: voting for no change on maxheight being a node 3: DONE: roundabout street names removed, specific roundabout names kept 4: no action, as far as I know turn lane information does not exist in NVDB 5: DONE: access restrictions now added when all lanes are bus lanes 6: DONE: no redundant lanes 7: DONE: no redundant lanes:forward on oneway 8: no action? Not sure exactly what you found though. I looked at Stockholm with :backward conditionals on oneway=yes, and the NVDB source data states the backwards direction in FörbudTrafik layer in these cases. Probably wrong in the NVDB data, but these only occured in three places in Stockholm so I don't think there is a need for automatic correction. Auto-correction of source data errors is risky so should only be done when really needed. 9: DONE: hazmat/width/maxweight/environmental zone dropped due to other bullets. Regarding bicycles on "gågata", the traffic law default is max 5 km/h (some sources state 7), so it's allowed, but not really something you would want to route through unless you must. It's very common with "please walk with your bike" signs, ie not forbidden ride, but preferably not to. But as the maxspeed is set to 5 km/h I guess one could set bicycle=yes, which I have now unless there's already a vehicle or bicycle tag due to some other reason. 10: DONE: more tags for ferry routes now 11: DONE: separate issue to turn cycleway crossings to nodes (high priority) https://github.com/atorger/nvdb2osm/issues/8 12: DONE: see later comments. 13: DONE(?): the oneway cycleways are clearly marked as such in the source data, typically left and right side of large roads in big cities, so no action on those. The quirk with rare occurrence of oneway on path is due to "Annan cykelbar förbindelse" being translated to highway=path + bicycle=yes, which I think is a good translation, but if there's oneway put on top the script now upgrades it to cycleway. I've seen this NVDB tag used for longer paths not really maintained by the municipality as cycleways but they are useful links for cyclists. In Göteborg dataset it also used on short 10 meter non-cycleway segments just to tie together cycleways. Maybe "Annan cykelbar förbindelse"should be made as cycleway alltogether, but in a way path seems more correct since it's not really a cycleway as the ones marked as cycleway. On the other hand it's not a "path" either, it's just a routing technicality over a piece of pavement joining disconnected cycleways. 14: DONE: indeed too many tags for railway platforms, now reduced to just railway=platform 15: DONE: new tag interpretation, and track upgrade algorithm on top 16: DONE: there was indeed a bug causing tertiary not to appear in cities. 17: DONE: Highway *_link filed as separate enhancement issue https://github.com/atorger/nvdb2osm/issues/20 18: Bridge/tunnel false connections filed as separate (low priority) issue. 19: Bridge/tunnels should be resolved already where possible, need to point at specific bug to solve so I can see source data etc that causes the issue 20: DONE: redundant cycleway names are now removed https://github.com/atorger/nvdb2osm/issues/22 21: No action? Using tunnel=building_passage now, and I think that is more likely to be the correct tag rather than covered=yes: https://wiki.openstreetmap.org/wiki/Tag:tunnel%3Dbuilding_passage (both may not be used at the same time). A brief look at Stockholm I'd say out of 15 passages, ~12-13 are passages through larger buildings, while the remaining two are covers over the footway. One thing DONE though: when it's bridge=yes then it converts to covered=yes 22: DONE: width removed for all but the larger roads 23: DONE: environmental zone parsing removed 24: DONE: hazmat only kept on major roads unless conditional (but I think conditional is only on major roads anyway) 25: DONE: maxweight from bärighetsklass only kept on major roads unless conditional (same here conditional only on major roads)
All other numbers I haven't had time to look at yet. It's probably wise not to comment so much in this thread before I've worked more on the list. I'll edit this message as I've gone through more things.
Very efficient :)
9: Come to think of when you mention 5 km/h - is that maxspeed just a "dummy" value perhaps, and maxspeed could be omitted in those cases? The description in the table is "walking speed".
I'm not sure exactly how the law is written, the 5 km maxspeed is in the NVDB data and you aren't allowed by law to exceed "walking speed", but I do think it's a "dummy" value yes. There is this poposal: https://wiki.openstreetmap.org/wiki/Proposed_features/maxspeed_walk
But I thought that maxspeed=5 even if dummy is a more widely understood tag. I think we should have at least something, removing it completely I don't think is good, as there is a law for it, even though it may be written as "walking pace" rather than a defined speed.
Surfing a bit on the subject it seems like the law states "walking pace", the police enforces a max limit of 7 km/h, but when stated as a speed instead of "walking pace" the number 5 is more commonly used than upsetting-the-police-limit of 7. https://www.dt.se/artikel/7-km-h-pa-gangvag
I'm changing the handling of GCM 9: marking it cycleway if it's paved or oneway, otherwise bicycle path. I think this will be a quite good default. As far as I know there is no tag in OSM to make non-cycleway route connections between disconnected cycleways which GCM 9 is used for inside big cities, these are in OSM just tagged cycleway anyway even if it's just a broad section of general sidewalk pavement. If there is special tagging in OSM for this, we should use that instead... but for now I make them cycleway.
# This type unfortunately has multi-uses. In larger cities it's commonly used to
# connect disconnected cycleways, eg in places you need to pass 10 - 20 meters of
# pavement to get on to the next section. But it's also used for longer sections
# of unpaved tracks that make practical links for cyclists but are not really
# maintained as cycleways.
#
# To differ between these we look at road surface, and if it's marked oneway
# (happens in some cases in cities) we also upgrade it to cycleway
#
About differences in our barrier tables:
For "låst grind eller bom", I use the more unspecified "gate" instead of "lift_gate", as in reality there are different designs, they can be lift gates, swing gates and even sliding gates. The most common design is indeed lift gate, at least here in the north where I've seen many of those, but I don't think we need to specify type. "Låst grind eller bom" is almost the exclusively the type used in forestry and private roads, so as usual it's a "lower quality" data set in terms of exact specification of type, so I vote for keeping "gate" on this.
"Eftergivlig grind", I have changed my script to use your translation "swing_gate". There are only 24 of these up in north all reported by municipalities, almost all on cycleways and all the ones I've seen in person are indeed swing gates. I think they are designed so service vehicles can pass them.
"Betonghinder" I have translated to block and you jersey_barrier, I think both are ok. These are in reality usually a single "betongsugga", often in art shape (in Stockholm they are shaped as lions, here in Luleå they are wolverines(!)). Although single element link-jersey_barriers are indeed also common, I think jersey_barrier in OSM is more suitable when they are used in its linked form, to make barriers between lanes in roads. So I vote for keeping the "block" translation. Making an overpass search it seems like block is used more commonly today for node barriers.
On the others we have same translation.
Barriers: I have been thinking of barrier=gate to be used specifically for "grind" rather than gate being a general barrier tag, perhaps because of the picture in the wiki. Not sure. Anyway, this is why I have been using lift_gate as the default, since that tends to be right in 90% of cases. Not a big thing though.
On cycleways I mostly see swing_gate and a few cycle_barrier. Block is fine.
About differences in our traffic_calming tables:
Traffic calming are generally reported by municipalities, so higher quality than private road data, but lower than Trafikverket data, so I have seen fair bit of errors/inconsistent use.
gupp: I use bump, you hump. In reality it can be both. I chose to use "bump" as "speed bump" is the more generic term (outside the world of OSM wiki) of which "speed hump" is a sub-type. I vote to keep "bump".
"Chicane" are not mapped in a single node in NVDB, it seems to be commonly mapped as two nearby single-sided choker nodes (TYP=1). An algorithm code be made to merge these, but then more research would be needed to see how they are used. As I don't trust the data too much from initial research I don't think it's worthwhile.
Refug: changed to your translation, island, look at some actual uses and seems to be correct.
Avsmalning (typ 3): I translate these to "choker", just like typ 1. The difference between the types in NVDB is that typ 1, avsmalning till ett körfält means that it's so narrow only one car can pass, while this choker makes the road narrower, but still wide enough that two cars can pass (if you are brave). In OSM typ 1 should ideally be choker with an additional priority tag, but as there's no information on which side the choker is we can't resolve priority, so typ 1 and typ 3 ends up being the same.
The others are we have the same. I have not found any practical use of the Läge tag (enkelsidig, dubbelsidig, genomgående), as for chokers we need to know the side if it's enkelsidig. It would be used if we want to merge two choker nodes into one chicane node.
Not very important, but I think the 30 cm bump is very rare. I was not able to see any of those on the aerials. I believe hump is not a subtype of bump, neither in the OSM wiki nor in Wikipedia. There are equally many bump and hump tagged in Sweden, but I suppose bump might be a tagging mistake in many cases.
About differences in GCM:
Some of the types are in NVDB marked as G+C, ie both cycleway and footway, I don't translate these statically but have a resolving algorithm for crossing sections to resolve which should be footway and which should be cycleway, like this: Rules for marking road/street crossings: if cycleway on both ends: make cycleway else if footway on both ends: make footway else if footway in one and and cycleway in the other: make footway else: make path It seems to work well.
I don't use "pedestrian" as pedestrian streets are in the road network. Looking at how the data is used, footway/resolving seems more approriate (typ 24, set statically to footway and 26, resolved depending on neighbors).
Way segments marked "crossing" is nowadays simplified to node crossings in a later step, so there are no crossings segments left.
About the use of "segregated", on TYP=3 it seems incorrect as if there is a footway it's mapped separately. There's TYP=28 for segregated cycleways and footways on the same way, there the use of "segregated" is correct. However, its only used for crossings and make little sense now when we simplify these to nodes, so I've not added it in (added a comment in the code though). If one would go back to not use node crossings we should use segregated.
I'm no english expert, it was this wiki article that made me think that speed hump is a sub-type of speed bump: https://en.wikipedia.org/wiki/Speed_bump What do you think? Should I change it or not? Where I live there are indeed some narrow speed bumps, but I agree, the hump type is certainly more common.
Edit: I changed it to hump, actually reading the whole wikipedia article and not just the first paragraphs made it more clear that bump and hump are separate types, and then I agree hump is a better guess.
On gate vs lift_gate, no big deal for me either. Looked at overpass and both are used extensively, but "gate" is used about 2 - 3 times more than "lift_gate", so I vote to continue with "gate", with the intention that it's a general gate.
(I think one of OSM's design problems is that they rarely specifically define a hierarchy from less specified to more specified tags, it's a rather mixed bag. In any case, the purpose of using "gate" here is that I interpret it as a more generic term, like "block" more generic than "jersey_barrier")
Going through the original list of 25 points I think I've gone through them all now. A couple are registered as open enhancement issues, but I've implemented the high priority ones.
Very good :) I can review when the new files are available.
Closing this issue. Most/all should be in sync with this issue. Open a new issue if there are further things to improve.
I have now been able to see more example files. They are very impressive, and I think I understand the massive effort which has been undertaken. Kudos.
I have a few observations which perhaps could be helpful. Please do not regard this as negative feedback - they are only details. And I know from my own work how valuable it can be to have another pair of eyes on the results.
Here we go: