使用 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 个点。
我想知道 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 个点。