You are not logged in.
Hallo allerseits,
ich würde gerne aus der "germany.osm" der Geofabrik alle Adressen herausfilter! Dazu würde ich gerne "osmosis" verwenden! Nun ist ja das Problem der unterschiedlichen Erfassungsmethoden bei Adressen. So aus dem stehgreif fallen mir da ein:
- als einzelner Punkt
- als Fläche (z.b. ein Gebäude)
- als Relation zur Straße
Ich hätte nun gerne als "Ergebnis" eine komplette Liste die NUR aus Punkten (mit Koordinaten + Adressdaten) besteht und in eine MySQL Datenbank geschrieben werden kann.
Ist hier osmosis der richtige Ansatz und wenn ja könnte mir jemand bei der Erstellung der Kommandozeile behilflich sein?
Vielen Dank schon einmal an alle Helfer!
P.S.: Ich verwende Win 7 64x
Offline
Hallo jman1983,
Ich schätze mal, dass Du ohne Datenbank Dein Aufgabe nicht lösen kannst und dabei denke ich nicht unbedingt an die Probleme der Relation und Wegeauflösung. Wie willst Du in diesem Zusammenhang die interpolierten Adressen behandeln? Welche Koordinate willst Du überignes bei Wegen benutzen?
MfG Georg V.
Offline
Hmm an interpolierte Adresse habe ich gar nicht gedacht!
Ok die nehmen wir dann schonmal raus aus der Liste!
Also nur noch "sichere" Adressen, also solche wo die genaue Lage (hinreichend genau) bekannt ist!
Ich habe irgendwo einmal von einem plugin für osmosis gelesen, welches aus einer Fläche (Gebäude mit Adressdaten) einen Punkt in der Mitte der Fläche erzeugt. Dies wäre ja quasi genau das, was ich bei "Flächenadressen" gebräuchte...
Bei Relationen müßten dann "nur" die Mitglieder, mit der Rolle "house" genutzt werden und natürlich auch der Straßenname. Wobei "nur" glaube ich masslos untertrieben ist...
Ich hoffe, es findet sich noch jemand der mir wenigstens bisl weiterhelfen kann, so das ich meine Idee nicht sofort wieder verwerfen muss
MfG
Jan
Offline
Hi,
ich meine, dass osmconvert eine Option besitzt Flächen-POIs zu Punkt-POIs umzuwandeln.
Chris
Offline
Hi,
ich meine, dass osmconvert eine Option besitzt Flächen-POIs zu Punkt-POIs umzuwandeln.
Chris
--all-to-nodes
Wenn ich es recht sehe, wird "einfach" der Knoten in der Reihemitte genommen und nicht der Flächenschwerpunkt selbst berechnet.
Kann man so oder so sehen ...
Offline
Besten Dank für den Tipp!
Ich habe mir da jetzt mal eine Kommandozeile zusammengebastelt und wollte fragen ob ich es so richtig verstanden habe:
osmfilter germany.osm --keep= --keep-nodes="addr:*" -o=addr_node.osm
osmfilter germany.osm --keep= --keep-ways="addr:*" -o=addr_way.osm
osmconvert addr_way.osm --all-to-nodes -o=addr_way_node.osm
osmconvert addr_node.osm addr_way_node.osm -o=addr.osm
Ich habe die Relation jetzt (noch) herausgelassen...
Offline
addr_way_node.osm muss nochmal gefiltert werden, da die (ur-)nodes der ways ja selbst keine addr hatten, somit
osmfilter addr_way_node.osm --keep= --keep-nodes="addr:*" -o=addr_node2.osm
osmconvert addr_node.osm addr_node2.osm -o=addr.osm
Wie wär's mit
osmconvert germany.osm.pbf --all-to-nodes --out-o5m > g.o5m
osmfilter g.o5m --keep-nodes="addr:*" --keep-tags="all addr:*" -o=addr.osm
![]()
Last edited by kellerma (2012-01-14 00:18:18)
Offline
Super! Vielen dank, klappt super!
Jetzt muss die Datei nur noch in die (lokale) Datenbank...
Ich werde morgen mal versuche in diese Richtung starten, aber über Tipps freue ich mich bereits jetzt schon ![]()
Offline
Ich nehme an, dass MySQL eine Importfunktion für CSV-Files hat? Dann müsstest Du nur noch die osm-xml-Daten
in CSV wandeln, was kein großes Problem darstellen sollte. ![]()
Offline
osmosis --write-mysql ....
?
Offline
So endlich mal wieder bischen Zeit für dieses "Privatprojekt"!
Also jetzt klappt alles soweit...
Mir ist nur Aufgefallen, dass viele Adressen nicht "komplett" erfasst sind und habe mir gedacht ich mach mal bischen "Qualitätssicherung"! Hierzu möchte ich alle Adressen die "komplett" sind aus der o5m-Datei ausfilter und anschließend die "fehlerhaften" um sie irgendwie für die QS ( evtl. alla keep-right oder so, da hab ich mir noch keine gedanken drüber gemacht) zu veröffentlichen...
So mein Problem ist, wenn ich mit
osmfilter addr.o5m --keep= --keep-nodes="addr:housenumber=* and addr:strett=* and addr:postcode=* and addr:city=*" -o=addr_komplett.osm
alle kompletten Adressen herausfiltern möchte, bekomme ich nur ne leere Datei ;(
Kann mir einer von euch sagen, was ich falsch mache?
Vielen Dank schonmal für eure Hilfe
Offline
osmfilter addr.o5m --keep= --keep-nodes="addr:housenumber=* and addr:strett=* and addr:postcode=* and addr:city=*" -o=addr_komplett.osm
Kennst du das Lied "Stretts of London" ?
Google auch nicht - aber such mal danach ![]()
Gruss
Walter
Last edited by wambacher (2012-01-20 18:04:47)
Der Usus von Xenomorphismen ist auf ein Minimum zu reduzieren.
Offline
Offline
Mir ist nur Aufgefallen, dass viele Adressen nicht "komplett" erfasst sind und habe mir gedacht ich mach mal bischen "Qualitätssicherung"! Hierzu möchte ich alle Adressen die "komplett" sind aus der o5m-Datei ausfilter und anschließend die "fehlerhaften" um sie irgendwie für die QS ( evtl. alla keep-right oder so, da hab ich mir noch keine gedanken drüber gemacht) zu veröffentlichen...
Nur zur Information: Mein housenumbervalidator (github, Wiki, Forum, Karte) erstellt u. a. auch eine Datei incomplete.txt, in der alle Adressdatensätze, die nicht vollständig sind, gespeichert werden. Diese werden momentan nicht auf der Karte angezeigt, da es a) sehr viele sind (mehr als 797000 in DE), b) mein Programm keine Adressrelationen berücksichtigt und c) einige Mapper grundsätzlich keine vollständige Adressinformtion eintragen, da z.B. Stadt und Staat i.d.R. automatisch ermittelt werden können.
Offline
Kennst du das Lied "Stretts of London" ?
Google auch nicht - aber such mal danach
Ei wo, die AllWissende MüllHalde findet alles:
Search: Stretts of London
About 119,000,000 results
Showing results for Streets of London. Search instead for Stretts of LondonSearch: Stretts of London
About 112,000 results
Did you mean: Streets of London
Offline
Ei wo, die AllWissende MüllHalde findet alles:
AWMH wrote:Search: Stretts of London
About 119,000,000 results
Showing results for Streets of London. Search instead for Stretts of LondonSearch: Stretts of London
About 112,000 results
Did you mean: Streets of London
ok, ich werde das Rätsel mal lösen:
Search: Stretts of London
...
Did you mean: Streets of London
--> osmfilter addr.o5m --keep= --keep-nodes="addr:housenumber=* and addr:street=* and addr:postcode=* and addr:city=*" -o=addr_komplett.osm
Man sollte die Google-Ausgabe auch richtig interpretieren.
Gruss
walter
Last edited by wambacher (2012-01-20 19:30:21)
Der Usus von Xenomorphismen ist auf ein Minimum zu reduzieren.
Offline
Man sollte die Google-Aussage auch richtig interpretieren.
Das ist mir schon klar, wie Google das meint.
Es ist auch eines ihrer ganz großen Stärken, Rechtschreibfehler richtig zu interpretieren,
da kommen Bing & Co. bei weitem nicht mit.
und das bei weitaus komplizierteren Sachen als "Street" & "Strett".
Offline
ok, ich werde das Rätsel mal lösen:
Search: Stretts of London
...
Did you mean: Streets of London--> osmfilter addr.o5m --keep= --keep-nodes="addr:housenumber=* and addr:street=* and addr:postcode=* and addr:city=*" -o=addr_komplett.osm
Man sollte die Google-Ausgabe auch richtig interpretieren.
Gruss
walter
Oh man, das ist mir jetzt doch unendlich peinlich... Aber nichts desto trotz vielen Dank für deine "Rechtschreibprüfung"
@gulp21 Die Karte ist ja richtig gut, kannte ich gar nicht. Besten dank hierfür...
Offline
Wer kann nochmal schnell ne Tip zu POI/OSM-Datei in CSV/MYSQL geben ?
Ich würde gerne alle Attribute der Nodes mit übernehmen .
Dirk
Offline
Moinsen -
das hier
addr_way_node.osm muss nochmal gefiltert werden, da die (ur-)nodes der ways ja selbst keine addr hatten, somit
osmfilter addr_way_node.osm --keep= --keep-nodes="addr:*" -o=addr_node2.osm
osmconvert addr_node.osm addr_node2.osm -o=addr.osmWie wär's mit
osmconvert germany.osm.pbf --all-to-nodes --out-o5m > g.o5m
osmfilter g.o5m --keep-nodes="addr:*" --keep-tags="all addr:*" -o=addr.osm
liefert ein DB-Abzug - Was aber ist mit dem Schema? Ich mein - wie kommt man denn zu einem vernünfitgen Schema!? Es gibt ja keinen Fremdschlüssel...
Also ich denk das Schema ist schlichtweg “schlecht”.
Aus folgendem Gründen.
Datenhaltung / Konsistenz
– Keine Fremdschlüssel in der Datenbank zu semantischen Abhängigkeiten der Daten insgesamt und das rührt daher, dass ja keine
– Datenintegrität zwingend erforderlich ist. Weil: Subnodes ohne nodes ohne weiteres möglich sind, weil nicht durch FKs in der DB abgesichert.
Also das macht doch so ein Ansatz zu einer schwierigen Aufgabe oder!?
Nochmals - vielle. habv ich da ja auch was noch nicht ganz zu Ende gedacht: Zum einen denke ich, dass es ja so ist: Nur wer wirklich konkret weiss, wie die Zusammenhänge genau sind, der kann diese aus dem Schema zurückholen
Frage - wie habt ihr das gemacht!?
Freu mich auf einen Tipp
euer TagtheWorld
Offline
Also ich kann jetzt nur für mich sprechen:
Ich erledige den Import meiner Daten mit : https://github.com/skyebook/OSMGenerator
Dort sind aus die sql-Dateien einthalten.... (auch mit FK) Oder verstehe ich dich gerade falsch?
Bzw. mit dem spatialite_osm_raw https://www.gaia-gis.it/fossil/spatialite-tools/index geht das ganze auch für spatialite-Datenbanken...
Last edited by jman1983 (2012-04-25 17:49:16)
Offline
hi jman1983 - danke für deine schnelle Antwort.
freu mich sehr von dir zu hoeren.
Also ich kann jetzt nur für mich sprechen:
Ich erledige den Import meiner Daten mit : https://github.com/skyebook/OSMGenerator
Dort sind aus die sql-Dateien einthalten.... (auch mit FK) Oder verstehe ich dich gerade falsch?Bzw. mit dem spatialite_osm_raw https://www.gaia-gis.it/fossil/spatialite-tools/index geht das ganze auch für spatialite-Datenbanken...
Das klingt alles interessant. Habe von dem Github-Projekt bzw. dem Generator auch schon gehoert - gestern nämlich. Sehr interessant. Ich dachte dass es eher ein tool ist. Du aber gibst mir den Eindruck dass es eine - hmm fast schon fertige DB ist... !?
Meine Bedenken hab ich im Übrigen eher angelesen - von hier... http://goblor.de/wp/2008/09/25/howto-op … portieren/
aber ich glaube dass das - was dort diskutiert wurde - ggf. auch schon überholt ist.
Also - Du hast im Grunde alle POIs importiert - sagen wir mal Alle POIs von Deutschland. Und die DATEN liegen dir in der MySQL Db vor!?
Und die Source dafür ist schlicht und ergreifend - der OSMGenerator
ich arbeite auf Linux - (opensuse version 12.1) Im Grunde koennte ich da über die Kommandozeile auch mal einiges ausprobieren.
Freu mich von dir wieder zu hoeren.
Viele Grüße
TagTheWorld
Offline
Hi tagtheworld
bitte bitte, wenn ich helfen kann, immer gern!
Das klingt alles interessant. Habe von dem Github-Projekt bzw. dem Generator auch schon gehoert - gestern nämlich. Sehr interessant. Ich dachte dass es eher ein tool ist. Du aber gibst mir den Eindruck dass es eine - hmm fast schon fertige DB ist... !?
Den Eindruck wollte ich nicht vermitteln, der ist nämlich falsch
Deine Vermutung war schon richtig, es ist ein Tool um eine (beliebige) osm Datei in eine MySql Db zu "importieren". Es ist in Java geschrieben, sollte daher auch unter Linux problemlos laufen. Allerdings ist es relativ "steif" programmiert, sprich die persönlichen Einstellungen müssen im Quellcode geändert werden (Hab mir schonmal überlegt eine "Erweiterung" bzw. Änderung zu schreiben, aber noch keine Zeit gefunden bzw. auf andere OSM-Projekte konzentriert, aber ich scheife ab... )
Der Autor ist aber sehr hilfsbereit und antwortet schnell auf eMail.... (Kann sogar ein bischen deutsch, wenn ich es recht in Erinnerung habe)
Also ich filtere ALLE Adressen aus den DACH-OSM-Auszügen der Geofabrik, lasse alles was irgendein addr:*-Tag hat zu einem node generieren, filtere anschließend alle kompletten Adressen heraus (für ein weiteres privates Projekt, was aber momentan auch auf Eis liegt) und anschließend werden alle fehlerhaften bzw. unvollständigen Daten in eine MySql Db importiert und hier ( http://osmlabs.square7.de/OSMAddressCorrector/) veröffentlicht. Ja und das erledigt bei mir der OSMGenerator. Als "arbeitsvorbereitende Maßnahme" muss man die enthaltenen sql.Dateien in seine Datenbank importieren. Aber dies ist eigentlich ganz einfach. Ich nutze dazu HeidiSql.
Mit dem spatialite_osm_raw-Tool ist es noch einfacher: spatialite_osm_raw xyz.osm irgendwas.sqlite und ab die Post... (glaube so war der Kommandoaufruf...)
Hoffe ich konnte dir weiterhelfen, ansonsten melde dich nochmal!
Gruß
Jan
Offline
Hallo Jan
vielen Dank für deine Antwort. Also ich will das gerne nachstricken - nachbauen und ne MySQL aufsetzen die das dann hier so macht wie du das hast.
Hab eine OpenSuse 12.1 und da läuft schon ein Lamp am Laufen, Auf der Kommandozeile kenn ich mich einigermaßen aus. Asserdem kann ich minimal Perl.
Frage; wie geht s denn Wie binde ich OSMGenerator.denn ein!? Lässt sich der gut auf der Susi installieren.
Die Kommandozeilenbefehle hast du schon oben alle geschrieben - bzw. sie ja auch schon diskutiert. Das dürfte - wenn die dann in der Reihe (nfolge) und in der Syntax klar sind, auch kein Problem sein.
Geofabrik, {de] Downloads kenne ich schon.
Welches Files nimmst du da denn genau. Ich hab gestern noch gesehen dass die sogar regional runtergehen bis auf die Landesebene. Ich koennte alle DACH-POIs gut gebrauchen. Das wäre super.
Nun fallen mir im Moment nicht mehr fragen ein - ich denk das erste wäre dass ich den OSMGenerator hier auf der Susi installiere und zuum Laufen bekommen
Das würd ich gern am lg,. Wochenende machen.
Freu mich sehr von dir zu hoeren.
viele Gruesse & bis bald
TagTheWorld
Offline
Hi,
Frage; wie geht s denn Wie binde ich OSMGenerator.denn ein!? Lässt sich der gut auf der Susi installieren.
Die Kommandozeilenbefehle hast du schon oben alle geschrieben - bzw. sie ja auch schon diskutiert. Das dürfte - wenn die dann in der Reihe (nfolge) und in der Syntax klar sind, auch kein Problem sein.
Also:
1. Du setzt ne MySQl Datenbank auf
2. "Installierst" die sql Dateien in die Datenbank ( am besten mit phpMyAdmin oder deinem Lieblingsprogramm)
3. Passt den Quellcode vom OSMGenerator an deine Umgebung an
- Name und Ort der zu importierenden osm-Datei
- Datenbankname, DB-Nutzer/Passwort und IP (wahrscheinlich "localhost")
4. Kompilieren des Javaquellcodes
5. OSMGenerator ausführen
6. Freuen, dass du ne MySql DB mit OSM Daten hast ![]()
7. Was auch immer du damit machen möchtest ![]()
Punkt 6 ist der aller aller wichtigste und darf nicht vernachlässigt werden....
Welches Files nimmst du da denn genau. Ich hab gestern noch gesehen dass die sogar regional runtergehen bis auf die Landesebene. Ich koennte alle DACH-POIs gut gebrauchen. Das wäre super.
Also ich nutze die germany,austria und switzerland Dateien jeweils immer das PBF-File. Welches du genau nutzt, kommt halt auf deinen Vorstellungen an, von wo du genau die POI haben möchtest. Es würde auch die gesamte Welt gehen...
Ich hoffe, ich konnte dich weiterführen und du hast genug arbeit für das lange Wochenende ![]()
Darf man fragen, was du genau vorhast?
Offline