Behalve het feit dat verkeerslichten bijna nooit uit staan dus wat mij betreft is crossing=traffic_signals
+ crossing:markings=zebra
logischer.
Ik vindt het onderscheid tussen gemarkeerd en niet gemarkeerd niet altijd even duidelijk, crossing:markings
is wat mij betreft duidelijker en tegelijk lijkt me de informatie niet zo belangrijk. crossing=uncontrolled
met evt. crossing:markings
=* is wat mij betreft beter.
Ik heb eens een script geschreven om naar alle crossing combinaties voor highway=crossing geschreven
python script
#!/usr/bin/python3
import re
from subprocess import run
from collections import defaultdict
FN_CROSSINGS = '/tmp/ramdisk/crossing.opl'
OSMIUM = '/usr/bin/osmium'
cmd = [OSMIUM, 'tags-filter', netherlands.pbf, 'n/highway=crossing', '-o', FN_CROSSINGS]
run(cmd)
num_crossings = 0
tags2count = defaultdict(int)
dropped2count = defaultdict(int)
with open(FN_CROSSINGS, 'r') as fh_crossings:
for line in fh_crossings:
num_crossings += 1
match = re.search(r' T(\S+)', line)
tags = match.group(1).split(',')
tag2val = {}
for tag,val in [tagval.split('=') for tagval in tags]:
tag2val[tag] = val
drop = []
for tag in tag2val:
if not re.match(r'crossing(:[\w_]+|_ref)?$', tag):
drop.append(tag)
dropped2count[tag] += 1
for tag in drop:
del tag2val[tag]
tags = ','.join([f'{tag}={tag2val[tag]}' for tag in tag2val])
tags2count[tags] += 1
total_pct = 0
for tags, cnt in sorted(tags2count.items(), key=lambda item: item[1], reverse=True):
pct = 100.0 * cnt/num_crossings
total_pct += pct
print(f'{cnt:5d} {pct:5.1f}% {total_pct:5.1f}% {tags}')
for dropped, cnt in sorted(dropped2count.items(), key=lambda item: item[1], reverse=True):
print(f'{cnt:5d} {dropped}')
en dit is wat daar op dit moment uit komt:
10930 15.7% 15.7% crossing=zebra
6825 9.8% 25.5%
3724 5.4% 30.9% crossing=traffic_signals
3613 5.2% 36.1% crossing=uncontrolled,crossing_ref=zebra
2961 4.3% 40.3% crossing=unmarked,crossing:markings=no
2742 3.9% 44.3% crossing=uncontrolled
2654 3.8% 48.1% crossing=uncontrolled,crossing:markings=zebra,crossing_ref=zebra
1846 2.7% 50.7% crossing=unmarked
1760 2.5% 53.3% crossing=marked
1687 2.4% 55.7% crossing=uncontrolled,crossing:markings=zebra
1629 2.3% 58.0% crossing=pedestrian,crossing:markings=zebra
1379 2.0% 60.0% crossing=unmarked,crossing:island=no,crossing:markings=no
1154 1.7% 61.7% crossing=marked,crossing:markings=zebra
1028 1.5% 63.1% crossing=zebra,crossing:markings=zebra
852 1.2% 64.4% crossing_ref=zebra
852 1.2% 65.6% crossing=zebra,crossing:island=yes
851 1.2% 66.8% crossing=marked,crossing:markings=yes
825 1.2% 68.0% crossing=unmarked,crossing:island=no
808 1.2% 69.2% crossing=traffic_signals,crossing:markings=zebra
705 1.0% 70.2% crossing=traffic_signals,crossing:markings=dashes
669 1.0% 71.1% crossing=zebra,crossing:markings=yes
646 0.9% 72.1% crossing=uncontrolled,crossing:island=yes,crossing:markings=zebra,crossing_ref=zebra
633 0.9% 73.0% crossing=traffic_signals,crossing:markings=dots
556 0.8% 73.8% crossing=uncontrolled,crossing:markings=dashes
552 0.8% 74.6% crossing=uncontrolled,crossing:markings=dots
531 0.8% 75.3% crossing=uncontrolled,crossing:island=yes,crossing:markings=dashes
485 0.7% 76.0% crossing:markings=zebra
451 0.6% 76.7% crossing=uncontrolled,crossing:markings=yes
434 0.6% 77.3% crossing:markings=no
423 0.6% 77.9% crossing:island=no,crossing:markings=no,crossing:signals=no
412 0.6% 78.5% crossing=traffic_signals,crossing_ref=zebra
409 0.6% 79.1% crossing=traffic_signals,crossing:island=yes,crossing:markings=dashes
389 0.6% 79.6% crossing=uncontrolled,crossing:island=no,crossing:markings=zebra
384 0.6% 80.2% crossing=uncontrolled,crossing:island=yes,crossing_ref=zebra
357 0.5% 80.7% crossing=uncontrolled,crossing:island=yes,crossing:markings=zebra
343 0.5% 81.2% crossing=zebra,crossing:island=no
342 0.5% 81.7% crossing:markings=yes,crossing:signals=no
319 0.5% 82.2% crossing=uncontrolled,crossing:markings=no
313 0.4% 82.6% crossing=uncontrolled,crossing:island=no,crossing_ref=zebra
304 0.4% 83.0% crossing=marked,crossing:markings=dashes
304 0.4% 83.5% crossing:signals=yes
299 0.4% 83.9% crossing:island=yes
291 0.4% 84.3% crossing=uncontrolled,crossing:island=no,crossing:markings=dashes
291 0.4% 84.7% crossing=uncontrolled,crossing:island=yes
285 0.4% 85.2% crossing=uncontrolled,crossing:island=no,crossing:markings=zebra,crossing_ref=zebra
277 0.4% 85.5% crossing=marked,crossing:island=no,crossing:markings=zebra
277 0.4% 85.9% crossing=zebra,crossing:island=no,crossing:markings=zebra
264 0.4% 86.3% crossing=traffic_signals,crossing:markings=zebra,crossing_ref=zebra
262 0.4% 86.7% crossing:signals=no
255 0.4% 87.1% crossing:markings=no,crossing:signals=no
245 0.4% 87.4% crossing=unmarked,crossing:signals=no
241 0.3% 87.8% crossing=marked,crossing:island=no
241 0.3% 88.1% crossing=unmarked,crossing:island=yes
229 0.3% 88.4% crossing=marked,crossing:island=yes
214 0.3% 88.8% crossing=marked,crossing:island=yes,crossing:markings=zebra
206 0.3% 89.0% crossing=zebra,crossing_ref=zebra
198 0.3% 89.3% crossing=zebra,crossing:island=yes,crossing:markings=zebra
196 0.3% 89.6% crossing=uncontrolled,crossing:island=no
194 0.3% 89.9% crossing=marked,crossing:markings=dots
184 0.3% 90.2% crossing=uncontrolled,crossing:markings=yes,crossing_ref=zebra
Dit is dus een overzicht hoe >90% van alle crossings is gemapt.
De data laat wat mij betreft zien dat:
- crossing=zebra/uncontrolled/traffic_signals het meest populair is
- met 2.3% is er, allemaal laatste week, een vreemde entry van
crossing=pedestrian+crossing:markings=zebra
bij gekomen…
Wat mij betreft wordt crossing_ref=zebra omgezet in crossing=zebra en/of crossing=traffic_signals+crossing_markings=zebra
Zelf vindt ik crossing=unmarked,crossing:markings=no dubbelop en zou ik kiezen voor crossing=uncontrolled,crossing:markings=no