You are not logged in.

Announcement

*** NOTICE: forum.openstreetmap.org is being retired. Please request a category for your community in the new ones as soon as possible using this process, which will allow you to propose your community moderators.
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***

#1 2012-07-29 20:13:58

Willy909
Member
Registered: 2012-07-29
Posts: 9

Eine Liste mit allen secondary Strassen in Berlin aus OSM extrahieren?

Hallo OSM Community,

ich würde gerne eine Liste mit allen Secondary bzw. eine Liste mit allen Primary Straßen aus OSM extrahieren.
Diese Liste würde ich gerne mit den Straßen Tags (z.B. Namen) ergänzen und in einem Wiki anzeigen.
Wenn möglich mit ein Group By damit ich nicht die selbe Straße 100 mal in der Liste habe, weil diese gesplittet wurde.

Da sich diese List nicht ständig verändert müsste ich das wohl manuell anstoßen.

##############################################################

Ganz abgesehen davon ob diese Liste Sinn ergibt oder nicht. Oder ob man die Liste bereits irgendwo führt:
Wie würdet Ihr solch etwas umsetzen?

Ich habe vor vielen Jahren in PHP programmiert und kenne mich mit Datenbanken etwas aus.
Allerdings fehlt mir der Ansatz. Wie gehe ich wo vor und mit welchen Tools geht es am besten?
Sollte ich direkt bei Openstreetmap diese Daten ziehen oder vielleicht aus einem Extract z.B. bei Cloudmade oder Geofabrik?

Wäre klasse wenn Ihr mir ein paar Tips und Links geben könntet damit ich loslegen kann.

Offline

#2 2012-07-29 21:14:19

zorque
Member
Registered: 2007-11-06
Posts: 446

Re: Eine Liste mit allen secondary Strassen in Berlin aus OSM extrahieren?

Hallo,

ich mache mal einen Vorschlag für den Anfang:

von der Geofabrik das entsprechende Extract laden.

Mit Osmosis Berlin mit dem Boundary Poligon ausschneiden.

Mit Osmosis alle Highways secondary filtern lassen.

Für meinen Zweck geht es dann mit Excel/Calc weiter, sprich, Dublikate filtern, sortieren etc. Relativ viel Handarbeit.

Vll reicht das ja als ersten Ansatz. Bei weiteren Fragen oder wenn du Links brauchst, meld dich einfach wieder.

Gruß

z.

Offline

#3 2012-07-29 21:56:42

wambacher
Member
From: Schlangenbad/Wambach, Germany
Registered: 2009-12-16
Posts: 16,769
Website

Re: Eine Liste mit allen secondary Strassen in Berlin aus OSM extrahieren?

Willy909 wrote:

Wäre klasse wenn Ihr mir ein paar Tips und Links geben könntet damit ich loslegen kann.

bau dir mit osm2pgsql eine Datenbank auf - genauso als ob du eine Karte selber rendern wolltest. als Resultat hast du eine postgresql-DB, die du mit sql abfragen kannt.

hier EINE Anleitung - davon gib es noch mehrere: http://wiki.openstreetmap.org/wiki/Osm2pgsql aber ne bessere finde ich heute Abend nicht auf die Schnelle.
sollte zum Einstieg schon mal reichen.

Gruss
walter

Offline

#4 2012-07-29 22:00:38

SunCobalt
Member
From: Eislingen
Registered: 2010-01-09
Posts: 3,810

Re: Eine Liste mit allen secondary Strassen in Berlin aus OSM extrahieren?

zorque wrote:

von der Geofabrik das entsprechende Extract laden.

Mit Osmosis Berlin mit dem Boundary Poligon ausschneiden.

Oder gleich Berlin laden wink Hat die Geofabrik netterweise im Angebot


Thomas

Offline

#5 2012-07-29 22:06:20

EvanE
Member
Registered: 2009-11-30
Posts: 5,716

Re: Eine Liste mit allen secondary Strassen in Berlin aus OSM extrahieren?

Willy909 wrote:

ich würde gerne eine Liste mit allen Secondary bzw. eine Liste mit allen Primary Straßen aus OSM extrahieren.
Diese Liste würde ich gerne mit den Straßen Tags (z.B. Namen) ergänzen und in einem Wiki anzeigen.
Wenn möglich mit ein Group By damit ich nicht die selbe Straße 100 mal in der Liste habe, weil diese gesplittet wurde.
...

Bedenke bitte, dass gleiche Straßennamen nicht zwingend bedeuten, dass das eine zusammengehörige Straße ist. Innerhalb einer Ortschaft, mag das ja noch gelten, wenn du jedoch auf Landkreisebene oder größer gehst, ist die Wahrscheinlichkeit, dass es Haupt-/Dorfstraßen (um mal zwei sehr häufige Namen zu nehmen) in mehreren Orten gibt, ziemlich groß.

Es ist keineswegs trivial, herauszufinden, welche Straßenteile zusammengehören und welche nicht.
So kann "Group By" bei großen Gebieten ganz schön in die Irre führen.

Edbert (EvanE)

Offline

#6 2012-07-30 09:01:45

toc-rox
Member
From: Münster
Registered: 2011-07-20
Posts: 2,357
Website

Re: Eine Liste mit allen secondary Strassen in Berlin aus OSM extrahieren?

Vielleicht hilft dir das:

perl opaQuery.pl "way [highway=primary] (52.3, 13.0, 52.7, 13.8); out meta;"

Im Ergebnis erhältst du dann sowas:

...
  <way id="15971193" version="15" timestamp="2012-01-15T08:14:00Z" changeset="10395320" uid="66391" user="geozeisig">
    <nd ref="160493838"/>
    <nd ref="160493831"/>
    <tag k="bridge" v="yes"/>
    <tag k="highway" v="primary"/>
    <tag k="layer" v="1"/>
    <tag k="maxspeed" v="50"/>
    <tag k="name" v="Schloßbrücke"/>
    <tag k="oneway" v="yes"/>
    <tag k="postal_code" v="10117"/>
    <tag k="ref" v="B 2;B 5"/>
    <tag k="wikipedia:de" v="Schlossbrücke_(Berlin-Mitte)"/>
  </way>
...

Gruß Klaus

PS: Die Bounding-Box ist recht "großzügig" gewählt.

Offline

#7 2012-07-30 18:33:42

Marqqs
Member
Registered: 2011-01-01
Posts: 724

Re: Eine Liste mit allen secondary Strassen in Berlin aus OSM extrahieren?

Um die Verwirrung zu vergrößern, hier noch eine Methode:  :-)

- Download von berlin.osm.pbf von geofabrik.de
- Umwandeln ins .o5m-Format mit osmconvert
- Filtern mit osmfilter --keep="highway=secondary"
- Erstellen einer CSV-Tabelle mit osmconvert --csv="name"
- Beseitigen von doppelten Zeilen mit sort -u


EvanE wrote:

Bedenke bitte, dass gleiche Straßennamen nicht zwingend bedeuten, dass das eine zusammengehörige Straße ist. Innerhalb einer Ortschaft, mag das ja noch gelten, wenn du jedoch auf Landkreisebene oder größer gehst, ist die Wahrscheinlichkeit, dass es Haupt-/Dorfstraßen (um mal zwei sehr häufige Namen zu nehmen) in mehreren Orten gibt, ziemlich groß.

Ja! Grad in Berlin gibt es unterschiedliche Straßen mit gleichem Namen in unterschiedlichen Stadtteilen - soweit ich mich erinnere...

Offline

#8 2012-07-31 10:11:58

Willy909
Member
Registered: 2012-07-29
Posts: 9

Re: Eine Liste mit allen secondary Strassen in Berlin aus OSM extrahieren?

Vielen Dank für die vielen Vorschläge.
Ich habe natürlich eine ganze Menge getestet mit den vorgeschlagenen Tools Osmosis und OSMConvert.
Das Ergebnis war nicht annähernd zufriedenstellend, da haufenweise Nodes im Resultat aufgetaucht sind und ich diese nicht ausschließen konnte.


Werde es nun mal mit  OSMFilter ausprobieren. Gebe dann mal feedback.

Offline

#9 2012-07-31 14:48:44

wambacher
Member
From: Schlangenbad/Wambach, Germany
Registered: 2009-12-16
Posts: 16,769
Website

Re: Eine Liste mit allen secondary Strassen in Berlin aus OSM extrahieren?

Willy909 wrote:

Vielen Dank für die vielen Vorschläge.
Ich habe natürlich eine ganze Menge getestet mit den vorgeschlagenen Tools Osmosis und OSMConvert.
Das Ergebnis war nicht annähernd zufriedenstellend, da haufenweise Nodes im Resultat aufgetaucht sind und ich diese nicht ausschließen konnte.


Werde es nun mal mit  OSMFilter ausprobieren. Gebe dann mal feedback.

prima, dass du voran kommst.
Bitte beachte aber den "harmlosen" Hinweis von Edbert: Strassennamen sind in Berlin definitiv mehrfach vorhanden. Und nicht etwa als Teilstücke einer Strasse sondern es sind verschiedenen Strassen in unterschiedlichen Stadtteilen/Bezirken. Da bekommst du ein grösseres Problem, als du dir das jetzt vorstellen kannst.

Da kommst  du eigentlich nur mit geographischen Informationen (welche Koordinaten?, sind die beiden Teilstücke miteinander verbunden? Liegen sie im gleichen Bezirk? u.s.w.) weiter.
Und wenn ich das richtig sehe, schmeisst du diese "lebensnotwendigen" Informationen schon ganz am Anfang raus oder ignorierst sie zumindest.

Gruss
Walter

Offline

#10 2012-07-31 15:35:08

toc-rox
Member
From: Münster
Registered: 2011-07-20
Posts: 2,357
Website

Re: Eine Liste mit allen secondary Strassen in Berlin aus OSM extrahieren?

Beispiel: Die "Friedrichstrasse" gibt es mindestens dreimal in Berlin.

Gruß Klaus

Offline

#11 2012-07-31 20:40:44

Willy909
Member
Registered: 2012-07-29
Posts: 9

Re: Eine Liste mit allen secondary Strassen in Berlin aus OSM extrahieren?

Also ich komme nicht weiter, weil auch osmfilter mir die ganzen Nodes ausgibt.
Und wegen der reichweiten Hilfe von euch will noch ein wenig mehr Licht in mein Vorhaben bringen.

Nehmen Wir an ich möchte eine Liste von allen als Highway=motorway definierten Straßen in Berlin/Brandenburg erfassen.
Als Ausgabe möchte ich jede Straße nur einmalig in der Ausgabe haben. In Berlin/Brandenburg wäre das eine Liste die in etwa so aussieht:

REF
A113
A115
A100
A10
A11
A12
A13
....

Natürlich wären der ref_name (z.B. von A100 reg_name: Berliner Stadtring) sehr interessant. Aber kein muss.
Hört sich einfach an. Aber die Ausgabe in der CSV Datei ist voll mit Nodes, die ich eigentlich ausgeschlossen habe.

Ich werde das selbe auch für als Primary definierte Straßen benötigen. Aber erstmal mit etwas einfachem starten.

Eine CSV Datei kriege ich dank eurer Unterstützung bereits ohne Problem hin.

Offline

#12 2012-07-31 22:09:25

wambacher
Member
From: Schlangenbad/Wambach, Germany
Registered: 2009-12-16
Posts: 16,769
Website

Re: Eine Liste mit allen secondary Strassen in Berlin aus OSM extrahieren?

Willy909 wrote:

Also ich komme nicht weiter, weil auch osmfilter mir die ganzen Nodes ausgibt.
Und wegen der reichweiten Hilfe von euch will noch ein wenig mehr Licht in mein Vorhaben bringen.

.... Aber die Ausgabe in der CSV Datei ist voll mit Nodes, die ich eigentlich ausgeschlossen habe.

ein wenig mehr Licht wäre schon besser: Wie machst du ganz genau welche Abfrage mit welcher Software und wie sieht dann das Ergebnis aus?
Wir - zumindest ich- tappen hier noch mächtig im Dunkeln.

Ausser der Vermutung, dass du es eventuell mit osmfilter machst, ham 'mer garnix.

Gruss
walter

Offline

#13 2012-07-31 22:16:40

EvanE
Member
Registered: 2009-11-30
Posts: 5,716

Re: Eine Liste mit allen secondary Strassen in Berlin aus OSM extrahieren?

Willy909 wrote:

Also ich komme nicht weiter, weil auch osmfilter mir die ganzen Nodes ausgibt.
Und wegen der reichweiten Hilfe von euch will noch ein wenig mehr Licht in mein Vorhaben bringen.

... Aber die Ausgabe in der CSV Datei ist voll mit Nodes, die ich eigentlich ausgeschlossen habe.  ...

Ein Weg wird durch eine geordnete Liste seiner Knoten definiert.
Wenn du also Wege willst, brauchst du deren Knoten. Ohne die Knoten gibt es keine Lokalisierung!

Wenn du nur die Namen und ggfs. die Referenznummer von Wegen willst, sieht das anders aus.
Aber wie gesagt, ohne die Knoten gibt es keine Koordinaten und ein Weg ohne Kenntniss der Knoten (inklusive der Koordinaten) ist kein sinnvoll weiter bearbeitbares Geo-Objekt mehr.

Da die Programme osmconvert und osmfilter mit Geo-Objekten arbeiten, kannst du mit denen die Knoten der Wege nicht loswerden. Das musst du notfalls mit einen Zeilen-Editor als Nachbearbeitung erledigen.

Edbert (EvanE)

Offline

#14 2012-07-31 23:35:42

moenk
Member
From: N52.466 E13.335
Registered: 2012-04-02
Posts: 493
Website

Re: Eine Liste mit allen secondary Strassen in Berlin aus OSM extrahieren?

Moin,

vielleicht probieren wir es mal so:

osm=# select distinct tags->'name' as strasse from ways where tags->'highway'='secondary' and tags->'name' like 'Y%';
         strasse
----------------------
 Yorckstraße
 Yitzhak-Rabin-Straße
 Yorckplatz
 Ysenburgstraße
 Ysenburger Straße
 York-Ring
(6 rows)

osm=#

Ich hab mal nur die mit Y* genommen, sonst werden das so viele ;-)

Meinst Du sowas?

LG,

-moenk

Offline

#15 2012-08-01 01:22:40

wambacher
Member
From: Schlangenbad/Wambach, Germany
Registered: 2009-12-16
Posts: 16,769
Website

Re: Eine Liste mit allen secondary Strassen in Berlin aus OSM extrahieren?

moenk wrote:

Moin,

vielleicht probieren wir es mal so:

osm=# select distinct tags->'name' as strasse from ways where tags->'highway'='secondary' and tags->'name' like 'Y%';
         strasse
...

womit wir wieder bei meiner ersten Antwort  wären:  http://forum.openstreetmap.org/viewtopi … 31#p260431

sql kann willy ja, lesen wohl nicht sad

dennoch Danke, Moenk

p.s. das Doppelgängerproblem scheint ja nicht soooo wichtig zu sein.

Last edited by wambacher (2012-08-01 01:25:36)

Offline

#16 2012-08-01 08:53:41

Marqqs
Member
Registered: 2011-01-01
Posts: 724

Re: Eine Liste mit allen secondary Strassen in Berlin aus OSM extrahieren?

Hallo!

Falls es noch nicht geklappt hat, der Weg funktioniert:

wget download.geofabrik.de/osm/europe/germany/berlin.osm.pbf -O berlin.pbf

./osmconvert berlin.pbf -o=berlin.o5m

./osmconvert berlin.pbf --all-to-nodes -o=berlin_nodes.o5m

./osmfilter berlin_nodes.o5m --keep="highway=secondary" -o=berlin_secondary.o5m

./osmconvert berlin_secondary.o5m --csv="name" -o=berlin_secondary.csv

sort -u berlin_secondary.csv >berlin_secondary_sorted.csv

Natürlich besteht dabei das Problem mit Namen, die mehrfach in unterschiedlichen Stadtteilen vorkommen. Diese Namen erscheinen jeweils nur einmal in der Liste. Um das in den Griff zu kriegen, müsste man die Koordinaten mit ausgeben und dann entsprechend behandeln. Dazu müsste --csv="name" erweitert werden: --csv="name @lon @lat"

Falls Linux verwendet wird, lassen sich einige der Kommandos verbinden, so dass nicht so viele Einzelschritte notwendig sind. Im Prinzip ist das aber egal, da die Verarbeitungszeit insgesamt auch nur bei wenigen Sekunden liegt.

Grüße
Markus

Offline

#17 2012-08-08 19:08:10

Willy909
Member
Registered: 2012-07-29
Posts: 9

Re: Eine Liste mit allen secondary Strassen in Berlin aus OSM extrahieren?

Entschuldigt das ich erst jetzt antworte...

@Marqqs: Dein Batch ist GENAU was ich machen wollte.  Das Ergebnis ist super! Danke!
Zwar funktioniert die SORT Funktion auf Windows nicht, aber damit kann ich leben.

Es wäre toll wenn mir jemand folgende Zeilen etwas erklären könnte, damit meine Wissenslücken geschlossen werden:

./osmconvert berlin.pbf -o=berlin.o5m

./osmconvert berlin.pbf --all-to-nodes -o=berlin_nodes.o5m

Warum konvertierst Du in das o5m Format und in der zweiten Zeile gleich danach noch einmal?
Was ganz genau macht der Parameter "--all-to-nodes"?

Vielen Dank nochmal für die ausführliche Hilfe soweit.
Hatte schon etwas bange das solch eine Frage hier nichts zu suchen hätte...

Offline

#18 2012-08-08 19:44:21

chris66
Member
From: Germany
Registered: 2009-05-24
Posts: 10,128

Re: Eine Liste mit allen secondary Strassen in Berlin aus OSM extrahieren?

Willy909 wrote:

Zwar funktioniert die SORT Funktion auf Windows nicht, aber damit kann ich leben.

-u weglassen, also sort datei > datei.sorted

osmconvert -h 
--all-to-nodes            convert ways and relations to nodes

Dabei werden aus FlächenPOIs NodePOIs generiert.

Chris


Mapper aus dem Münsterland.

Offline

#19 2012-08-08 19:47:47

Marqqs
Member
Registered: 2011-01-01
Posts: 724

Re: Eine Liste mit allen secondary Strassen in Berlin aus OSM extrahieren?

Hallo Willy,
freut mich, dass es klappt!

Willy909 wrote:
./osmconvert berlin.pbf -o=berlin.o5m

./osmconvert berlin.pbf --all-to-nodes -o=berlin_nodes.o5m

Warum konvertierst Du in das o5m Format und in der zweiten Zeile gleich danach noch einmal?

Gute Frage. :-) Wahrscheinlich gingen das Umwandeln in das andere Format und das Umwandeln in Knoten auch in einer Zeile, aber ich wollte das Beispiel bewusst nicht verkomplizieren und hab es in Einzelschritten hingeschrieben. Unter Linux kann man den kompletten Vorgang wahrscheinlich in zwei Zeilen zusammenfassen.

Willy909 wrote:

Was ganz genau macht der Parameter "--all-to-nodes"?

Das ist am besten hier beschrieben, glaub ich:

https://wiki.openstreetmap.org/wiki/DE: … _umwandeln

Last edited by Marqqs (2012-08-08 19:54:52)

Offline

#20 2012-08-08 19:50:25

SunCobalt
Member
From: Eislingen
Registered: 2010-01-09
Posts: 3,810

Re: Eine Liste mit allen secondary Strassen in Berlin aus OSM extrahieren?

Marqqs wrote:

Das ist am besten hier beschrieben, glaub ich:

http://www.mikrocontroller.net/topic/266562

*Hüstl* sicher?


Thomas

Offline

#21 2012-08-08 20:02:37

Marqqs
Member
Registered: 2011-01-01
Posts: 724

Re: Eine Liste mit allen secondary Strassen in Berlin aus OSM extrahieren?

SunCobalt wrote:

*Hüstl* sicher?

Oh, danke! Da war ich falsch abgebogen. :-)
Habs korrigiert.

Zum "Sort" unter Windows: das "-u" bewirkt unter Linux, dass jeder Name nur einmal in der Liste auftaucht. Alternativ könntest du auch die Statistik-Funktion von osmfilter verwenden:

./osmfilter berlin_nodes.o5m --keep="highway=secondary" --out-key=name >berlin_secondary_sorted.txt

Damit kriegst du in der ersten Spalte sogar noch die Anzahl des Auftretens.

Offline

#22 2012-08-08 22:42:22

Willy909
Member
Registered: 2012-07-29
Posts: 9

Re: Eine Liste mit allen secondary Strassen in Berlin aus OSM extrahieren?

Ohh man...

das mit dem "--all-to-nodes" hätte ich echt auch selber rausbekommen können.
Steht wunderbar erklärt auf der osmconvert  wiki page.


Das mit der Statistikfunktion wollte ich sowieso nochmal testen. Guter Tip.

Danke für die Geduld :-)

Offline

Board footer

Powered by FluxBB