如何使用shapefile从RasterStackTS对象中提取栅格值?

时间:2015-07-17 09:09:33

标签: r extract r-raster

我有一个rasterstack,我需要使用shapefile从每个栅格中提取值。

我知道#"正常"非常容易rasterstack,但我有一个RasterStackTS对象。不幸的是,我必须管理一个RasterStackTS对象,因为我从先前的计算中获得了。

这是一个可重复的例子,取自Babak Naimi的website

library(rts)

# location of files
path <- system.file("external", package="rts")

# list of raster files:
lst <- list.files(path=path,pattern='.asc$',full.names=TRUE)

lst

#create a random shapefile over the raster extent
r_4_shp<- raster(lst[1])
shp <- rasterToPolygons(r_4_shp, fun=function(x){x>0.77})

#visualize the shp over the raster
plot(r_4_shp)
plot(shp, add=T)

# creating a RasterStack object
r <- stack(lst)

# corresponding dates to 4 rasters
d <- c("2000-02-01","2000-03-01","2000-04-01","2000-05-01") 

d <- as.Date(d)



# creating a RasterStackTS object:
rt <- rts(r,d)

rt

#try to extract raster values with the shapefile
sp_basin_mean <- extract(rt, shp)

1 个答案:

答案 0 :(得分:0)

我找到了答案here。 大多数栅格函数无法与RasterStackTS对象一起使用。 但是,栅格对象保留在插槽@raster中。实际上,这条线使用我之前发布的示例中的数据运行:

sp_basin_mean <- extract(rt@raster, shp)