Identische Tags herausfilter

Hallo zusammen!

Kann mir jemand bei einem kleinen Problem weiterhelfen? (Ich hoffe doch stark :wink: )

Ist es möglich, (am besten mit osmfilter) Nodes und Ways herauszufilter die zwei identische Werte in unterschiedlichen Tags haben?
Im Detail geht es um “addr:housename” und “name”, sprich wenn addr:housename=name ist, soll er gelöscht werden.

Leider brachte


osmfilter input.o5m --drop= --drop-nodes="addr:housenumber=name" --drop-ways="addr:housenumber=name" -o=output.o5m

nicht den gewünschten Effekt :frowning:

Wenn jemand einen Tipp hat, würde es mich sehr freuen!

Wie wäre es mit --keep anstelle von --drop? (Nur mal so als Idee ins Blaue)

Allerdings wäre ich vorsichtig: Das Tagg addr:housename wäre eine zulässige postalische Adresse (unüblich in DE aber nicht unmöglich). Dann wäre es auch nicht ungewöhnlich, wenn das Gebäude den gleichen Namen (entsprechend name=*) hat.

Edbert (EvanE)

Leider das selbe negative Ergebnis! Außerdem möchte ich sie ja nicht behalten, sondern loswerden :wink:
Aber danke für den Tipp.

Das ist mir ja bewusst und genau darum geht es mir ja auch! Ich möchte diese Redundanz ja gerade ausschließen…

Moin,
glaube nicht dass es mit osmfilter geht…

nen tip hab ich nicht - nur ne Frage:
wenn ich dich richtig verstanden habe, willst du z.B. Hausnummern als Node löschen, wenn der Way die gleiche Nummer hat, oder?
Wie soll das denn so funktionieren?

Es fehlt hier der räumliche Bezug zwischen Hausnummer am Way und Hausnummer als Node.

Das wirst du nur mit eine spatialen Abfrage (“liegt der Node IN einem Way und haben beide die gleiche Hausnummer?” ) lösen können. Und dafür brauchst du eine Software mit GIS-Funktionen. Postgresql + postgis wäre die ideale Lösung - es mag aber auch andere geben.

Gruss
walter

Hallo Walter

Oder man lässt es den Server machen und nimmt die Overpass-API und dort die Around-Abfrage.

@jman1983:
–keep wenn du eine Liste brauchst mit den doppelten Name/Hausname (so hatte ich das verstanden).
–drop wenn du zum Auswerten/Rendern die doppelten Einträge weglassen willst (das suchtest du wohl).
Gib eventuell der Overpass-Api eine Chance.

Edbert (EvanE)

mit osmfilter lassen sich nicht 2 Werte eines Datensatzes vergleichen.

Sowas müsste noch eingebaut werden - der Vater von osmfilter ließt wohl hier mit - vielleicht fühlt er sich Angsprochen sowas einzubauen?

Wahrscheinlich ist die Fläche zu groß um das über Overpass-API / XAPI …

Na dann fange ich mal bei “0” an, damit keine Missverständnisse auftauchen:

Mach ich doch, ist sogar mein Einstiegspunkt :wink:

wget "http://www.overpass-api.de/api/interpreter?data=(way(47.2,5.8,55.1,15.1)['addr:housename'];node(47.2,5.8,55.1,15.1)['addr:housename'];);out meta;"

Ne klappt super.

Jetzt hab ich alle node und ways im “Großraum Deutschland”, die ein addr:housename enthalten.

Nun möchte ich solche Objekte löschen:


<node id="1956114300" lat="51.1415734" lon="6.4451" version="1" timestamp="2012-10-10T06:05:58Z" changeset="13436583" uid="961207" user="3dplastic">
		<tag k="addr:housename" v="3dplastic"/>
		<tag k="addr:postcode" v="41999"/>
		<tag k="addr:street" v="Einruhrstraße"/>
		<tag k="building" v="yes"/>
		<tag k="name" v="3dplastic"/>
		<tag k="source" v="http://www.3d-plastic.eu"/>
	</node>

Sprich ein Objekt hat sowohl “name=xyz” wie auch “addr:housename=xyz” und die Werte sind identisch

Na dann hoffe ich mal das beste, vllt. schreibe ich ihn auch mal direkt an…

Alles klar - und (für mich) viel einfacher:


osm=# select id,tags->'name' "redundanter Name"
from ways
where tags->'addr:housename'=tags->'name'
limit 10;
    id    |  redundanter Name   
----------+---------------------
  7744238 | Siebenbuche-Kaserne
  8010720 | MAYWAY
  8045726 | EisArena Passau
 88392710 | Автотур
 10211605 | Puls 5
 10567643 | Ammonhof
 91244074 | GSE
 10870297 | Jahrhunderthalle
 11017083 | Kastor
 11526963 | Main Tower
(10 rows)

halt mal die ersten 10 ways - für nodes analog.
Mal sehen, was die Kollegen von der “overpass-liga” dazu sagen.

Gruss
walter

Hallo Walter!

Genau so hab ich es gemeint!
Hmm stimmt, wenn die overpass-api die Daten erst gar nicht liefert, brauche ich sie ja auch nicht zu entfernen! Einfach, aber genial… :wink: Mal schauen, ob da was kommt.

schnipp

Ich sehe den Sinn immer noch nicht. Es sind zwei unterschiedliche Informationen - und wenn man eine davon löscht, hat man hinterher weniger Information. Entfernt man addr:housename und lässt nur housename stehen, ist nicht klar, dass dieser Name auch als postalische Adresse genutzt wird. Entfernt man dagegen housename und lässt nur addr:housename stehen, ist zwar klar, dass ich an diese Adresse Post schicken kann, aber ob das Haus wirklich (immer noch) so heißt, sehe ich aus dieser Information nicht. Vielleicht wurde ja in der postalischen Adresse ein Hausname beibehalten, der real nicht mehr verwendet wird. Das ist natürlich eher unwahrscheinlich und an den Haaren herbeigezogen, aber auszuschließen ist es wohl nicht.