raster::sampleRamdom 函数获取没有值的点(生成 NA)

问题描述 投票:0回答:1

我正在尝试对随机点进行采样,以用作物种分布模型的背景。我使用的是 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 分。

有人经历过这种情况吗?

我的期望是所有采样点都在我的掩模区域内。

r random raster maxent dismo
1个回答
0
投票

我认为使用 na.rm 得到的值要少得多,因为它会在采样之后删除 NA 值,而不是首先不对栅格中的 NA 值进行采样。我假设采样是在栅格的矩形范围内进行的,因此您的蒙版在此步骤中无法按预期工作。 尝试使用sampleRandom中的

ext

参数来限制采样的区域(掩模)。

    

© www.soinside.com 2019 - 2024. All rights reserved.