R语言 在大型栅格堆栈上计算分位数时出错

mnemlml8  于 2023-02-06  发布在  其他
关注(0)|答案(1)|浏览(323)

我想得到R上一组堆叠的栅格图层中每个单元格的分位数。
我的栅格堆栈如下所示
尺寸:721、1440、1038240、18628(n行、n列、n单元、n层)
我运行以下代码行以获取每个像元的值为第25和第75百分位数的图层

qtiles <- raster::calc(RasterStack, fun=function(x){quantile(x, probs = c(0.25,0.75), na.rm=TRUE)})

出现以下错误:

Error in R_nc4_open: NETCDF: HDF error
Error in ncdf4::nc_open(x@file@name, suppress_dimvals = TRUE) :
  Error in nc_open trying to open file U:path/file1.nc (return_on_error= FALSE )

我怀疑这是因为层的数量,因为当我在netcdf文件的子集上尝试它时,它工作得很好,而且我在单独打开www.example.com时也没有问题。file1.nc separately.
有什么建议吗?

yqhsw0fo

yqhsw0fo1#

我怀疑你的一个文件被破坏了。你可以通过循环你所有的文件,打开它并对它做一些事情来找到它(一些实际上会读取单元格值的操作,如x * 1
你也可以试试效率更高的

library(terra)
x <- rast(vector of filenames)
q <- quantile(r, probs = c(0.25,0.75), na.rm=TRUE)

相关问题