我想找到点和多边形边界之间的最小距离(所有点都位于多边形内)。如果可能的话,我该如何提取这些值?,这样我就可以找到人数与到边境的距离之间的相关性。

多边形采用.SHP格式,并指向X / Y坐标。

任何缺少的信息,请让我知道!非常感谢您的帮助!

最佳答案

spatstat程序包具有函数nncross,该函数在两组点或一组点与一组线段之间找到最近的邻居。

加载一组x / y值以创建spatstat点模式对象相对容易:如果X和Y是包含坐标的两个向量,则可以使用以下方法创建点模式对象:

library(spatstat)
p = ppp(x,y)


您需要将shp数据转换为spatstat段模式对象。为此,您可以使用来自maptools的命令加载shp文件,然后将其转换为spatstat对象:

library(maptools)
shp = readShapeSpatial("yourdata.shp") #read shp file
shp = as.psp(shp) # convert to psp object


要计算您最近的邻居距离,您必须使用nncross

nncross(p,shp)

关于r - 寻找所有点和多边形边界之间的最小距离,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28382949/

10-12 20:36