Warum einfach, wenn's auch kompliziet geht? – Proposal Traffic Signals

Nicht nur das. Besonders in Vorstädten und auf dem Land gibt es zahlreiche verkehrsabhängige Stuerungen, ohne dass die Anlagen an einen Verkehrsrechner angeschlossen wären.

In Großstädten gibt es einen erheblichen Anteil an Anlagen mit Vorrangschaltungen für Bus und Tram. Da kann die Schaltung alle 2 Minuten anders laufen.
Außerdem gibt es dann noch einige Anlagen, die gelegentlich für ein paar Minuten nur in eine Richtung Grün zeigen, nämlich entlang der Feuerwehr-Ausrückroute.

Und wenn irgendwo eine größere Veranstaltung ist, werden Sonderprogramme geschaltet. Ich kenne Anlagen, da sind zwischen 10 und 20 verschiedene Programme hinterlegt.

→ Es ist möglicherweise nicht sehr sinnvoll, die Grünzeiten zu erfassen…

+1

Wir haben bei uns eine Ampel, bzw Ampelanlage, die wirklich klasse geschaltet ist. Kommt wer von Norden und will nach Osten, gibt es nach ca 30 Sekunden grün und die Phase dauert solange, bis alle Fahrzeuge durch sind. Danach kriegt die B260 wieder durchgehend freie Fahrt. Fast so gut wie ein Kreisverkehr.

Viel Spass beim Taggen: https://www.openstreetmap.org/node/1405348397

Gruss
walter

Ojee, ich hoffe Du wohnst hier nicht im Haus Nummer 2… :wink:

https://www.openstreetmap.org/#map=19/50.10828/8.09507

Nee, sieht schlimmer aus als es werden soll: von Süden kommend wird das ein Tunnel, der dann nördlich von Haus Nr 8 eine Brücke werden soll. Hab die geplante Umgehungsstraße nicht erfasst, aber werde das mal eben anpassen. aber die war auch schon richtig (Tunnel/Bridge) drin. Nur dem Renderer scheint das wohl egal zu sein (?).

Gruss
walter

edit: war doch schon ok.

Hallo,

Das ist ein Tag, der mich schon lange stört. Ich wollte dazu längst mal ein Proposal machen, um es loszuwerden bevor es sich zu sehr verbreitet (die - recht einfache - Idee dazu steht schon, ich schiebe es nur immer wieder vor mir her, daraus ein Proposal zu machen bzw. eine Diskussion anzustoßen).

Der Grund für meine Ablehnung ist folgender: Wir weisen hier einem node eine Richtung zu, das ist höchst unlogisch und hat auch Konsequenzen.

traffic_signals:direction=forward/backward funktioniert nur so lange, wie die Wegsegmente neben dem node in dieselbe Richtung weisen. An der Position der Ampel kann jedoch schnell mal ein Weg gesplittet und/oder umgedreht werden. Als Folge habe ich z.B. einen Ampel-Knoten zwischen zwei Wegen, die beide von der Ampel wegzeigen
→ traffic_signals:direction=forward/backward ist nicht mehr auswertbar!

Seoman

Danke, das brennt mir auch auf den Nägeln. Was ist deine einfache Lösung?

Hallo,

Wie willst du etwas loswerden, wofür die keine Alternative hast? Das wird mir zur Zeit in der associatedStreet-Relation von Mappern/Diskussionsteilnehmern aus dem Ausland vorgeworfen.

Das Problem gibt es auch bei Eisenbahnsignalen, die genau wie Ampeln fast immer (es gibt wenige Ausnahmen) nur für eine Fahrtrichtung gelten. Dort sind das Tags railway:signal:direction=forward/backward/both in Gebrauch. Es gibt aber keine andere vernünftiger Lösung, Geltungsrichtungen zu erfassen.

Ansätze die Geltungsrichtung als Winkel in Grad anzugeben, sind Overkill und eine genauso große Quelle für falsche Daten.

(1) Der Mapper müsste dann nämlich den Winkel ermitteln. Mit den heutigen Editoren geht das nicht gut. Selbst wenn es einen Tags die Möglichkeit gäbe, in JOSM-Objektvorlagen einen Winkelmesser einzubauen, wäre das nicht der richtige Weg. Es gibt auch noch andere Editoren als JOSM. Sei es iD oder spezialisierte Editoren. Der erhöht für die Nutzer und die Editoren-Entwickler nur die Hürde beizutragen bzw. einen Editor zu programmieren. Bei OSM wollen wir jedoch die Schwelle niedrig halten (KISS), sonst würden wir heute schon die Signal- oder Ampelrichtung als Relation erfassen, die zwei Nodes referenziert – einen from-Node und einen signal-Node.

(2) Winkel sind als Einheit noch uneindeutiger als forward/backward/both. Ich wundere mich bis heute, wie gut das mit Längeneinheiten klappt und ob nicht doch in England ein Großteil der Längen- und Gewichtsangaben in OSM vom Mapper als britische Einheit eingegeben wurde, aber mangels Angabe der Einheit von allen Nutzern als metrisch interpretiert wird. [1] Es gibt zwei verschiedene Drehrichtungen, die der Mathematiker, Naturwissenschaftler und übrigen Ingenieure und die geodätische. Die Geodäten drehen im Uhrzeigersinn, der Rest gegen den Uhrzeigersinn. Dazu kommt die Frage, welche Achse den Winkel 0° hat. Ist es die Rechtsachse (mathematisch x-Achse, geodätisch y-Achse) oder die Hochachse (mathematisch y-Achse, geodätisch die x-Achse)? Und wenn das noch nicht genug wäre, gibt es noch einen dritten Fallstrick, die Einheit. Es gibt Altgrad (°), Neugrad (gon) und das Bogenmaß. Auswerter dürfen sich dann, als wenn das nicht genug wäre, auch noch mit verschiedenen Notationen herumärgern – Winkel in Grad, Minuten und Sekunden vs. dezimal.

(3) Wenn ich als Datennutzer von einer Routing-API den zubefahrenden Weg bekomme, möchte ich mich nicht noch mit der Geometrie herumärgern, wenn ich die Route nicht auf einer Karte zeichnen möchte. Nehmen wir das Beispiel eines Eisenbahnrouters. Er hat als Ausgabe einen tabellarischen Buchfahrplan. Das ist ein Tabelle mit Spalten für Höchstgeschwindigkeit, Signale und Kilometrierung. Wenn die Routing-API mir die befahrenen Wege und die Nodes mit ihren Tags zurückgibt, brauche ich nur auf die Reihenfolge der Nodes und railway:signal:direction=* achten, um festzustellen, ob das Signal für meinen Nutzer relevant ist oder nicht. Das spart Entwicklungsaufwand und Rechenzeit.

Ich bezweifle, dass die Bahn (und vermutlich ist es im Straßenwesen ähnlich [2]) die Signale mit Richtungswinkel in ihren Datenbanken speichert. Bahnstrecken und Straßen haben eine Kilometrierung (im Straßenbau kenne ich auch den Begriff der Stationierung). Von eine Ursprung aus wird aufsteigend die Entfernung gezählt. Ich brauche also nur speichern, ob das Schild/Signal in Kilometrierungsrichtung oder entgegen oder in beide gilt. KISS!

Klar, die von dir angesprochenen Probleme existieren. Die Lösung lautet bessere Editoren und bessere QA-Tools. JOSM (iD auch?) dreht automatisch alle Vorkommen von forward und backward, left und right in Keys (z.B. maxspeed:forward → maxspeed:backward), wenn der Way gedreht wird. Es ist egal, welches Tag das ist. Es fehlt nur noch die Unterstützung für ein Drehen der Values. Da sich die JOSM-Entwickler demgegenüber aber ablehnend zeigen, werde ich wohl selbst noch den Patch schreiben müssen. Ebenso müssen die Editoren das Splitten von Ways entweder verweigern oder beim Drehen oder Neuzeichnen von Ways alle Ways herunterladen, die den Node referenzieren. Das ist machbar.

Für dumme Editoren (Fingerzeig in den Javascript-Keller) braucht man wohl QA-Tools, die die Diffs nach entsprechenden gefährlichen Edits durchkämmen und Warnungen ausgeben.

Bitte bedenke, dass railway:signal:direction=* schon 19 303 Mal verwendet wird. traffic_signals:direction=* übrigens nur 9 782 Mal.

Viele Grüße

Michael

[1] Britische Einheiten sind ein großer Schxxx. Man muss sie beim Datenbankimport gesondert behandeln, weil man sie nicht einfach im Stylesheet mit <, > usw. abfragen kann.
[2] Falls überhaupt Datenbanken verwendet werden. Vieles gibt es bestimmt bloß als AutoCAD-DWG-Datei (also als Vektorgrafikzeichnung mit Layern).

Es geht in etwa in diese Richtung …

OK, da ich es ja nun selbst beschworen habe, muss ich mich wohl doch endlich mal aufraffen, das zusammenzuschreiben. Gibt es eigentlich so etwas wie “ungewollte Selbst-Motivation” …? :smiley:

Ich will hier nichts Unvollständiges posten, gebt mir daher bitte einen oder zwei Tage - ich weiß nicht, ob ich vor Donnerstag abend dazu kommen werde.

Seoman

Ich glaube, sowas nennt man Ehrgeiz :wink:

Gruss
walter

Also ich habe den Tag intensiv genutzt. Sicher kann das schnell von einem unwissenden umgedreht werden, aber wie bei vielen Tags nutzen (auch bei Abbiegebeschränkungen), geht schnell etwas schief, wenn man an Kreuzungen was ändert. Ich sehe hier genauso viel Pflegeaufwand, wie bei allen anderen Tags bei Kreuzungen und Einmündungen die Richtungsabhängig sind (u.a. turn:lanes, change:lanes, Abbiegebeschränkungen etc.).

Es könnte auch sein, dass sich die Straße am Ampelknoten verzweigt. Dann wäre “traffic_signals:direction” ebenfalls undefiniert.

Man könnte den durch Ampeln geregelten Bereich als Fläche erfassen (entlang der Haltelinien mit Fortsetzung auf der Gegenfahrbahn).
Eine Ampel würde nur für die ins innere führende Fahrtrichtung gelten.
Eine solche Fläche wäre mit jedem Editor zu erstellen und durch den Mapper einfach zu prüfen (im Gegensatz zu Relations- oder “traffic_signals:direction”-basierten Daten).
Man würde damit nebenbei die Zusammengehörigkeit der Ampeln erfassen und Aussagen zur Zahl der Ampelkreuzungen/-einmündungen in einer Gemeinde ermöglichen.

Das verstehe ich nicht. Ich setze traffic_signals als Node auf den highway (wo die Ampel bzw. die Haltelinie ist)- NICHT auf den Node der Kreuzung! Und dann habe ich bezgl. forward/backward keine Zweideutigkeiten mehr.

Der highway der

Der highway der zur Kreuzung hinführt ist durch change:lanes/turn:lanes unter Umständen stark fragmentiert. Jetzt soll man auf keinen Fall ein highway=traffic_signals auf einen Node zwischen zwei Ways setzen?

… und manche lanes haben noch eigene “Ampeln”.

Nach dem Überfliegen des Proposals komme ich zu dem Schluss, dass die relationale Erfassung vom Ampeln auf Spurebene mit deren Ampelphasen vollkommen überzogen und realitätsfremd ist. Ich kenne keine Ampel - und dazu gehören auch temporäre Baustellenampeln - die nicht mit irgendwelchen Sensoren ausgestattet ist, welche das Verkehrsaufkommen erfassen und die Ampalsteuerung davon abhängig variabel steuern. Allein vor diesem Hintergrund ist das Schema Blödsinn überflüssig.
Wenn ich einen Router programmieren würde und könnte, der zusätzliche Kosten für eine Ampel als Malus in die Berechnung einbezieht, wäre das ein wie auch immer pauschalierter Wert für die ganze Kreuzung vielleicht noch unter Berücksichtigung der verkehrlichen Bedeutung. Somit reicht ein als Ampel getaggter node am Kreuzungspunkt, wenn alle ankommenden ways betroffen sind und sonst ein entsprechender node auf dem oder den ankommenden ways mit Ampel.

Edit:
Viel Spaß damit bei Anwendung des Proposals
auch bei diesem Beispiel

Sollten Daten nicht einmal die Wirklichkeit wiedergeben?
Jetzt geht OSM dahin eine Straßen - Routing - Anwendung zu werden - alles wird “abstrahiert”.

Das finde ich ja schon lustig. Nach ein paar Tagen Pause schaue ich hier mal wieder rein und finde schon gleich wieder ein sehr schönes Beispiel warum man Spuren im Kreuzungsbereich trennen sollte. Damit wäre das Problem mit der Richtung erledigt. Die Ampel kommt genau da hin wo sie steht. Nämlich an der Haltelinie und die Richtung ist auch klar weil es halt eine definierte Spur für die Richtung gibt. Es könnte so einfach sein und mir fehlen noch immer echte Argumente die gegen die Spurtrennung sprechen.
Auf diese Weise kann man sich eine Menge backward/forward Tags sparen und somit gibt es auch damit keine Probleme.

Die Wirklichkeit wäre eine Ampel in 3D, die an einem Mast oder einer Traverse über oder neben der Straße befestigt ist. :roll_eyes: Jede Art von Kartographie ist eine Abstraktion und Generalisierung.
Und:
OSM heißt immer noch OpenStreetMap. Daraus leite ich ab, dass der ursprüngliche Zweck der Datenerfassung darin lag und für mich auch noch liegt, diese zur Orientierung bei der Straßennutzung zu verwenden. Das ist nun einmal routing.
Wenn es jemandem darum geht, die Realität möglichst original nachzubilden, sollte er sich dem Modellbau widmen.

An verschiedenen Stellen wurde versucht, auch dir die Konsequenzen und Probleme, welche die getrennte Erfassung von Spuren mit sich bringt, zu erläutern. Ich werde das nicht wiederholen.
Übrigens habe ich noch keine Ampel gesehen, die mitten auf der Spur steht…
Wie wäre es, wenn du alle deine Argumente, die für die Spurtrennung sprechen, mal zusammenfasst und dabei auch berücksichtigst, welche Nachteile dies mit sich bringt und welche neuen Probleme dadurch entstehen. Geeignet dazu und vorgesehen wäre ein Proposal, um deine Ideen und Lösungsansätze konstruktiv der Community nahe zu bringen, damit diese darüber befinden und entscheiden kann. Für das Etablierte und von dir kritisierte lanes-Schema gibt es das.

Zwischen zwei ways ist kein Problem, sofern es dieser Node nicht der Kreuzungspunkt von zwei Straßen (Achtung: Straße ist nicht identisch mit way!) ist.
Mir ist bisher noch keine Ampel untergekommen, die nur in der Mitte der Straße ist. Eine reine Linksabbiegerampel schon, an eine reine Rechtsabbiegerampel kann man sicher auch denken. Es ist zwar klar, dass die Realität mehr Möglichkeiten verbirgt als wir in der Abstraktion denken, trotzdem kommt man mit traffic_signals:direction=forward/backward in 99 % der Fälle hin. Wo es reine Linkabbiegerspuren gab, war bei mir auch eine bauliche Trennung der Gegenfahrbahn, so dass man die Ampel auf die “Stückchen” eigenen Way der Linkabbiegerspur setzen konnte.

Aber um auf den Thread zurück zu kommen: Abbiegerelationen und Grünphasen halte ich für übertrieben!