Wie finde ich den durchschnittlichen Rasterwert eines durch ein Shapefile definierten Bereichs mit R?
19
Ich habe eine Reihe von Rasterbildern, die einen bestimmten Monat über die Jahre darstellen, und ich möchte mithilfe eines Shapefiles eine Zeitleiste der Durchschnittswerte eines Bereichs erstellen.
Wie extrahiere ich die Werte aus den Rastern und importiere sie in R, sodass ich sie verwenden kann?
Hier ist Beispielcode. Es ist ziemlich einfach, diesen Code so anzupassen, dass er in einer Schleife zur Verarbeitung aller Ihrer Raster funktioniert. Wenn Ihre Raster eine gemeinsame Ausdehnung und Auflösung haben, können Sie einen Raster-Stapel erstellen und die Bänder im Stapel durchlaufen. Um einen Vektor zu erstellen, der alle Raster in einem Verzeichnis in einem bestimmten Format enthält, können Sie "list.files" verwenden und diesen Vektor an stack übergeben.
Beispiel:
rlist=list.files(getwd(), pattern="img$", full.names=TRUE)
r <- stack(rlist)# Add required libraries
require(raster)
require(sp)
require(rgdal)# Set working directory, raster, in and out shapefiles
setwd("C:/test")
inshp="MyPolys"
outshp="PolyMeans"
rdata <-"Year2012.img"# Read polygon feature class shapefile
sdata <- readOGR(dsn=getwd(), layer=inshp)# Read raster
r <- raster(rdata)# Extract raster values to list object
r.vals <- extract(r, sdata)# Use list apply to calculate mean for each polygon
r.mean <- lapply(r.vals, FUN=mean)# Join mean values to polygon data
sdata@data <- data.frame(sdata@data, m2012=r.mean)# Write results
writeOGR(sdata, getwd(), outshp, driver="ESRI Shapefile", check_exists=TRUE,
overwrite_layer=TRUE)
data.frame(sdata@data, m2012=r.mean)
Datei habe : Woher weiß das Whch-Polygon, welchem Wert es zugewiesen werden soll?Liest das Shapefile in ein
SpatialPolygonsDataFrame
(readOGR
Funktion aus Paketrgdal
)Das Raster in ein
Raster
Objekt einlesen (raster
Funktion aus Paketraster
)Verwenden Sie
extract(raster, spdf)
, um die Gitterzellen unter jedem Polygon abzurufen. Dann rennmean
auf sie los.Wiederholen Sie diesen Vorgang über Ihren Satz von Rasterbildern ...
quelle