【发布时间】:2017-01-17 14:49:07
【问题描述】:
我正在尝试按照代码构建此处描述的残差自协变量模型:https://github.com/jejoenje/PubsRexamples/blob/master/Crase_etal.R#L16
创建大型栅格空间后,在为栅格分配值时出现错误。我有 1000 个随机点要对栅格进行签名,因此有很多点没有数据 (NA)。有什么想法吗?
head(xy)
[,1] [,2]
[1,] 543510.0 6968620
[2,] 543570.0 6968620
[3,] 543570.0 6968560
[4,] 543599.9 6968560
[5,] 543510.0 6968530
[6,] 543389.9 6968470
head(xy_residuals)
[,1] [,2] [,3]
1 543510.0 6968620 -0.4257671
2 543570.0 6968620 -0.4541684
3 543570.0 6968560 -0.4310492
4 543599.9 6968560 -0.4649595
5 543510.0 6968530 -0.5506348
6 543389.9 6968470 -0.4928708
summary(xy)
X Y
Min. :538800 Min. :6931480
1st Qu.:540480 1st Qu.:6932860
Median :541350 Median :6935320
Mean :541529 Mean :6943218
3rd Qu.:542670 3rd Qu.:6954003
Max. :544290 Max. :6968620
# Define raster ymn, ymx, xmn and xmx from coordinates
# ncol=xmx-xmn nrow=ymx-ymn.
rast <- raster(ncol = 5490, nrow = 37140, ymn = 6931480, ymx = 6968620,
xmn = 538800, xmx = 544290)
rast
class : RasterLayer
dimensions : 37140, 5490, 203898600 (nrow, ncol, ncell)
resolution : 1, 1 (x, y)
extent : 538800, 544290, 6931480, 6968620 (xmin, xmax, ymin, ymax)
coord. ref. : NA
有问题的电话:
rast[cellFromXY(rast, xy)] <- xy_residuals[, 3]
.replace(x, i = i, value = value, recycle = 1) 中的错误: 如果大型 Raster 对象的长度不是 1 或要替换的像元数,则无法替换大型 Raster 对象中的值**
【问题讨论】:
-
cellFromXY(rast, xy)和xy_residuals[, 3]的长度匹配吗? -
是的。 xy 和 xy_residuals 都有 1000 行
-
我没主意了。在这一点上,如果您能提供一个可重现的示例(易于复制/粘贴),那就太好了。