You are not logged in.
Pages: 1
Hallo zusammen!
Kann mir jemand bei einem kleinen Problem weiterhelfen? (Ich hoffe doch stark
)
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.o5mnicht den gewünschten Effekt ![]()
Wenn jemand einen Tipp hat, würde es mich sehr freuen!
Offline
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
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)
Offline
Wie wäre es mit --keep anstelle von --drop? (Nur mal so als Idee ins Blaue)
Leider das selbe negative Ergebnis! Außerdem möchte ich sie ja nicht behalten, sondern loswerden ![]()
Aber danke für den Tipp.
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)
Das ist mir ja bewusst und genau darum geht es mir ja auch! Ich möchte diese Redundanz ja gerade ausschließen...
Offline
Moin,
glaube nicht dass es mit osmfilter geht.....
Offline
Leider brachte
osmfilter input.o5m --drop= --drop-nodes="addr:housenumber=name" --drop-ways="addr:housenumber=name" -o=output.o5mnicht den gewünschten Effekt
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
Last edited by wambacher (2013-01-12 12:29:15)
Offline
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.
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)
Offline
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 ...
Offline
Na dann fange ich mal bei "0" an, damit keine Missverständnisse auftauchen:
Gib eventuell der Overpass-Api eine Chance.
Mach ich doch, ist sogar mein Einstiegspunkt ![]()
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;"Wahrscheinlich ist die Fläche zu groß um das über Overpass-API
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
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?
Na dann hoffe ich mal das beste, vllt. schreibe ich ihn auch mal direkt an...
Offline
Nun möchte ich solche Objekte löschen:
...
Sprich ein Objekt hat sowohl "name=xyz" wie auch "addr:housename=xyz" und die Werte sind identisch
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
Last edited by wambacher (2013-01-12 14:28:48)
Offline
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....
Mal schauen, ob da was kommt.
Offline
schnipp
Last edited by toc-rox (2013-01-12 19:39:33)
Kommunikation -> Kooperation -> Innovation
Offline
EvanE wrote: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)
Das ist mir ja bewusst und genau darum geht es mir ja auch! Ich möchte diese Redundanz ja gerade ausschließen...
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.
Offline
Pages: 1