Kombinieren von Polygonen und Berechnen ihrer Fläche (d. h. Anzahl von Zellen) in R

8

Ich habe ein einfaches Raster (erstellt mit R-Paket: Raster). Mit der Funktion "rasterToPolygons" erhalte ich Polygone aller Rasterzellen, die den Wert "1" enthalten:

%Vor%

Ich benutze "dissolve = T" nicht, um zu vermeiden, dass alle Polygone zu einem großen Polygon verschmolzen werden. Stattdessen möchte ich einen neuen SpatialPolygonsDataFrame erhalten, in dem alle Polygone kombiniert werden, die eine Kante oder einen Punkt teilen. Polygone, die klar getrennt sind, sollten als einzelne Polygone identifizierbar sein. Basierend auf dem neuen SpatialPolygonsDataFrame möchte ich die Größe der kombinierten Polygone wie folgt analysieren:

%Vor%

Meine Frage ist zweifach: 1) Wie kombiniere ich Polygone, die eine Kante oder einen Punkt teilen? 2) Wie erhalten Sie diese Informationen in einem Format, das die Analyse der Bereiche der kombinierten Polygone ermöglicht? Vielen Dank für Ihr Feedback.

    
Alex Z 18.12.2013, 13:12
quelle

3 Antworten

7

Sie könnten zuerst raster::clump() verwenden, um Cluster verbundener Rasterzellen zu identifizieren und dann rasterToPolygons() anwenden, um diese Zellen zu "polygonisieren". (Beachten Sie jedoch, dass der Bereich jedes Clumps direkt aus RasterLayer berechnet werden kann, ohne ihn in ein SpatialPolygonsDataFrame zu konvertieren, wie unten gezeigt):

%Vor%

    
Josh O'Brien 18.12.2013, 16:52
quelle
3

Das rgeos -Paket enthält viele Polygon-Manipulationstools. gUnion wird zusammen berühren Polygone:

%Vor%

    
Simon O'Hanlon 18.12.2013 13:24
quelle
2

rasterToPolygons() ist eine rechenintensive Operation. Wenn man also davon ausgeht, dass das CRS eben ist, würde ich sagen:

%Vor%

Für lon / lat würde ich verwenden:

%Vor%     
RobertH 18.12.2013 17:41
quelle

Tags und Links