【发布时间】:2019-11-30 02:06:51
【问题描述】:
我有三个栅格,例如r1,r2,r3。我想使用 rasterToPoints() 从这些栅格中创建一个空间点数据框。但问题是,我想在执行 rasterToPoints() 期间忽略任何包含至少一个 NA 的行。
library(raster)
r1 = raster(matrix(c(1,NA,2,3,4,5,NA,5,6), byrow = TRUE))
r2 = raster(matrix(c(1,2,2,NA,4,5,NA,5,64), byrow = TRUE))
r3 = raster(matrix(c(1,NA,2,3,56,5,54,5,6), byrow = TRUE))
r = stack(r1,r2,r3)
r_spdf = rasterToPoints(r, spatial = TRUE)
r_spdf@data
layer.1 layer.2 layer.3
1 1 1 1
2 NA 2 NA
3 2 2 2
4 3 NA 3
5 4 4 56
6 5 5 5
7 NA NA 54
8 5 5 5
9 6 64 6
如果单个单元格为 NA 并且输出如下所示,我想忽略 r_spdf@data 中的整行:
layer.1 layer.2 layer.3
1 1 1 1
2 2 2 2
3 4 4 56
4 5 5 5
5 5 5 5
6 6 64 6
随后 r_spdf@coords 将仅具有上述行的坐标,例如:
> r_spdf@coords
x y
[1,] 0.5 0.94444444
[2,] 0.5 0.72222222
[3,] 0.5 0.50000000
[4,] 0.5 0.38888889
[5,] 0.5 0.16666667
[6,] 0.5 0.05555556
【问题讨论】: