【问题标题】:Generating clustered spatstat marks for a ppp object为 ppp 对象生成聚集的 spatstat 标记
【发布时间】:2019-02-14 11:32:01
【问题描述】:

这个问题与here 提出的问题非常接近。如果我们想为已经存在的点模式生成随机标记,答案是很好的 - 我们从多元正态分布中提取并与每个点相关联。

但是,我需要为我自己的点模式生成符合spatstat 随附的lansing 数据集中给出的标记的标记。换句话说,我有一个没有标记的点模式,我想模拟具有明确模式的标记(例如,为了说明我自己的数据的隔离概念)。我怎么做这样的标记?我知道lansing 和我的数据集之间的点数可能不同,但我可以减少窗口或创建更多点。谢谢!

【问题讨论】:

  • 我不太明白这与您链接到的问题之间的巨大区别。你说你已经有一个点模式并且想要模拟标记。这与链接问题完全相同。您想要隔离的唯一区别和另一个问题是关于集群吗?
  • 是的,如果我有集群,我如何确保我会有隔离?很抱歉,如果它令人困惑。
  • 下面我的示例答案的重点是您必须更具体地了解您想要什么。你想要 6 个只有一个物种生活的斑块,还是想要一个物种的 90% 和另一个物种的 2%?每个物种应该有一个补丁还是多个?补丁应该大/小吗?补丁的形状怎么样?您已经拥有这些点并且您只想附加出现在补丁中的随机标记是否正确,或者您是否还允许随机生成这些点?等等等等。
  • 嗨,Ege,重点是展示隔离是如何工作的,百分比是否在这里和那里都没有关系。假设我想要 4 个补丁,分别为 30%、20%、10%、40%,并且我想要每个物种一个补丁。我如何去模拟它?它纯粹是为了演示目的,形状可以像一些闭合曲线一样任意 - 矩形很容易生成。是的,我已经有了分数,只想要分数。分数是我在实验中需要收集的唯一变量。
  • 我忘记跟进了。现在有一个替代答案,您可能会发现它更合适。它应该很容易根据您的需要进行修改。

标签: spatstat


【解决方案1】:


隔离是指一个物种在一个物种中占主导地位的事实 观察窗口的特定部分。一个极端的例子是 完全隔离,例如x 坐标。这会产生条带 不同类型的点数:

library(spatstat)

X <- lansing
Y <- cut(X, X$x, breaks = 6, labels = LETTERS[1:6])
plot(Y, cols = 1:6)

在不了解所需隔离类型的更多细节的情况下,它是 很难提出更有用的建议。

【讨论】:

  • 是的,我明白了。我认为我也可以产生这种隔离。我一直在寻找一个更现实的例子,我知道它很难生成。
【解决方案2】:


这是另一个版本的四个不同矩形的隔离 地区。

library(spatstat)

p <- c(.6,.2,.1,.1)
prob <- rbind(p,
              p[c(4,1:3)],
              p[c(3:4,1:2)],
              p[c(2:4,1)])
X <- unmark(spruces)
labels <- factor(LETTERS[1:4])
subwins <- quadrats(X, 2, 2)
Xsplit <- split(X, subwins)
rslt <- NULL
for(i in seq_along(Xsplit)){
  Y <- Xsplit[[i]]
  marks(Y) <- sample(labels, size = npoints(Y),
                     replace = TRUE, prob = prob[i,])
  rslt <- superimpose(rslt, Y)
}
plot(rslt, main = "", cols = 1:4)
plot(subwins, add = TRUE)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-30
    • 2011-10-06
    • 2020-10-04
    • 2021-11-22
    • 1970-01-01
    • 1970-01-01
    • 2020-10-03
    • 1970-01-01
    相关资源
    最近更新 更多