Also habe ich ein spatialpolygons Objekt in R; aber ich bin mir nicht sicher, warum ich nicht in der Lage bin, den Bereich "Bereich" von ihm abzurufen.
Hier ist meine R-Sitzung:
%Vor% Zunächst sollten Sie sich darüber im Klaren sein, dass der @area
-Slot keine zuverlässige Quelle für Informationen über den tatsächlichen Bereich eines SpatialPolygons*
-Objekts ist. Wie in ?"Polygons-class"
angegeben, wird der Slot @area
nur als Ergänzung zum Plotten verwendet (verhindert, dass kleinere Polygone von größeren Polygonen überstrichen werden) und berücksichtigt die Projektion nicht und berücksichtigt nicht richtig Löcher in Polygonen.
Um genaue Bereiche zu erhalten, sollten Sie stattdessen rgeos::gArea()
für Layer mit projizierten Koordinatenreferenzsystemen oder geosphere::areaPolygon()
für diejenigen in Koordinatensystemen mit relativ langen Koordinaten (d. h. CRS(+proj=longlat)
) verwenden.
Wenn diese Einschränkungen aus dem Weg geräumt sind, zeigt das folgende Beispiel, wie Sie den Inhalt der @area
Slots erhalten können, wenn Sie sie wirklich wollen.
Die Hauptkomplikation besteht darin, dass der Bereichssteckplatz zum Objekt Polygon gehört und nicht zum Objekt SpatialPolygons (das Objekt Polygon ) ein Element). Sie müssen also zuerst das SpatialPolygons -Objekt durchsuchen, um es zu den einzelnen Polygon -Objekten zu extrahieren.
Wenn Sie das getan haben, können Sie einfach den Operator @
verwenden, um den Inhalt des Bereichs-Slots zu extrahieren.
Im folgenden Beispiel wird das SpatialPolygons -Objekt verwendet, das in Abschnitt 7 von sp
Paketvignette (Warnung, pdf) :
Sie können einen Bereich mit Funktionen im Paket rgeos
berechnen, Beispiele unten mit Joshs Beispieldaten. Dies könnte sinnvoller sein, da der Slot area
nur zum Plotten dient.
Alles auf einmal:
%Vor%Das verwendete Koordinatensystem sollte berücksichtigt werden, dies ist nur ein roher geometrischer Bereich.
Die Hilfeseiten diskutieren den Slot area
.
%Vor%Beachten Sie, dass sich dieser Wert möglicherweise von den Werten unterscheidet Bereich "Bereich" der Klasse "Polygone", da dieser Wert nicht subtrahieren Sie den Bereich von Löchern in der Geometrie.
'Bereich': Objekt der Klasse '' numerisch ''; die Brutto-Gesamtfläche der Polygonliste, aber nicht doppelt zählende Löcher (geändert von 0.9-58 - Inseln werden summiert, Löcher werden eher ignoriert als subtrahiert); Diese Werte werden verwendet, um sicherzustellen, dass Polygone einer kleineren Fläche werden nach Polygonen von a dargestellt größere Fläche, nicht die Projektion als Objekte davon respektieren Klasse hat keine Projektion definiert