使用 R 外推空间点模式

Extrapolating spatial point patterns using R

我想知道 R 中是否有一个内置函数可以在 'parent' window 之外推断点模式。例如,让我们生成一个空间点模式 'X':

require(spatstat)
X <- ppp(runif(200), runif(200), 
c(0,1), c(0,1), unitname=c("metre","metre"))

让我们对数据重新采样:

a <- quadratresample(X, nx=25, ny=5, replace=F, nsamples = 1)

但是新点是在同一个点内生成的area/spatialwindow

> a
 planar point pattern: 200 points 
window: rectangle = [0, 1] x [0, 1] metres  

我的问题是:如何在比原始 window(1 x 1 米)大的新 window 中重新采样 200 个点;换句话说,我将如何在保持相同重采样密度的同时将 200 个空间点的小集合外推到更大的范围;假设我想在 5 x 5 m 的范围内查看总共 1,000 个数据点?

这很容易,因为 spatstat 为我们提供了所有正确的工具。您当前有一个 1x1 网格。你想要一个由 25 个 1x1 网格构建的 5x5 网格。我们可以使用 nsamples 参数对这些网格的点进行采样:

a <- quadratresample(X, nx = 25, ny = 5, replace = F, nsamples = 25)

现在我们有一个包含 25 ppp 的列表。正如您所指出的,所有这些都将在同一个 1x1 window 中。为了将它们变成一个网格,我们适当地移动它们,从 0 到 4 个单位的 x 移位和 0 到 4 个单位的 y 移位:

for (i in seq_along(a)) {
    a[[i]] = shift(a[[i]], vec = c((i - 1) %% 5, (i - 1) %/% 5))
}

要合并它们,请使用 superimpose:

b = superimpose(a)

这给出了 5x5 window 中的单个 ppp 对象,具有 200 * 25 = 5000 个点,保留了原始每平方单位的 200 个点。