【问题标题】:spatstat wiht R: Error with defining the window of spatial point pattern带有R的spatstat:定义空间点模式窗口时出错
【发布时间】:2015-09-24 16:52:49
【问题描述】:

请看下图。该图像是通过首先使用 as.owin 将两列数据框转换为研究窗口(称为 study_win),然后在窗口顶部绘制另一个两列数据框(称为 study_points)来创建的。

很明显,这些点位于窗口内!但是当我打电话时

ppp(study_points[,1],study_points[,2],win = study_window) 

它说我的大部分观点都被拒绝为躺在窗外。有人可以告诉我发生了什么吗?

谢谢!

【问题讨论】:

  • 请做一个可重现的例子。我在绘图的窗口外至少看到一个点,考虑到图表的 XY 限制,可能还有更多的点根本没有绘制。
  • 恐怕我不能做一个可重现的例子。这是一个非常复杂的窗口,它是由一个大的 csv 文件定义的。大约有 185 分,当我打电话给 ppp 时,它说 180 分是“illega”和“因为躺在窗外而被拒绝”
  • 除了猜测之外,没有人能做太多事情。您确定您的窗口定义正确,并且不是您在绘图中显示的区域的正面(即我们看到的是孔,而不是窗口的轮廓)?

标签: r statistics spatial spatstat


【解决方案1】:

首先,您可以退后一步检查窗口对象study_window 是否是您想要的。您可以自行绘制或打印此对象。 study_window 的绘图将显示(您也可以在问题中提供的绘图中看到这一点)窗口的边界是不连贯的点散布,而不是连接的多边形。 study_window 的打印输出会显示它是一个二进制像素掩码,面积非常小,而不是多边形区域。 as.owin 的帮助解释说,当 as.owin 应用于包含 x,y 坐标列的数据帧时,它将它们解释为位于 窗口内的 像素 的像素坐标

所以,as.owin 在数据框中的每个 (x,y) 位置创建了一个由一个像素组成的窗口。那不是你想要的; (x,y) 坐标是多边形边界的顶点。

要获得所需的窗口,请执行study_window <- owin(poly=df) 之类的操作,其中 df 是顶点 (x,y) 坐标的数据框。

要一步完成所有操作,请输入类似 mypattern <- ppp(x, y, poly=df) 的内容,其中 x 和 y 是窗口中点的坐标向量。

【讨论】:

    【解决方案2】:

    所以我通过使用“owin”解决了这个问题,并将区域指定为多边形;而不是“as.owin”。我不知道 owin 和 as.owin 之间的区别,但我很高兴它起作用了......

    【讨论】:

    • 方法as.owin.dataframe用于导入像素格式的窗口。帮助文件说输入应该是:“正​​好有两列的‘data.frame’。数据框的每一行都包含窗口内像素的 x 和 y 坐标。”
    • 这正是我传递给 as.owin 的内容——一个有两列的数据框。我怀疑 as.owin 创建了一个二进制掩码,这意味着只有与数据框中的任何行完全一致的像素才被认为是“在窗口内”。然而,这只是我的猜测..
    • 这就是我想说的。当您将多边形的角传递给as.owin.dataframe 时,这些将被解释为属于窗口一部分的单个像素,而其他所有内容都在窗口之外。如果你例如定义三角形的角d = data.frame(x=c(0,1,1), y=c(0,1,3)) 并执行as.owin(d) 你会得到一个 2x4 像素的窗口,其中 3 个像素 (0,0)、(1,1) 和 (1,3) 在窗口内,5 个像素 ( 0,1)、(0,2)、(0,3)、(1,0) 和 (1,2) 在窗口外。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-04
    • 1970-01-01
    • 2018-04-03
    • 1970-01-01
    • 2020-05-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多