Wie bekomme ich ein Ozean-Shapefile aus einem sehr detaillierten Landflächen-Shapefile?

10

Ich suche nach einer Möglichkeit, ein Shapefile zu "invertieren". Ich möchte ein Shapefile mit den Kontinenten und Inseln in ein Shapefile mit Wasserpolygonen konvertieren. Das vorhandene Ozean-Shapefile von Natural Earth ist zu ungenau.

Als aktiver OSM-Mitarbeiter dachte ich, dass die Verwendung der vorhandenen Shapefiles von OSM für mich in Ordnung wäre. Diese sind viel genauer, aber aus GIS-Sicht sehr fehlerhaft. Mapserver kann jedoch damit umgehen, daher dachte ich, dass dies in Ordnung sein sollte. Diese Shapefiles, von denen einige hier http://metro.teczno.com/#coastline zu finden sind, sind sehr groß.

Ich habe ein Shapefile mit einem Polygon mit Weltgrenzen (-180 bis 180, -90 bis 90) erstellt. Dann habe ich versucht, die Bereiche aus meinem Shapefile für Weltgrenzen herauszuschneiden, in denen sich Landbereiche im anderen Shapefile befinden. Ich habe es mit QGIS versucht, Vektor-Tools -> Differenzfunktion. Nach 12 Stunden mit 100% CPU-Auslastung habe ich es gestoppt. Es wurde immer ein Fortschritt von 100% angezeigt. RAM war kein Problem.

Ich suche nach einer anderen Möglichkeit, die Landflächen aus einem "Weltpolygon" herauszuschneiden, vorzugsweise einer Linux-Befehlszeile.

Thomas
quelle
2
In ArcGIS wird der von Ihnen beschriebene Vorgang als Löschen bezeichnet. Es hört sich so an, als ob Sie nach einer Open-Source-Lösung suchen. Vielleicht wird die Suche nach diesem Begriff etwas ergeben. MapWindow sieht aus wie es ein Löschwerkzeug hat, aber die Diskussion hier legt nahe, dass es auch Einschränkungen haben könnte: mapwindow.org/phorum/read.php?4,20317
PolyGeo
2
Sie möchten Ihr Shapefile "Polygon mit Weltgrenzen (-180 bis 180, -90 bis 90)" in kleinere Teile aufteilen. Dann können Sie die Bereiche ausschneiden. Sie haben zwei wahrscheinliche Probleme: Zum einen verarbeiten Sie Daten gleichzeitig sowohl auf der Nord- als auch auf der Südhalbkugel. Zwei mögliche Probleme mit den Grenzen von -180/180. Versuchen Sie, Ihre Weltgrenzen in 4 kleinere Teile aufzuteilen, z. B.: Oben links, Oben rechts, Unten links, Unten rechts, der Welt.
Michael Markieta
Ich nehme an, als Sie Ihr Weltpolygon erstellt haben, haben Sie es in dasselbe System wie die Landdaten projiziert?
DJQ

Antworten:

6

Raster zur Rettung! Sie können diese Operation ausführen, indem Sie Ihr Shapefile in ein Raster konvertieren, die Invertierungsoperation ausführen und es wieder in einen Vektor konvertieren

  • Raster -> Konvertieren -> Rasterisieren. Ausgabeebene raster1
  • Öffnen Sie den Feldrechner und geben Sie den Ausdruck raster1 @ 1 = 0 ein
  • Raster -> Konvertieren -> Polygonisieren, Ausgabeebene ocean_polygons
  • Öffnen Sie die Attributtabelle, suchen Sie nach DN = 0, schalten Sie die Bearbeitung um, löschen Sie ausgewählte Features und speichern Sie sie. Was Ihnen übrig bleibt, sind Polygone für die Meeresgebiete.

Geben Sie hier die Bildbeschreibung ein

räumliche Gedanken
quelle
1

SAGA GIS (und viele andere wahrscheinlich auch) hat einen Befehl namens "Polygonschnitt". Erstellen Sie ein Polygon, das die ganze Welt enthält, und subtrahieren Sie Ihre Landpolygone davon. Also Methode 2 oder 3 in dieser Bibliothek.

Usage: saga_cmd libshapes_polygons "Polygon Intersection" -SHAPES_A <str> [-FIELD_A <str>] -SHAPES_B <str> [-FIELD_B <str>] -SHAPES_AB <str> [-METHOD <str>] [-SPLITPARTS]
  -SHAPES_A:<str>   Layer A
    Shapes (input)
  -FIELD_A:<str>    Attribute A
    Table field
  -SHAPES_B:<str>   Layer B
    Shapes (input)
  -FIELD_B:<str>    Attribute B
    Table field
  -SHAPES_AB:<str>  Intersection
    Shapes (output)
  -METHOD:<str>     Method
    Choice
    Available Choices:
    [0] Complete Intersection
    [1] Intersection
    [2] Difference (A - B)
    [3] Difference (B - A)
  -SPLITPARTS       Split Parts
    Boolean
johanvdw
quelle
0

Ein Raster ist möglicherweise zu datenintensiv, wenn Sie Details zu den Küstenlinien benötigen. Das gleiche Prinzip wie das von räumlichen Gedanken vorgeschlagene, aber die Verwendung einer Delaunay-TIN könnte eine Option sein?

AnserGIS
quelle
0

Diese Shapefiles könnten von Vorteil sein. Sie stammen vom ESRI Mapping Center und enthalten ziemlich genaue hydrologische und marine Merkmalsdaten.

Craig
quelle
0

Ich hatte aufgrund ihrer Komplexität nicht viel Erfolg beim Invertieren von OSM-Land-Shapefiles, es ist jedoch möglich, sowohl Land- als auch Ozean-Shapefiles aus den OSM-Rohdaten zu generieren. http://openstreetmapdata.com/data bietet Downloads von beiden an, die ich äußerst nützlich finde.

Ajashton
quelle