【问题标题】:Remove "time" dimension from RasterBrick R从 RasterBrick R 中删除“时间”维度
【发布时间】:2016-09-08 22:04:28
【问题描述】:

鉴于以下情况:

library(raster)
r <- raster(ncol=10, nrow=10)
s <- stack(lapply(1:3, function(x) setValues(r, runif(ncell(r)))))
s <- setZ(s, as.Date('2000-1-1') + 0:2,name="time")
s
getZ(s)

如何从s 中删除“time”?

我之所以要删除“time”是因为我得到了错误,而croppinga RasterStack P 类似于s:

cr <- crop(P, extent(Germany),snap="out")

NOTE: rgdal::checkCRSArgs: no proj_defs.dat in PROJ.4 shared files

Error in R_nc4_def_var_float: NetCDF: String match to name in use
Name of variable that the error occurred on: "time"
I.e., you are trying to add a variable with that name to the file, but it ALREADY has a variable with that name!
  [1] "----------------------"
[1] "Var:  time"
[1] "Ndims:  3"
[1] "Dimids: "
[1] 2 1 0
Error in ncvar_add(nc, vars[[ivar]], verbose = verbose, indefine = TRUE) :
  Error in ncvar_add, defining var time

如果“time”维度不是问题,有什么办法可以解决这个错误?

感谢您对此的看法。

【问题讨论】:

  • 奇怪!我发现将rasterstack 写入.nc,然后使用brick 导入它可以抑制错误。这是一个痛苦的过程,因为我必须将所有文件写入.nc。希望有一种简单的方法将rasterstack 转换为rasterbrick?
  • 有一个简单的方法,但你能澄清你的问题吗? P (show(P)) 是什么,你是如何创建它的?文件是否可用。你能用terra运行同样的代码吗?

标签: r time-series raster


【解决方案1】:

您可以尝试在 setZ 函数中设置不同的名称。裁剪栅格时,会创建一个名为“time”的新变量,并且无法使用两个同名变量创建新的 rasterbrick。

我在尝试导出裁剪的栅格时遇到了同样的问题。我不得不将 de 'varname' 从“时间”更改为其他内容(例如“日期”)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-23
    • 2021-02-20
    • 2012-03-18
    相关资源
    最近更新 更多