rasterFromXYZ缺少需要TRUE/FALSE的值



我收到了一些来自R光栅包中rasterFromXYZ函数的奇怪错误消息。以下是的示例

library(raster)
xyz <- data.frame(x = c(5.463636, 5.481818, 5.5), y = c(51.42727, 51.42727, 51.42727), z = c(1.2,1.3,1.6))
r <- rasterFromXYZ(xyz)
##error
Error in if (nc > (2^31 - 1)) return(FALSE) : 
missing value where TRUE/FALSE needed
In addition: Warning message:
In min(dy) : no non-missing arguments to min; returning Inf
##specifying the resolution as 1
r <- rasterFromXYZ(xyz, res = 1)
##different error
Error in rasterFromXYZ(xyz, res = 1) : x cell sizes are not regular

x坐标是完全规则的。我做错了什么?

x坐标可以,但只有一个唯一的y坐标值。所以没有办法猜测垂直分辨率。

xyz
#         [,1]     [,2] [,3]
#[1,] 5.463636 51.42727  1.2
#[2,] 5.481818 51.42727  1.3
#[3,] 5.500000 51.42727  1.6

如果将结果设置为与x坐标不匹配的1,但可以执行

rasterFromXYZ(xyz, res=c(NA, 1))
#class      : RasterLayer 
#dimensions : 1, 3, 3  (nrow, ncol, ncell)
#resolution : 0.018182, 1  (x, y)
#extent     : 5.454545, 5.509091, 50.92727, 51.92727  (xmin, xmax, ymin, ymax)
#crs        : NA 
#source     : memory
#names      : layer 
#values     : 1.2, 1.6  (min, max)

开发版本现在给出了一个更好的错误消息:

r <- rasterFromXYZ(xyz)
#Error in rasterFromXYZ(xyz) : more than one unique y value needed

最新更新