【问题标题】:Extracting values from inside polygons raster r从内部多边形栅格r中提取值
【发布时间】:2019-02-07 03:05:42
【问题描述】:

我正在尝试从位于 http://prism.oregonstate.edu/ 的栅格网格(“bil”文件)中找到南达科他州各县的平均每日温度。我正在从“地图”包中获取县界。

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))

【问题讨论】:

    标签: r raster sp rgdal


    【解决方案1】:

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

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

    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 是您想要的栅格。

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

    【讨论】:

    • 你知道这是否是最快的方法吗?如果是这样,这将需要很长时间。
    • 看看velox 包。我没有任何个人经验,但看起来很有希望。另一种选择是栅格化多边形并通过索引提取值。
    • velox 包提速大概快了5倍左右,非常不错!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-10
    • 2021-05-22
    • 2021-01-20
    • 2021-06-05
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    相关资源
    最近更新 更多