Wege mit nur einem Knoten: eine Aufgabe für Wall·E?

Das halte ich nicht für so einfach. Beispielsweise in linienförmigen Relationen wie z.B. Wanderwegen und Buslinien und auch Multipolygonen wäre es z.B. sinnvoll, zunächst zu prüfen, ob der 1NW nicht einen Hinweis auf eine Lücke im Linienverlauf darstellt, da im Falle dieser Lücke zumindest manuell eine Rekonstruktion oft möglich sein dürfte. Daher denke ich, dass man automatisch nur bestimmte bekannte Relationstypen sinnvoll bearbeiten kann.

Beispielsweise bei nachfolgenden Wegen halte ich auf Basis der Tags die Restinformation für so gering, dass man sie wohl entsorgen kann. Ich sehe jetzt keinen Grund, warum die Restinformation hier höher als bei sonstigen vollständig gelöschten Objekten sein soll. Wenn wir diese Restinformation als erhaltenswert einstufen, müßten wir wohl auch säntliche gelöschen Objekte aus der Datenbank ausgraben, und einer manuellen Überprüfung zuführen.


  <way id="23893874" version="2" timestamp="2013-04-01T16:25:03Z" uid="33486" user="volo" changeset="15570485">
    <nd ref="258347158"/>
    <tag k="highway" v="footway"/>
  </way>
  <way id="24056698" version="4" timestamp="2013-05-01T17:47:30Z" uid="656522" user="jojokant" changeset="15936504">
    <nd ref="28958114"/>
    <tag k="highway" v="track"/>
    <tag k="motorcar" v="no"/>
    <tag k="source" v="survey"/>
    <tag k="tracktype" v="grade2"/>
  </way>
  <way id="24684824" version="8" timestamp="2013-05-05T12:51:24Z" uid="506020" user="JensemannWF" changeset="15984041">
    <nd ref="311550300"/>
    <tag k="foot" v="yes"/>
    <tag k="highway" v="cycleway"/>
  </way>
  <way id="24784949" version="6" timestamp="2013-03-03T15:46:17Z" uid="483195" user="xl00033" changeset="15235153">
    <nd ref="790002409"/>
    <tag k="foot" v="yes"/>
    <tag k="highway" v="track"/>
    <tag k="tracktype" v="grade3"/>
  </way>
  <way id="25007511" version="9" timestamp="2013-04-30T05:59:36Z" uid="200245" user="docschenk" changeset="15916580">
    <nd ref="2109649459"/>
    <tag k="bicycle" v="yes"/>
    <tag k="foot" v="yes"/>
    <tag k="highway" v="track"/>
    <tag k="surface" v="asphalt"/>
    <tag k="tracktype" v="grade1"/>
  </way>

Ansatz zur Erkennung wäre folgender:
-Es ist ein Schlüssel (oder ein Tag) für den Objekttyp vorhanden, der nur für einen Weg sinnvoll ist (insbesondere key:highway).
-Es sind nur weitere Schlüssel/Tags aus einer zu erstellenden Positivliste vorhanden.

In die Positivliste sind insbesondere Schlüssel/Tags aufzunehmen, die Zusatzeigenschaften beschreiben, deren Informationsgehalt wir im Falle eines 1NW als gering einschätzen. Zumeist dürften dies Festwerttags sein. Auch source würde ich hier mit aufnehmen, da es belanglos ist, woher die Information kam, wenn diese nicht selbst erhaltungswürdig ist.

Nicht in diese Liste gehören individualisierende Tags, wie z.B. name oder addr:street.
Ebenso gehören Schlüssel/Tags, die auf möglicherweise punktförmige Objekte hinweisen (z.B. amenity), nicht auf diese Liste.

Ein weiterer Ansatz wäre:
Wenn der 1NW mal eine Fläche war und die vorhandenen Tags auch für einen Node geeignet sind, kann man wohl annehmen, dass die Reduktion der Fläche zu einem Punkt beabsichtigt war. Sofern der Node keine Tags hat (um Vermischung zu vermeiden), sollte man dann die Tags an diesen übertragen und den 1NW löschen können.

Noch ein Ansatz:
Wenn der 1NW und der zugehörige Knoten gleiche Tags haben (oder Untermenge), kann man den 1NW wohl löschen, da vermutlich die manuelle Übertragung an den Knoten beabsichtigt war.

Hatte soeben aus einem Node (Kirche) einen Way gemacht (Klick mit Shift neben den Node). Als ich speichern wollte, hat Potlatch2 dies mit einer Fehlermeldung abgebrochen. Um meine Änderungen dennoch sichern zu können, habe ich diese in eine osm-Datei gespeichert und in JOSM importiert. Beim hochladen kamm erneut eine Fehlermeldung “Weg mit nur einem Knoten”. Nach der Beseitigung des Fehlers konnte ich meine Änderungen mit JOSM speichern.
Frage: Wurde irgendwo etwas geändert? API, Potlatch2, …

Edit: Meine osm-Datei hab ich noch…

@slhh: Danke für die Vorschläge. In letzter Zeit bin ich nicht dazu gekommen, aber es wird auch mit den 1NW noch weitergehen. Als nächstes werde ich wahrscheinlich folgendes ausprobieren (mit dem geringsten Aufwand umzusetzen):

Eventuell sollte man noch anhand der Tags weiter einschränken, ob die Tags am Knoten gut/besser aufgehoben sind - also z.B. highway=residential sollte vermutlich nicht am Knoten landen. Aber darüber denke ich näher nach, wenn ich eine Übersicht über die betroffenen Objekte habe.

Diese Unterscheidung halte ich in diesem speziellen Fall, dass die Tags bereits am Knoten vorhanden sind, für unsinnig. An einem 1NW sind Tags auch nicht wirklich sinnvoll aufbewahrt und vom Knoten würdest du diese dort vermutlich manuell gesezten Tags ohnehin wohl nicht automatisch entfernen, auch wenn Sie dort nicht passen. Daher denke ich, der 1NW kann gelöscht werden und der Knoten könnte danach von irgendeinem QA Werkzeug wegen unpassender Tags angezeigt werden. Ich würde ohnehin eher nicht erwarten, dass jemand z.B. highway=residential manuell an einen Knoten überträgt.

Allerdings bringt mich deine Anmerkung auf eien unabhängigen Ansatz für 1NW: Wenn anhand der Tags eindeutig feststellbar ist, dass diese nur zu einem Knoten, nicht jedoch zu Wegen oder Flächen passen, sollte es möglich sein, die Tags an den Knoten zu übertragen und den 1NW zu löschen, wenn der Knoten vorher keine Tags hatte (Vermeidung von Vermischungen von Tags).

Leider stellt sich dieses vielversprechend erscheinende Kriterium in der Praxis als recht unergiebig heraus (wodurch sich auch die Überlegungen zu weiteren Einschränkungen erübrigen): in DE derzeit genau Null Vorkommen (es sei denn, es liegt ein Programmierfehler vor: wenn Dir solche Fälle begegnen, wäre die Objekt-ID zwecks Debugging hilfreich).

Eine weitere Chance besteht in der Erweiterung der Kriterien, bei denen die Tags des zu löschenden Weges an einem anderen Weg vorhanden sind (Fälle 1NW02, 1NW03, 1NW04), dahingehend daß nicht exakte Übereinstimmung verlangt wird, sondern auch teilweise Übereinstimmung als ausreichend angesehen wird. Eine spezielle Konstellation ist die, daß einer der zu vergleichenden Wege (der 1NW oder der andere) noch weitere Tags enthält (Obermenge), die übrigen jedoch übereinstimmen (identische Werte). Wenn die zusätzlichen Tags trivial sind, also faktisch keine Information enthalten, kann man sie beim Vergleich ignorieren. Dazu fallen mir ein:


created_by=*
oneway=no
layer=0
access=yes
source=*
...?

Beispiel: 1NW 26550548 kann gelöscht werden, da Weg 217809281 alle seine Tags mit Ausnahme des überflüssigen layer=0 dupliziert.
Nachtrag: Dies scheint aber auch schon der einzige Fall zu sein, in dem die obige Erweiterung greift:

osm-mechedit-euthanize-1nw run Wed May 22 14:32:27 2013
way #26550548 contains only one node: #291006931
        way #  26550548: safe to kill (1NW14)
        node #291006931 has tags and is referenced by other objects => can't kill
        way killed (not really) - http://www.openstreetmap.org/browse/way/26550548
total number of objects modified: 1

:frowning:

Später wird zu fragen sein, ob und welche nichttrivialen Tags bei Ober- bzw. Untermengen ignoriert werden können, oder wann Abweichungen zwischen den Werten von an beiden Wegen vorhandenen Tags unerheblich sind.

Nach längerer Pause noch einmal ein Update zu diesem Thema. Zur Erinnerung: es geht um Wege mit nur einem Knoten bzw. deren Löschung. Nach Rasenmähermethode alle Wege löschen möchte ich nicht, da möglicherweise der Weg ungewollt verstümmelt wurde und noch Information zu retten ist; daher die obigen aufwendigen Überlegungen, in welchen Fällen am Weg keine brauchbare Restinformation vorhanden und somit eine Löschung unproblematisch ist.

Es sind sicher noch nicht alle Möglichkeiten ausgeschöpft, aber es zeichnet sich ab, daß bei meiner eher zurückhaltenden Vorgehensweise ein beträchtlicher Rest verbleiben wird. Dies betrifft insbesondere Altlasten; neu erzeugte 1NW gehören in den nahezu allen Fällen zur Gruppe 1NW01, d.h. es handelt sich um Wege ohne Tags in Version 1 ohne Elternrelationen. Die neu hinzukommenden 1NW kann ich also mit meinem Programm weitgehend in Schach halten, aber für die Altlasten ist doch Manpower gefragt.

Das Gesamtaufkommen ist übrigens überschaubar - in DE sind noch etwa 400 der defekten Wege vorhanden. Gesucht werden also:

  • ein bis zwei Mapper, die sich um die kontinuierliche Bekämpfung der 1NW in DE kümmern möchten. Vielleicht jemand, der/die schon immer mal in bescheidenem Rahmen bei der OSM-Qualitätssicherung helfen wollte, aber noch nicht die richtige Aufgabe gefunden hat? Wenn der Altlastenberg erst einmal weg ist, geht es (nach Abzug der automatisch entsorgbaren) allenfalls um eine Handvoll Objekte pro Monat.

  • ein paar mehr Mapper, die einmalig in den nächsten Tagen/Wochen bei einer größeren Aufräumaktion helfen, z.B. jeweils die zehn nächstgelegenen 1NW versorgen.

Wege mit nur einem Knoten können [mithilfe des OSM Inspector](http://tools.geofabrik.de/osmi/?view=geometry&lon=11.21197&lat=50.58058&zoom=6&opacity=0.50&overlays=single_node_in_way,duplicate_node_in_way) aufgespürt werden. Unglücklicherweise hat der eine Macke und verwendet 32bit signed int für die Objekt-IDs, sodaß Knoten jenseits 2^31 mit negativer ID angezeigt werden und folglich die entsprechenden Links nicht funktionieren. Für den Moment ist das aber kein Beinbruch, da es (mir) hauptsächlich um die Altlasten geht. Alles, was mit negativer ID angezeigt wird, ist (relativ) neu und hat erst einmal untergeordnete Priorität (bzw. kann bereits gelöscht sein, wenn ich seit der letzten Aktualisierung von OSMI das Programm gestartet habe). Wie gesagt, befürworte ich nicht eine pauschale Löschung. Stattdessen sollte kurz auf der history-Seite nachgeschaut werden, was der Weg früher einmal dargestellt haben mag; oder, falls der Weg Tags besitzt, ob diese vielleicht an ein anderes Objekt in der Nähe gehören. Auch ein Blick aufs Luftbild schadet nicht, vielleicht ist die (unvollständige) Löschung unabsichtlich erfolgt (siehe Beispiel weiter oben im Faden). In den meisten Fällen wird sich freilich herausstellen, daß es nichts zu retten gibt. Wenn jemand dabei ein Kriterium erkennt, anhand dessen weitere Wege zur automatischen Löschung ausgewählt werden können, bitte mitteilen!

Weltweit sieht es nicht so gut aus, speziell die 1NWs nehmen kontinuierlich zu:

Gruss
walter

p.s.: 1NWs und 2NWs sollten klar sein. 3NWs sind geschlossene Ways mit 3 Nodes - also 1x hin und wieder zurück - , wo es nur ein einfacher Way mit 2 Nodes sein sollte. Typischer Newbie-Fehler halt.

Wird also Zeit, dass Wall·E sich über die Grenze wagt :wink:

Hallo,

in der nörd-östlichen Hälfte Deutschlands habe ich die roten Dreiecke des OSMI schon gut abgearbeitet. Mit dem Gebiet nord-östlich der Linie Münster-Marburg-Hof bin ich fertig.

Franz

Ach Du warst das :slight_smile: Mein eigener Beitrag nimmt sich mit bisher gut zehn 1NW etwas bescheidener aus; aber das ist eine Größenordnung, in der jeder mitmachen könnte.

@alle anderen: Wollt ihr euch das bieten lassen, daß Franz den ganzen Ruhm alleine einsackt?

Den Ruhm kann er haben, obwohl ich auch mitgemacht habe.

Kleine Wasserstandsmeldung: aktuell noch etwa 200 Edit nach einem größeren Aufräumen bei Bad Dürkheim: 150. Dank an jene, die bis hierhin in größerem oder kleinerem Umfang mitgemacht haben. Vor allem in NRW, RLP, BW und jenseits des Weißwurstäquators ist aber noch einiges zu tun.

Noch einmal der Link zum OSM Inspector: http://tools.geofabrik.de/osmi/?view=geometry&lon=11.21197&lat=50.58058&zoom=6&opacity=0.50&overlays=single_node_in_way,duplicate_node_in_way

Gibts eigentlich ne Möglichkeit in JOSM den 1-Knotenweg irgendwie anzufassen, um ihn weiterbearbeiten (oder löschen) zu können?

Die Methode: “abspeichern, osm-Datei editieren, laden” ist ein wenig aufwändig…

wenn sich der Node in einem Way - speziell an einer Stelle befindet, wo sich mehrere Wege treffen, ist es ziemlich einfach:

Node anklicken (rot machen), G für unglue; danach Node nochmals anklicken und zur Seite ziehen.
Sehr oft erwischt man gleich den Single, manchmal aber einen sauberen Node.
Dann einfach den nächsten Node an der selben Stelle anklicken und wieder zur Seite ziehen.
den Single löschen und die anderen Punkte mit Merge wieder zusammenführen.

Gruss
walter





Auswahlrahmen um den Punkt (oder größer) ziehen und den Weg im Selection-Panel (“Shift-Alt-T”) auswählen. Die Knotenzahl steht praktischerweise daneben. Wenn man zusätzlich den Knoten auswählt, kann man den Weg wie üblich mit “a” verlängern - was nach meiner Erfahrung aber meistens keinen Sinn macht.

Einfach in JOSM Finden aufrufen und dort id: eingeben.

Edbert (EvanE)

Ahhh danke!
Hatte bisher versucht, nur durch einfaches anklicken des Nodes und dann mit “weitermalen” versucht, den Weg weiterzuzeichnen. Mit dem Auswahlrahmen klappt es. :slight_smile:

Wenn man aus dem OSMI sich die Waynummer kopiert und in JOSM “Objekt herunterladen” (Strg+Shift+o) wählt, hat man nur den einen (unsichtbaren) Way am Knoten.