답변:
다음은 예제 코드입니다. 모든 래스터를 처리하기 위해 루프에서 작동하도록이 코드를 적용하는 것이 매우 간단합니다. 래스터가 공통 범위와 해상도를 공유하는 경우 래스터 스택을 만들고 스택의 밴드를 반복 할 수 있습니다. 디렉토리에 모든 래스터를 포함하는 벡터를 특정 형식으로 만들려면 "list.files"를 사용하여이 벡터를 스택에 전달할 수 있습니다.
예:
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)
다각형을 통해 어떤 값을 할당해야합니까?