Zebra crossing in Nederland - NDW

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