[osm-bnsu] Einladung: How-To Treffen bei infoware am 15.09.2011

Roland Olbricht roland.olbricht at gmx.de
Mi Aug 31 08:21:43 CEST 2011


> Soweit ich Roland Olbricht vom ÖPNV-JOSM-Plugin richtig verstanden habe,
> möchte er durchaus etwas sehr interessantes vorstellen, was sich mit dem
> VRS-Teil optimal verknüpfen lässt.......

Ja, hatte ich eigentlich vor. Leider werde ich es aus beruflichen Gründen 
nicht schaffen, am 15.09. zu kommen. Wenn möglich, würde ich den Punkt dann 
auf dem Spetember-Stammtisch ansprechen.

Im Gepräch mit Marcel Hövelmann ist die Idee aufgekommen, einen einfachen 
ÖPNV-Editor zu entwickeln oder doch zumindest eine Anleitung für Taggen ins 
Wiki zu stellen. Da das ÖPNV-Tagging weder im Konsens noch einfach ist, stelle 
ich das vereinfachte Schema erst mal zur Diskussion, stelle es dann aufs Wiki 
und fange erst dann mit der Implementierung an (auch im ÖPNV-JOSM-Plugin, 
siehe in den Plugins unter "public transport").

Zusammenfassung:

=Physisch=

==Haltestellen==
Mindestens eines der Merkmale
a) einen Bus-/Bahnsteig (railway=platform)
b) ein Haltestellenmast (highway=bus_stop)
c) ein Wartehäuschen (highway=bus_stop + shelter=yes, besser 
public_transport=shelter?)
d) eine Halteposition (public_transport=stop_position)

==Schienen==
a) eigener Bahnkörper (railway=rail)
b) Gleise mit Straßenraum (railway=tram)
c) Spezialfälle: Schwebebahn, H-Bahn, Seilbahnen 
(railway=monorail,funiculaire,...)

==Busspur, O-Bus==
a) Busspur (highway=service + access=no + bus=yes, besser highway=busway?)
b) Spurbus, sehr selten (highway=bus_guideway)
c) Spezialsysteme: Phileas, Translohr und Co. (railway=other?)

=Verkehrsangebot=

a) Alles, was auf Schienen fährt (type=route + route=rail)
b) Alles, was der Straße fährt (type=route + route=bus)
Insbesondere keine weitere Differenzierung, da subway vs. light_rail vs. tram 
vs. S-Bahn ständig verwechselt werden.
c) Tag für Betriebszeiten (auf der Relation)
d) Tag für Taktdichten (auf der Relation)
e) Relation, die alle Linien einer Tarifgemeinschaft einschließt.
f) Tag, ob alle Züge überall halten, oder ob es Eilzüge gibt.

Taggen würde ich Linien auf jeden Fall. Es ist relativ wenig Aufwand (5-15 
Minuten pro Linie), es sind recht langlebige Daten (in Wuppertal z.B. 15 Jahre 
fürs Busnetz, in BNSU typiischerweise einige Jahre), und es ermöglicht hübsche 
Projekte wie öpnvkarte.de (und auch mein Overpass PT Diagrams :) ).

Details:

=Physisch=

==Haltestellen==

Jeder Ort, an dem ein öffentliches Verkehrsmittel hält, hat zumindest eines 
der Merkmale:
a) einen Bus-/Bahnsteig (railway=platform)
b) ein Haltestellenmast (highway=bus_stop)
c) ein Wartehäuschen (highway=bus_stop + shelter=yes, besser 
public_transport=shelter?)
d) eine Halteposition (public_transport=stop_position)
Damit das Mappen einfach wird, reicht es, wenn mindestens eines der Merkmale 
a)-d) gemappt wird (selbst wenn mehrere vorhanden sind). Bis auf den Bahnsteig 
können die übrigen Merkmale wie folgt automatisch abgeleitet werden:

a) Dies ist die genauest mögliche Information über eine Haltestelle. Wenn 
diese nicht gemappt ist, wird es auch nicht abgeleitet, da für die Karten und 
Linienbänder nur Nodes benötigt werden.

b)/c) ein Haltestellenmast oder Wartehäuschen. Dies kann zur Abstraktion 
"Warteort" zusammengefasst werden. Wenn es nur einen Bahnsteig gibt, wird die 
Bahnsteigmitte (Schwerpunkt des Polygons bzw. des nicht geschlossenen 
Liniensegments) als Warteort genommen. Wenn es nur eine Halteposition gibt, 
wird die Halteposition von der Straße 10m herunterprojiziert, wobei die 
Fahrtrichtung (ggf. beide Richtungen) aus den Relationen ermittelt wird, die 
die Halteposition als Element enthalten. Nach links in Großbritannien und Co., 
nach rechts überall sonst.

d) Die Halteposition wird aus b)/c) bzw. der aus a) generierten Warteposition 
erzeugt, indem sie zu allen Relationen auf denjenigen Mitgliedsweg der 
Relation abgebildet wird, zu dem sie den geringsten Abstand hat.

Die Namen sollten per name=? an die Haltestellen kommen, ggf. zusätzlich per 
ref=? (wurde in Italien explizit erbeten), nicht über die stop_area. Eine 
virtuelle stop_area kann leicht aus allen Elementen mit gleichem Namen in 
einem Umkreis von max. 500 Meter erzeugt werden.

Bedarf gäbe es für eine Relation, die explizit auf empfohlene 
Umsteigebeziehungen hinweist und dann die automatischen Umsteigebeziehungen 
ersetzt. Es wäre zu fragen, ob das dann auch stop_area sein soll.

Anmerkungen:
d) ist vorwiegend aus diplomatischen Gründen drin. Aus fachlicher Sicht habe 
ich große Schwierigkeiten damit, weil es diverse Haltestellen gibt, an denen 
stop_position nicht definiert wäre: z.B.
- In Schloss Birlinghoven, Sankt Augustin gibt es schlicht eine lange Busspur 
mit Wartehäuschen in der Mitte, die Busfahrer halten je nach Laune in einem 
Intervall von ca. 50m.
- An zahlreichen Haltestellen, z.B. Wuppertal Hbf, Bussteig 5, halten mehrere 
Busse hintereinander, aber dann auch nur einmal, d.h. die stop_position würde 
um etwa 100m fluktuieren. Es gibt dafür sogar ein Verkehrszeichen, die 
"Doppelhaltestelle", auch wenn diese vorwiegend bei Straßenbahnen verbreitet 
ist.
- Der Kölner Hbf käme bei korrekter Anwendung bei 10 Gleisen auf insgesamt 152 
Haltepositionen, da die Zugspitze je nach Zuglänge und Position der 1. Klasse 
an sehr verschiedenen Orten zu stehen kommt. Das ist sehr viel Mapping-Aufwand 
für sehr wenig Information.
- Dass die stop_position an der Zugspitze liegen soll, ist recht schwierig zu 
erklären. Rund um Köln gibt es zahlreiche falsch gemappte Bahnhöfe, bei denen 
die stop_position in der geschätzten Mitte liegt. Nach dem obigen 
Interpolationsverfahren landet die stop_position zwar ebenfalls falsch, aber 
mir ist schlicht kein algorithmisch stabiler Weg eingefallen, die 
stop_position korrekt zu positionieren (es gibt ja nirgendwo eine Information 
über die Zuglänge).
Wenn das Element optional ist, können die Verfechter es gerne verwenden, aber 
es gibt keinen Zwang zum Falschmappen und auch keine Verschlechterung mehr, 
wenn unbedarfte Mapper korrekte bus_stop durch fehlplazierte stop_positions 
ersetzen.

Der Grund gegen die stop_areas ist ebenfalls, dass es zahlreiche Beispiele der 
Realität gibt, die fürs Mappen verbogen werden müssten:
- zusammengehörige Haltestellen haben nicht unbedingt den gleichen Namen: z.B. 
gehören zum Ostbahnhof in Frankfurt die Haltestellen "Ostbf/Honsellstr." und 
"Ostbf/Sonnemannstr.". Der Hauptbahnhof in Wuppertal heißt mal "Wuppertal 
Hbf", mal "Hbf/Döppersberg" mal "Hauptbahnhof". Köln hat "Köln Hbf", "Dom/Hbf" 
und "Breslauer Platz/Hbf". Grenoble (Frankreich) hat für den Bahnhof die Namen 
"Grenoble" (aus Sicht der SNCF/TER), "Gares" aus Sicht der Straßenbahn, wobei 
letztere dann auch zum Busbahnhof "Gare routiere" gehört.
- Die Zusammengehörigkeiten können sich überlappen, wie z.B. im obigen 
Beispiel von Grenoble. Paris macht das mit Metro und RER ganz massiv. Die 
größten Komplexe sind hier rund um St. Lazare und den Gare du Nord.
- Das Umsteigen kann abweichend von der namensgleichen Haltestelle empfohlen 
werden, z.B. von "Bonn Hbf" auf "Thomas-Mann-Straße", obwohl die dortigen 
Buslinien auch am Hbf halten. Ebenso am Hbf Wuppertal, bei dem in einigen 
Richtungen "Stadthalle" die richtige Haltestelle für die Korrespondenzen ist.
Insofern würde ich sehr dringend dafür plädieren, Umsteigen und 
Namensgleichheit zu entkoppeln. Die Namensgleichheit allein begründet 
eigentlich keine Relation. Bei normalen Straßennamen würde das ja auch niemand 
machen.

==Schienen==

Für einen durchschnittlichen Mapper sollte es eigentlich reichen, die Fälle
- eigener Bahnkörper, offene Schienen (railway=rail)
- Schienen in der Straße, die auch Fahrspur sind (railway=tram)
zu unterscheiden. Ich würde dann noch so etwas wie 
railway=monorail,funiculaire,other zulassen, um Spezialsysteme abzudecken. 
Aber Merkmale wie Signalsystem, Gesetzesgrundlage, Stromversorgung, 
Lichtraumprofil und auch Spurbreite (z.B. ist die Spurbreite der Straßenbahn 
von Mailand weniger als 5% breiter als die Normalspur, was nicht zu erkennen 
ist) sollte man nicht einfordern, sondern nur optional setzen.

Welches Angebot auf der Strecke gefahren wird, sollte nicht auf dem Weg, 
sondern nur mit Relationen gemappt werden.

==Busspur, O-Bus==

Die empfohlene Kombination highway=service + access=no + bus=yes ist für 
Mapper schwer zumutbar. Ohne Editor-Hilfe ist das sehr aufwendig und nicht 
sehr informationshaltig. Stattdessen highway=busway?. Aber das halte ich für 
ein Randproblem. Es gibt eine Tagkombination für Spurbusse 
[highway=bus_guideway], die erwähnt werden sollte. Also
a) Busspur (kein Zugang für normale PKW, ggf. Taxis/Fahrräder oder anderes 
nach lokalen Gepflogenheiten)
b) Spurbus (z.B. Adelaide "O-Bahn")
Dann haben wir zwar die Spezialsysteme Phileas, Translohr und Vergleichbare 
noch nicht geklärt, aber das kann auch Busspur, Spurbus bzw. railway=other 
werden.

=Verkehrsangebot=

Die Frage, wie viel vom Verkehrsangebot gemappt werden soll, ist recht 
umstritten. Konsens ist, dass ein kompletter Fahrplan nicht hineingehört. Aber 
es gibt auch extreme Vertreter, die nicht einmal Linien sehen möchten. 
Hintergrund dazu dürfte sein, dass es in deren Heimat England ein stark 
fluktuierendes Liniennetz ohne Tarifgemeinschaften auf ein sehr offenes 
Auskunftssystem trifft und es technisch machbar erscheint, Haltestellen mit 
Linien- und Fahrplandaten aus dem Auskunftssystem zu verknüpfen. In anderen 
Ländern sind dagegen die Busnetze sehr stabil (in Wuppertal seit 15 Jahren!) 
und auf jeden Fall Teil des lokalen geographischen Allgemeinwissens.

Persönlich würde ich nach dem Fahrgastnutzen auswählen. Das sind Fahrtdauern, 
Betriebszeiten, Taktdichten und Tarifgemeinschaften, ggf. Barrierefreiheit der 
Zugänge. Alles, was darüber hinausgeht, z.B. technische Eigenschaften der 
Fahrzeuge, Betreiber, Marketingname sind eigentlich zweitrangig, aber 
vermutlich für so manchen Mapper der naheliegende Anknüpfungspunkt.

Leider sind die Begriffe aber sehr verwischt:
- In Karlsruhe und Saarbrücken fahren einige Linien sowohl als Straßenbahn wie 
auch als Eisenbahnlinien. In Stuttgart, Hannover, Düseldorf und weiteren 
Städten sowohl als Straßenbahn als auch als U-Bahn. Und zwischen Köln und Bonn 
dann sogar als Straßenbahn, Eisenbahn und U-Bahn, je nach Abschnitt.
- Ähnliche Probleme gibt es bei der S-Bahn: Systeme wie in Berlin (mit 10- 
oder 5-Minuten-Takt und Spezialfahrzeugen lassen sich kaum vergleichen mit der 
S-Bahn Rhein-Neckar mit oft nur einem Stundentakt und normalen Eisenbahn-
Triebwagen.
- Zu allem Überfluss wird der Standard-Name dafür, Stadtbahn, auf der 
öpnvkarte irrtümlich als S-Bahn gemappt, was über Mapping for the Renderer 
regelmäßig zu falschen Typen auf den Relationen führt.
- Meistens sind solche Schienenstrecken normale Linien ohne Abzweigungen oder 
ausgelassene Zwischenhalte. Das sollte auch so zu erkennen sein. Im Gegensatz 
dazu stehen z.B. die RER in Paris und die Metropolitan Line in London, bei 
denen nahezu ohne Taktschema jeder Zug an anderen Haltestellen hält oder ohne 
Halt durchfährt.
Wie man das schlüssig taggt, habe ich ehrlich gesagt keine Idee. Aus meiner 
Sicht dürfte es das beste sein, nur type=route,route=rail oder 
type=route,route=bus zu mappen und dann lieber die Service-Qualität zu 
beschreiben, also
a) Tag für Betriebszeiten (auf der Relation)
b) Tag für Taktdichten (auf der Relation)
c) Relation, die alle Linien einer Tarifgemeinschaft einschließt.
d) Tag, ob alle Züge überall halten, oder ob es Eilzüge gibt. Wenn es eine 
einfache Systematik hat, können es ja auch ein paar Relationen, jeweils pro 
Richtung und Haltestellenfolge sein.
Ebenfalls Teil des Angebotskonzept ist in vielen Orten ein Systemanschluss, 
z.B. Umsteigemöglichkeiten in alle Richtungen in Wuppertal Hbf abends oder 
gerichtete Anschlüsse (Beispiel?). Das sollte eigentlich auch getaggt werden, 
wird aber vermutlich gegenüber die Auskunftssystem-Fraktion schwierig 
durchzusetzen sein. Das kann aber ja alles in den optionalen Teil.

Insbesondere ist das jetzige Tagging-Schema sehr unfallträchtig: Das in 
Deutschland beliebte System, eine von der DB AG betriebene S-Bahn zu haben, 
hat eigentlich gar keinen zugeordneten Typ, so dass route=light_rail dafür 
missbraucht wird - mit dem Ergebnis, dass Stadtbahnen (="light rail" in der 
englischen Sprache) regelmäßig von gutmeinenden Mappern kaputtgetaggt werden.

Richtungen würde ich auf jeden Fall getrennt mappen, da sich nur so komplexere 
Linienverläufe abbilden lassen (z.B. Schleifen im Gegensatz zu getrennten 
Fahrtrichtungen oder alternativen Linienwegen für einzelne Fahrten, Ringlinien 
in eine Richtung (Münster, Linie 3+4) im Gegensatz zu Ringlinien in beide 
Richtungen (Düsseldorf, 706)). Richtungsaufspaltungen braucht man sogar für 
Schienenstrecken, siehe Berlin-Ostkreuz oder die Pariser Metrolinie 10.

Viele Grüße,

Roland

> Marcel
> 
> Am 25.08.2011 20:53, schrieb Bernd Weigelt:
> > Am Mittwoch 24 August 2011, 11:13:40 schrieb Knauf, Heinrich:
> >> Bislang sind folgende Themen geplant:
> >> - Neue Plugins für JOSM
> >> - Der Verkehrsnachrichtendienst TMC in OSM
> >> - Diskussion: Status des ÖPNV-Mappings in der Region des VRS
> >
> > In Anbetracht der Diskussion zum Thema VRS würde ich den JOSM-Teil gerne
> > knapp halten, ich denke eine Stunde sollte ausreichend sein.
> > Man kann natürlich auch, begleitend zur Diskussion, entsprechende
> > Hinweise in JOSM geben, die entsprechenden Plugins gibt es ja schon.
> >
> > Bernd
> >
> >
> >
> > _______________________________________________
> > bonn-rhein-sieg mailing list
> > bonn-rhein-sieg at lists.openstreetmap.de
> > http://lists.openstreetmap.de/mailman/listinfo/bonn-rhein-sieg
>