使用R

时间:2015-09-16 17:15:01

标签: r spatial spatstat

我想知道是否有一个内置函数来推断父母之外的点模式' R中的窗口。例如,让我们生成一个空间点模式' 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)

但新点是在同一区域/空间窗口内生成的

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

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

1 个答案:

答案 0 :(得分:2)

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

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

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

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

要合并它们,请使用superimpose

b = superimpose(a)

这在5x5窗口中提供了一个ppp个对象,其中200 * 25 = 5000个点,这保留了原始单位平方的200个点。