x

Grenzen in Shapefiles umwandeln


  1. Grenzen in Shapefiles umwandeln · misterboo (Gast) · 21.12.2010 10:57 · [flux]

    Hallo,

    Ich bin neu in der Welt von OSM und habe gleich mal ein erstes Problem:

    Im OSM Inspector der geofabrik werden die Grenzen schön dargestellt und sind auch über den WFS Service als Vektordateien abrufbar.

    http://tools.geofabrik.de/osmi/?view=kr … 914&zoom=9

    Wie kann ich ich denn die Grenzen, die in OSM ja als Relations sind, selbst in Shapedateien umwandeln, wie genau macht dies die geofabrik ?

    Ich bin mittlerweile soweit, dass ich die OSM Daten in eine PostgreSQL schreiben kann, daraus dann die Pfade der Grenzen extrahieren kann, aber halt nur als Linien, nicht als komplette Fläche der einzelnen Gemeinden, Kreise oder Länder.

    Für eine einzelne Grenze, z.B eine Kreisgrenze mache ich das per Hand in JOSM, wähle die entsprechende Relation aus, exportiere sie als GPX Datei und mache daraus dann z.B in qgis eine Fläche.

    Allerdings möchte ich das gerne automatisieren, wie das die Geofabrik macht, nur da komme ich nicht weiter. Kann mir da jemand evt. weiterhelfen ?

    Grüsse

    Andreas


    • Re: Grenzen in Shapefiles umwandeln · mdk (Gast) · 21.12.2010 12:42 · [flux]

      Hallo Andreas

      erstmal herlich willkommen bei OpenStreetMap!

      Es ist schon einige Zeit her, dass ich das gemacht habe, aber grob läuft dass wie folgt ab:

      1.) Grenze als .OSM (XML) File erstellen. Ich habe dazu die Relation in JOSM heruntergeladen uns ALLES ausser den Ways gelöscht. Dazu hehören auch die Attribute aller Nodes und Ways und auch die Relation selber. Danach die einzelnen Wegstücke zu einem Poigon Verbinden (alle selektieren und "verbinden" - eine Kleinigkeit für JOSM). Zum Schlusss als Datei speichern. (Bitte nicht hochladen 😉)

      2.) Eventuell die Datei in einem Text-Editor säubern (alles bis auf den Grenz-Way und die Nodes entfernen)

      3.) Mit Osm2Poly (siehe http://wiki.openstreetmap.org/wiki/Osmo … le_Format) in ein Poligon-File umwandeln.

      Viel Spass

      mdk


    • Re: Grenzen in Shapefiles umwandeln · mdk (Gast) · 21.12.2010 12:44 · [flux]

      ups...

      Ich habe wohl Shape-File und Polygon-File durcheinander gebracht - sorry.

      Ich fürchte da muss dir ein anderer helfen.

      Grüsse

      mdk


    • Re: Grenzen in Shapefiles umwandeln · misterboo (Gast) · 21.12.2010 13:04 · [flux]

      Hallo,

      Ja das mit der Handarbeit in JOSM habe ich schon gemacht, wie gesagt das funktioniert, aber eben nur mit Handarbeit. Wenn ich nun alle Kreise in Deutschland haben möchte, wäre das ja viel zu viel Arbeit.

      Ich hatte bisher die OSM Datei mit osmosis in meine postgresql/postgis Datenbank importiert. Damit hatte ich als GIS Neuling allerdings meine Probleme, dann die Daten auch entschrechend abzufragen in Quantum GIS, das hat irgendwie nicht funktioniert.

      Ich bin gerade über dieses Blog Bericht gestolpert:

      http://blazejaksgis.wordpress.com/categ … antum-gis/

      Nun habe ich mal die OSM Datei mit osm2psql eingelesen und siehe da, das Programm wandelt scheinbar die relations beim Einlesen in die Datenbank schon in Polygone um. Damit konnte ich dann problemlos die Grenzen, z.B. die Kreiskrenzen mit adminlevel=6 abfragen und in qgis importieren als Polygone und dann dort als shapedatei speichern.

      Prima!

      Da ich aber neugierig bin will ich das mit der über osmosis hergestellten Datenbank auch hinbekommen. Kann mir da jemand weiterhelfen. Wenn ich das richtig verstanden habe, speichert osmosis die Daten eher so wie in der OSM Datei in den Tabellen der Datenbank, also auch als relations und eben nicht als Polygone wie osm2psql.

      Meine SQL Kenntnisse sind da noch nicht so gut, aber da gibt es doch sicher auch einen Weg, die Daten so abzufragen, dass ich Polygone habe für die Kreise in Deutschland z.B.

      Grüsse

      Andreas


    • Re: Grenzen in Shapefiles umwandeln · SunCobalt (Gast) · 21.12.2010 13:05 · [flux]

      analog dazu gibts auch osm2shp....3 verschieden Versionen

      http://wiki.openstreetmap.org/wiki/Shapefiles

      da warst Du 1 Sekunde schneller als ich ;-) genauso wie Du die Daten mit osm2pgsql in die DB reinbekomme hast, gibt es eine Funktion pgsql2shp in PostGIS.


    • Re: Grenzen in Shapefiles umwandeln · misterboo (Gast) · 21.12.2010 13:07 · [flux]

      Ja die Programme habe ich auch schon entdeckt, die funktionieren auch mit nodes und ways aber irgendwie nicht so richtig mit den Relations der Grenzen.


    • Re: Grenzen in Shapefiles umwandeln · misterboo (Gast) · 21.12.2010 13:14 · [flux]

      SunCobalt wrote:

      analog dazu gibts auch osm2shp....3 verschieden Versionen

      http://wiki.openstreetmap.org/wiki/Shapefiles

      da warst Du 1 Sekunde schneller als ich ;-) genauso wie Du die Daten mit osm2pgsql in die DB reinbekomme hast, gibt es eine Funktion pgsql2shp in PostGIS.

      Ja wie schon gesagt mit der von osm2psql erstellten Datenbank funktioniert es ja perfekt. Einfach die Polygone nach admin-level=6 filtern und ich habe schnell alle Kreise oder bei admin-level=8 alle Gemeinden in Deutschland als Polygone, perfekt.

      Wie gesagt interessiert es mich aus Neugier ob dies mit der mit osmosis hergestellten Datenbank auch funktioniert, scheinbar aber nicht so einfach.

      Was mich dann halt zu den Unterschieden zwischen osmosis und osm2psql führt, die ich momentan noch nicht so ganz verstehe.

      Die mit osmosis erstellte Datenbank kann ich ja wieder abfragen mit osmosis und dann auch wieder eine osm Datei erstellen. Das geht aber scheinbar nicht mit der mit osm2psql erstellten Datenbank oder wie kann ich daraus wieder ein OSM erstellen ?


    • Re: Grenzen in Shapefiles umwandeln · SunCobalt (Gast) · 21.12.2010 13:18 · [flux]

      sieht so als, als wäre das noch ein offenes Problem.

      http://code.google.com/p/osm2shp/issues/detail?id=4#c7

      hier auch

      http://wiki.openstreetmap.org/wiki/Osm2shape

      Aber einen Trumpf habe ich noch....melde mich dann nochmal


    • Re: Grenzen in Shapefiles umwandeln · misterboo (Gast) · 21.12.2010 13:24 · [flux]

      SunCobalt wrote:

      sieht so als, als wäre das noch ein offenes Problem.

      http://code.google.com/p/osm2shp/issues/detail?id=4#c7

      hier auch

      http://wiki.openstreetmap.org/wiki/Osm2shape

      Aber einen Trumpf habe ich noch....melde mich dann nochmal

      Wie schon gesagt das eigentliche Ziel, aus den OSM Dateien schnell und einfach POlygone der Grenzen (also z.B der Gemeinde oder Kreisgrenzen) zu bekommen, ist ja mittlerweile erledigt über osm2pqsl und funktioniert ja auch schnell und perfekt.

      Allerdings habe ich dann scheinbar das Problem, dass ich 2 verschiedene Datenbanken haben muss. Eine, die ich mit Osmosis erstellt habe, um daraus dann wieder osm Dateien zu erstellen und eine zweite Datenbank mit osm2psql erstellt um die Daten dann mit GIS Programmen wie qgis oder für Mapnik weiter zu verarbeiten.

      Eine einzige aktuell gehaltene Datenbank wäre mir da lieber.


    • Re: Grenzen in Shapefiles umwandeln · SunCobalt (Gast) · 21.12.2010 13:27 · [flux]

      das was Du mit osmsosis erstellt hast, ist keine Datenbank sondern eine xml Datei. Ich kann das Telefonbuch auch als xml Datei ablegen oder in eine Datenbank schieben.


    • Re: Grenzen in Shapefiles umwandeln · misterboo (Gast) · 21.12.2010 13:30 · [flux]

      SunCobalt wrote:

      das was Du mit osmsosis erstellt hast, ist keine Datenbank sondern eine xml Datei. Ich kann das Telefonbuch auch als xml Datei ablegen oder in eine Datenbank schieben.

      Nein, sicher ist das eine Datenbank die ich mit osmosis erstelle, hier die Anleitung dazu im Wiki

      http://wiki.openstreetmap.org/wiki/Osmo … tGIS_Setup


    • Re: Grenzen in Shapefiles umwandeln · SunCobalt (Gast) · 21.12.2010 13:35 · [flux]

      sorry, das habe ich wohl zu schnell gelesen. Wie dem auch sei, die Software wäre wahrscheinlich keine Option für Dich
      http://www.safe.com/products/desktop/pr … erview.php

      Die kann das direkt osm xml in shp umwandeln. Ich hätte auch gedacht, dass es da was einfacheres bzw kostenloses gibt.


    • Re: Grenzen in Shapefiles umwandeln · misterboo (Gast) · 21.12.2010 13:47 · [flux]

      SunCobalt wrote:

      sorry, das habe ich wohl zu schnell gelesen. Wie dem auch sei, die Software wäre wahrscheinlich keine Option für Dich
      http://www.safe.com/products/desktop/pr … erview.php

      Die kann das direkt osm xml in shp umwandeln. Ich hätte auch gedacht, dass es da was einfacheres bzw kostenloses gibt.

      Die Grenzen als Polygon gehen damit wohl auch nicht ebenso wie mit den anderen Programme (osm2shp) auch nicht oder zumindest noch nicht. Einfach weil die Grenzen ja nicht in der osm Datei als Polygon gespeichert sind sondern eben nur als relation, also nur mit der Bezug auf die ways, die daran beteiligt sind. Bisher scheint das nur osm2psql zu können und das ist wohl auch die Methode wie die Geofabrik das beim OSM Inspektor macht:

      http://tools.geofabrik.de/osmi/?view=kr … 15&zoom=10

      Allerdings habe ich jetzt das Problem wenn ich meinen Datenbestand aktuell halten möchte, dass ich 2 Datenbanken brauche. Eine (mit osmosis erstellt) um daraus wieder osm Dateien zu erstellen und eine (mit osm2pqsql erstellt) um die Daten für qgis oder für mapnik bereitzustellen.

      Bei einem recht großen Interessengebiet ist der Aufwand bei 2 entsprechend großen Datenbanken so natürlich enorm, daher wäre mir eine einzige Datenbank lieber, aber das scheint nicht zu gehen ?


    • Re: Grenzen in Shapefiles umwandeln · viw (Gast) · 21.12.2010 14:00 · [flux]

      Hallo Misterboo,

      wenn ich mich nicht täusche, so ist der Unterschied zwischen den beiden Datenbanken kleiner als mal denkt. Denn auch osm2pgsql benutzt Ossmosis. Die Datenbanken wiederum unterscheiden sich durch das Schema, welches ihnen beim anlegen mitgegeben wurde.
      Wenn dein Problem also nur im aktualisieren der Datenbank besteht und du keine weiteren Schweinereien mit den Daten vorhast, so empfehle ich dir den Artikel: http://wiki.openstreetmap.org/wiki/DE:H … ely_hstore
      darin beschrieben ist wie die Datenbank auf einer Linuxmaschine mit pg2sql initialisiert wird und anschließend mit Ossmosis aktuell gehalten werden kann. Diff-Files gibt es aber wohl nicht für Deutschland separat, sondern nur weltweit oder für ausgewählte andere Regionen.


    • Re: Grenzen in Shapefiles umwandeln · SunCobalt (Gast) · 21.12.2010 14:08 · [flux]

      misterboo wrote:

      SunCobalt wrote:

      sorry, das habe ich wohl zu schnell gelesen. Wie dem auch sei, die Software wäre wahrscheinlich keine Option für Dich
      http://www.safe.com/products/desktop/pr … erview.php

      Die kann das direkt osm xml in shp umwandeln. Ich hätte auch gedacht, dass es da was einfacheres bzw kostenloses gibt.

      Die Grenzen als Polygon gehen damit wohl auch nicht ebenso wie mit den anderen Programme (osm2shp) auch nicht oder zumindest noch nicht.

      Mir wurde gesagt, es geht und hier steht "polygon support yes" http://docs.safe.com/fme/html/FME_Reade … tm#osm.htm.

      Aber selber probiert habe ich es nicht und Du hast ja zumindest dafür eine Lösung. Für Dein anderes Problem wird sich auch noch jemand finden. Wenn nicht, würde ich auf der Mailingliste fragen. Aber warte noch ein wenig bis die Leute ausm Mittagsschlaf erwachen ;-)