我正在尝试对随机点进行采样,以用作物种分布模型的背景。我使用的是 worldclim 和 soilgrids 的 30 秒预测器。大多数采样的随机点都在海洋上,就好像这些单元格中有值,位于我的屏蔽区域之外。
这是我的代码:
bg<-as.data.frame(sampleRandom(env.pred[[1]], size=10000, na.rm=F, xy=TRUE))`
env.pred 是一个栅格堆栈,所有预测变量都被屏蔽:
> pred.mask
class : RasterBrick
dimensions : 21600, 43200, 933120000, 24 (nrow, ncol, ncell, nlayers)
resolution : 0.008333333, 0.008333333 (x, y)
extent : -180, 180, -90, 90 (xmin, xmax, ymin, ymax)
crs : +proj=longlat +datum=WGS84 +no_defs
source : r_tmp_2024-05-03_142200_7224_49931.grd
names : bio1, bio10, bio11, bio12, bio13, bio14, bio15, bio16, bio17, bio18, bio19, bio2, bio3, bio4, bio5, ...
min values : 9.283334, 11.466667, 6.466667, 502.000000, 58.000000, 0.000000, 5.105296, 157.000000, 1.000000, 79.000000, 1.000000, 5.566667, 36.323528, 86.614578, 16.600000, ...
max values : 26.15417, 27.68333, 24.81667, 3249.00000, 403.00000, 163.00000, 103.06243, 1157.00000, 549.00000, 1157.00000, 841.00000, 14.12500, 78.41881, 465.92282, 33.30000, ... `
当我尝试 na.rm=T 时,我只得到 61 分。
有人经历过这种情况吗?
我的期望是所有采样点都在我的掩模区域内。
我认为使用 na.rm 得到的值要少得多,因为它会在采样之后删除 NA 值,而不是首先不对栅格中的 NA 值进行采样。我假设采样是在栅格的矩形范围内进行的,因此您的蒙版在此步骤中无法按预期工作。 尝试使用sampleRandom中的
ext
参数来限制采样的区域(掩模)。