从内部多边形栅格 r 中提取值

Extracting values from inside polygons raster r

我正在尝试从 http://prism.oregonstate.edu/ 处的栅格网格('bil' 文件)中查找南达科他州各县的平均日气温。我从 'maps' 包中获取县边界。

library(maps)
library(raster)
sd_counties <- map('county','south dakota')
sd_raster <- raster('file_path')

如何提取每个县内的网格单元?我想我需要将每个县变成它自己的多边形才能做到这一点,但是怎么做呢?然后,我应该能够执行以下操作。任何帮助将不胜感激。

values <- extract(raster, list of polygons)  
polygon_means <- unlist(lapply(values, FUN=mean))

我不熟悉 maps 包或 map 函数,但看起来它只是用于可视化,而不是地理空间操作。

虽然可能有一种方法可以将 map 对象转换为实际的多边形,但这里有一个简单的方法可以使用 rastergetData 函数:

library(raster)

usa_adm2 <- getData(country='USA',level=2)

sd_counties <- usa_adm2[grepl('South Dakota',usa_adm2$NAME_1),]

plot(sd_counties)

现在您可以使用 extract(r,sd_counties) 为每个县提取像素,其中 r 是您想要的栅格。

请注意,根据您需要提取的像素(和图层)数量,这可能需要一些时间。