[Talk-de] Status Fahrradwege-Tags

Christian Müller cmue81 at gmx.de
Mi Mär 2 01:13:52 UTC 2011


Hallo,


kurz zu mir selbst.  Ich lese ab und an die Diskussionen auf dieser
Liste mit und versuche gute Vorschläge bei meiner Arbeit an OSM
umzusetzen.  Ich tagge seit 2008 im Südraum Leipzig und lege mehr Wert
auf Qualität (so wie die Masse, schätze ich), als schnell die DB zu
stopfen.  Über das Tagging zu Radrouten und -wegen wurde auf dieser
Liste schon viel diskutiert.  Ich will daher kurz mein Anliegen einordnen.

Es geht mir um das Taggen von Fahrradwegen (nicht Radroutenrelationen
o.ä.).  Ich habe mir oft gedacht, dass das bisherige tagging der Radwege
nicht nur schlecht, sondern für vielerlei Zwecke auch völlig
unzureichend ist - wobei das nicht heißt, dass ich es aus Mangel an
besseren Ideen nicht selbst verwendet habe.  Also es geht um Radwege und
ihre Nutzbarkeit für unterschiedliche Arten von Radlern.




Momentan gibt es genau zwei etablierte Tags, die einen mit _Radwegen_
arbeitenden Radfahrer interessieren und weniger etablierte:

* surface= unpaved| paved| etc..
* bicycle= yes| no| designated| official| etc..

- mtb: (mountainbike namespace, healthy and alive)
- smoothness (hat sich nie so richtig durchgesetzt, weil Einschätzung
größtenteils subjektiv)

Lasst mich weiterhin festhalten, wofür genau die tags momentan verwendet
werden:

  bicycle=*
  1) im Wiki:  klar als Zugangsbeschränkung (beschilderter Radweg,
offizielle Nutzungsart, usw.)
  2) in-the-wild:  jeder Weg, der als "für Radfahrer geeignet" erscheint
bekommt bicycle=yes verpasst

  surface=*
  ) beschreibt objektiv die Oberflächenbeschaffenheit
  ) nicht aber den Zustand!!

  smoothness=*
  ) hilft mir nicht zu entscheiden, ob ich z.B. mit trekking bike dort
fahren kann, weil
    a) die subjektive Ansicht des Taggenden im Wert steckt und
    b) ich die Entscheidungsbasis des Taggenden nicht kenne (ein Inliner
wird strenger
        sein, als z.B. ein Radfahrer, etc.)




Was will ich also ändern, was sind meine Ideen?

  Ziele:
  a) sowohl Mensch als auch Maschine (routing services)
     sollen in der Lage sein, eine für Radfahrer geeignete
     Route aus den Daten abzuleiten
  b) der Taggende soll objektiv entscheiden und nach
     Möglichkeit mit wenigen Werten arbeiten können, um
     a) zu erreichen

  (praktischer) Ansatz:  (Idee während des Radelns :) )
  1) es gibt im wesentlichen 3 Kategorien von Radfahrern,
       welche i.d.R. ihre Präferenzen nach den unterschiedlichen
       Wegoberflächen/-beschaffenheiten richten (wichtig!)
  2) "Monotonie":  MTB < Trekking < RaceBike
      ein MTB kann auch auf ausgewiesenen trekking und
      race Strecken fahren, umgekehrt geht dies i.d.R. nicht,
      bzw. ist nicht erwünscht (ich kenne niemanden, der
      sein Rennrad auf unpassenden trails schrottet)

  konkreter Tagging-Vorschlag:
  *) bicycle:mtb=(alle mgl. Zugangsbeschränkungen)
  *) bicycle:trek=(alle mgl. Zugangsbeschränkungen)
  *) bicycle:race=(alle mgl. Zugangsbeschränkungen)
  *) bicycle=(alle mgl. Zugangsbeschränkungen)

  Implikationen:
  _) bicycle:race impliziert, sofern für die anderen Tags nichts angegeben,
     bicycle:trek
     bicycle:mtb
     bicycle
    mit demselben Wert
  _) bicycle:trek impliziert, sofern für die anderen Tags nichts angegeben,
     bicycle:mtb
     bicycle
    mit demselben Wert
  _) bicycle:mtb impliziert keine weiteren bicycle Tags

  _) bicycle impliziert, sofern für die anderen Tags nichts angegeben,
     bicycle:trek
     bicycle:mtb
    mit demselben Wert




Wobei letzteres die Rückwärtskompatibilität zu bestehendem Tagging
gewährleistet.
Beispiele

*) ich habe einen sandigen Fußweg, der auch von MTBlern benutzt wird:
  bicycle=no
  bicycle:mtb=yes
  foot=yes
  highway=path
  surface=sand

*) ich habe einen fein geschotterten Waldweg:
  bicycle=yes
  bicycle:trek=yes   (:mtb wird impliziert, :trek eigentlich auch, ist
aber für Menschen da, um zu sehen, dass man sich hier nach dem
erweiterten Schema Gedanken gemacht hat - man könnte auch nur :trek
verwenden, dass bricht dann aber die Kompatibilität)
  foot=yes
  highway=track
  surface=fine_gravel

*) eine asphaltierte Straße, die für Rennräder geeignet ist
  bicycle=yes
  bicycle:race=yes   (:mtb, :trek werden impliziert, können aber
angegeben werden, z.B. auch wenn es für unterschiedliche Radtypen
unterschiedliche Zugangsbeschränkungen gibt)
  foot=yes
  highway=secondary
  surface=asphalt

*) eine (alte) asphaltierte Straße, die nicht für Rennräder geeignet ist
  bicycle=yes
  bicycle:race=no
  foot=yes
  highway=secondary
  surface=asphalt

*) eine (alte) asphaltierte Straße, die so kaputt ist, dass man sie
selbst mit Trekking-Rädern meiden sollte/nicht mehr befahren kann
  bicycle=yes
  bicycle:trek=no
  bicycle:race=no
  foot=yes
  highway=unclassified
  surface=asphalt

*) eine (alte) asphaltierte Straße (Alternative, semantisch äquivalent)
  bicycle=no
  bicycle:mtb=yes
  foot=yes
  highway=secondary
  surface=asphalt




Was sind die Vorteile einer Adaption dieses Schemas, dieser Erweiterung?

  - Zugangsaussagen pro Fahrradtyp
  - Wiederverwendung etablierter Werte (eW) für die neuen Tags
(bicycle:[mtb|trek|race=eW)
  - leichtere, objektivere Ableitung der Werte für den Mapper (vgl.
smoothness)
  - präziseres Routing möglich
  - Karten ließen sich für den jew. Fahrradtyp erstellen
  - ideellerweise taggen die Radfahrer Wege, die den jew. Radtyp auch nutzen
    (Rennradler nutzen also bicycle:race, Trekker bicycle:trek, etc.)
  - eine Aussage zum Oberflächen_zustand_ eines Weges lässt sich dann grazil
    aus der Verbindung von bicycle*=* und surface=* ableiten  (das wäre
zumindest
    objektiver als eine subjektive Schlaglochbewertung)

  - und final, was ich persönlich ideal fände, aber noch nicht gecoded
habe (tm):
  - Mgl. Routing-Service, der für Radfahrer eine Strecke berechnet (gibt
es schon) und dann
     auf zwei Verteilungsbalken die statistische Verteilung von

              bicycle:race=[all yes's] | bicycle:trek=[all yes's] |
bicycle:mtb=[all yes's]
     und   surface_value1 | surface_value2 | ... | surface_valueN

     angibt.  Die beiden Verteilungsbalken sollen dann auf den Werten
angeklickt werden können,
     um z.B. den Anteil des Wertetyps an der Gesamtstrecke zu erhöhen. 
Der Routing-Algorithmus
     rechnet also immer wiederholt, mit dem Zwang (constraint), den
zuletzt gewählten Wert an-
     teilig zu vergrößern.  In der Praxis kann die Strecke dadurch
länger werden, aber das ist dem
     Radfahrer unter Umständen lieber, als (für ihn) schlechte Strecken
zu fahren.
   - Beispiel

        Routingalgorithmus findet mit der Vorgabe Trekking-Bike eine Route,
        die Verteilungen sehen so aus:

                    b:race=72% | b:trek=24% | b:mtb=4%

                    asphalt=69% | concrete=3% | paving_stones=8% |
ground=8% | gravel=8% | sand=3% | grass=1%

        Klickt der Nutzer auf eine Prozentzahl, versucht der Algorithmus
den Streckenanteil
        dieses Typs zu erhöhen oder zu verringern (je nach Wunsch).




Danke schonmal für eure Lesemühen, ich bin gespannt, was ihr davon
haltet? ..
Ich bitte um Verzeihung, falls sich diese Gedanken mit einer bereits im
Gange befindlichen Diskussion überschneiden.


Viele Grüße und
gute Nacht,

Christian
(aka cmuelle8, cm8, ..)


--
Falls Sie irgendwann durch oder mit diesem "geistigen Eigentum" in die
Gewinnzone schlittern sollten, bedenken Sie bitte, mich oder andere
Kinder, insofern diese Ökonomie sie uns gönnt, vor dem Verhungern zu
bewahren.  Vielen Dank.




Mehr Informationen über die Mailingliste Talk-de