【问题标题】:Calculate zonal statistics in R as in GIS像在 GIS 中一样计算 R 中的区域统计数据
【发布时间】:2018-04-20 08:04:46
【问题描述】:

我在一个文件夹中有多个栅格。我需要在多边形形状文件(有更多 2500 个多边形)上提取这些栅格中的每一个的平均值。

我遇到了两个函数 zonalextract。它说 extract 也可以用于点、线和多边形。这是唯一的区别吗? (是/没有预期)

如何从这些多个栅格中提取平均值并根据这些提取的平均值的文件名指定不同的列名?

编辑::

我在某处找到了一个代码并实现了它。但这需要很长时间,而且一点进展都没有。

grids <- list.files("my_path", pattern = "*.tif$")

#check the number of files in the raster list (grids)
length <- length(grids)

#read-in the polygon shapefile
poly <- readShapePoly("my_path/supplimentY.shp")

#create a raster stack
s <- stack(paste0("my_path/", grids))

#extract raster cell count (sum) within each polygon area (poly)
for (i in 1:length(grids)){
  ex <- extract(s, poly, fun='mean', na.rm=TRUE, df=TRUE, weights = TRUE)
# the code doesnot progress from here onwards. 
# i checked it by adding this line:: print(i)

}

#write to a data frame
dfr <- data.frame(ex)

【问题讨论】:

    标签: r raster


    【解决方案1】:

    您不需要循环(您在每次迭代中重复相同的操作!)。

    应该是这样的:

    library(raster)
    
    ff <- list.files("my_path", pattern = "\\.tif$", full=TRUE)
    s <- stack(ff)
    
    poly <- shapefile("my_path/supplimentY.shp")
    
    ex <- extract(s, poly, fun='mean', na.rm=TRUE, df=TRUE, weights = TRUE)
    

    【讨论】:

    • 我已经堆叠了 15 个栅格并按照您的建议运行代码。它需要永远。我不知道里面发生了什么,R只是忙。 Shapefile 有 2796 个多边形。在 QGIS 中执行相同操作时,每个栅格通常需要 2 分钟。提取功能需要这么长时间是否正常?我相信 R 一定要快得多。
    • 你看我的评论了吗?和我关于这个stackoverflow.com/questions/50006421/…的问题
    • 速度很慢。下一版本的栅格(目前在 CRAN 审批流程中)应该会显着提高速度。
    • 你可以试试exactexctract更快的计算github.com/isciences/exactextractr
    • 是,或terra::zonalterra::extract
    【解决方案2】:

    我使用相同的代码来计算区域边界的气候学区域平均值,我花了 5-6 分钟来处理 2736 层栅格数据。

        layers <- length(clim)
            for (i in 1:length(clim)) {
         ex <- extract(clim, shpwb, fun=mean, na.rm=TRUE, df=TRUE)
         }
    
         df <- data.frame(ex)
    
         write.csv(df, file = "E:/Central University of Jharkhand/3rd Semester/Climatology/R Studio/CSV.csv")
    

    【讨论】:

      猜你喜欢
      • 2021-08-06
      • 1970-01-01
      • 1970-01-01
      • 2018-10-26
      • 1970-01-01
      • 2023-01-05
      • 1970-01-01
      • 1970-01-01
      • 2015-08-31
      相关资源
      最近更新 更多