【发布时间】:2013-11-01 16:14:44
【问题描述】:
我有一些与空间点相关的生态变量的数据。每个点都有相对于边界框的 x 和 y 坐标,但是这些点代表不同直径的圆形区域。我想要实现的是将每个点占据的区域投影到观察窗口上,以便我们随后可以对该区域进行像素化并检索每个点的区域与每个像素(网格单元)的重叠程度。在过去,我已经能够通过转换为 psp 线对象,然后使用 spatstat 包中的 pixellate 函数来使用横断面数据来实现这一点,但我不确定如何处理这些圆形区域。感觉我应该使用多边形类,但我又不确定如何定义它们。任何建议将不胜感激。
【问题讨论】:
-
这似乎是一个更普遍的问题,并非特定于 R。您可以构建网格并为网格中的每个点计算该点是否在任何圆内(小于点的径向距离)。或者,您也可以尝试在网格上进行模拟。
-
我建议使用 sp 和 raster 包实现的空间数据类型。然后,您可以使用(类似)
rgeos::gBuffer()创建围绕每个点的所需半径的圆形SpatialPolygons(理想情况下存储为带有附加属性数据的SpatialPolygonsDataFrame),raster::rasterize()将 SPDF 转换为已注册的栅格在您现有的栅格上,raster::crosstab()或raster::zonal()提取有关重叠区域的信息。 (如果您包含一个最小的可重现示例,我可能已经向您展示了如何做到这一点;) -
谢谢,R 是我通常使用的,所以我理想地寻找 r 解决方案。我已经想到了一些更“手动”的方法,但我希望通过利用许多 r 包的空间功能来避免这种情况。只是想不出第一步。
-
Josh 向您展示...您只需要提供代码来构建或链接到足够的数据对象,从而为解决方案创建基础。这里的人们不认为为您构建一个完整的教程是他们的责任。你有数据,我们有经验。