Overpass Turbo: Gelöschte Objekte anzeigen

Ich verwende seit langer Zeit für die Darstellung von geänderten Objekten folgendes Skript:

// Änderungen prüfen
[timeout:60];
nw
  (newer:"{{date:4 month}}")  
  ({{bbox}})->.newnodes;

(.newnodes; - node.newnodes(user:Wetterauer);)->.newnodes;
(.newnodes; - way.newnodes(user:Wetterauer);)->.newnodes;

(.newnodes;.newnodes >;)->.newnodes;

.newnodes out meta;

Wie muss ich das Skript ändern, damit es mir nicht nur Änderungen sondern auch gelöschte Objekte anzeigt?

Sonnige Grüße aus der Wetterau
Uwe

1 Like

Ich weiß nicht, wie man konkret nach etwas gelöschtem sucht. Wenn du aber konkret weißt, was zu welchem Zeitpunkt da gewesen ist, kannst du hier mit suchen:

[out:json][timeout:25][date:"2012-01-01T00:00:00Z"];
nwr["bridge"]({{bbox}});
out geom;

Damit kannst du alle Brücken, die schon 2012 in OSM waren, anzeigen. Die Abfrage dauert recht lange, du musst also entweder den timeout hochstellen oder recht nah ranzoomen.

Gefunden habe ich das hier.

Das ist nicht ganz was ich suche. Ich suche etwas, das mir Objekte anzeigt, die nach einem festgelegten Zeitpunkt gelöscht wurden.

Ich würde folgendes versuchen:

Datenabfrage von vor dem gewünschten Zeitpunkt → speichern als before.osm

Datenabfrage aktueller Zeitpunkt → speichern als now.osm

Dann: osmconvert before.osm now.osm --diff (oder diff-contents) | sed -n ‘/,/p’ | grep ‘.*delete>’ und dann sind genau die gelöschten Elemente gelistet.

Alternativ before.osm/now.osm beim diff vertauschen und sed für <create/modify> ausführen - also "sed ‘/,/d’‘’, dann sind die Elemente so vorhanden wie sie waren.

Feinschliff musste selber machen je nach Bedarf.

Die Forensoftware schmeißt wichtige Strings bei der Darstellung raus, weil sich die sed-Befehle und HTML-Codierung beißen würden. Wenn man auf Bearbeiten geht, sind sie wieder da. Also sed nach dem Schema “delete>,/delete>”. Musste selber mal schauen.

Das könnte über adiffs und anschließender Filterung nach action type="delete" funktionieren, so wie das vermutlich auch Achavi macht.

1 Like

@Garmin-User , versuch’s mal damit, den sed-Befehl in einen Code-Abschnitt zu packen, siehe OSM-Forum auf Discourse - Tipps und Tricks für neue User - #79 by Map_HeRo

und bash als Programmiersprache, siehe discourse/config/site_settings.yml at cd93d1b5f76aa8b696783f2c5a7edf2920ef8254 · discourse/discourse · GitHub

1 Like

Ich würde folgendes versuchen:

Datenabfrage von vor dem gewünschten Zeitpunkt → speichern als before.osm

Datenabfrage aktueller Zeitpunkt → speichern als now.osm

Dann:

osmconvert before.osm now.osm --diff (oder --diff-contents) | sed -n '/<delete>,</delete>/p' | grep -v '<.*delete>'

und dann sind genau die gelöschten Elemente gelistet.

Alternativ before.osm/now.osm beim diff vertauschen und sed für <create/modify> ausführen - also

sed '/<delete>,</delete>/d' | grep -v '<.*create>' | grep -v '<.*modify>'

dann sind die gelöschten Elemente so vorhanden wie sie waren.

Feinschliff musste selber machen je nach Bedarf.

Vielen Dank, das hat funktioniert.