Yanıtlar:
İşte örnek kod. Bu kodu tüm rasterlerinizi işlemek için bir döngüde çalışacak şekilde uyarlamak oldukça basittir. Rasterleriniz ortak bir boyut ve çözünürlük paylaşıyorsa, bir raster yığını oluşturabilir ve yığındaki bantlar arasında döngü yapabilirsiniz. Bir dizindeki tüm rasterleri belirli bir biçimde içeren bir vektör oluşturmak için "list.files" komutunu kullanabilir ve bu vektörü yığmak üzere geçirebilirsiniz.
Misal:
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)
know whch çokgeni hangi değere atayacak?
Şekil dosyasını bir SpatialPolygonsDataFrame
( readOGR
paketten işlev rgdal
) olarak okuyun
Rasteri bir Raster
nesneye okuyun ( raster
paketten fonksiyon raster
)
extract(raster, spdf)
Her çokgenin altındaki ızgara hücrelerini almak için kullanın . Sonra mean
onlara koş .
Raster görüntü kümenizi tekrarlayın ...