我試圖找到兩點間的歐幾里得距離,由不規則的多邊形限制。 (即距離必須被計算爲通過給窗口的路線)在R {spatstat}中尋找點之間的歐幾里德距離,由不規則的多邊形窗口限制
下面是一個可重複的例子:
library(spatstat)
#Simple example of a polygon and points.
ex.poly <- data.frame(x=c(0,5,5,2.5,0), y=c(0,0,5,2.5,5))
points <- data.frame(x=c(0.5, 2.5, 4.5), y=c(4,1,4))
bound <- owin(poly=data.frame(x=ex.poly$x, y=ex.poly$y))
test.ppp <- ppp(x=points$x, y=points$y, window=bound)
pairdist.ppp(test.ppp)#distance between every point
#The distance result from this function between point 1 and point 3, is given as 4.0
但是我們知道剛剛從繪製點
plot(test.ppp)
路線限制在多邊形的距離應該更大(在這種情況下,5.00)。
是否有另一個功能,我不知道{spatstat}會這樣做?還是有人有其他建議可以做到這一點的另一個包?
我試圖找到水體中兩點之間的距離,所以我的實際數據中的不規則多邊形更加複雜。
任何幫助,非常感謝!
乾杯
有趣的問題。我可能會建議將'bound'轉換爲RasterLayer對象(可能首先使用** maptools **來提供'(bound,SpatialPolygons)'和'as(test.ppp,「SpatialPoints」)'),然後使用** gdistance **包來計算點之間的「最小成本距離」,其中「bound」外的所有網格點的摩擦或成本設置爲無窮大。 [** gdistance **](http://cran.r-project.org/web/packages/gdistance/index.html)附帶一個漂亮的小插曲(運行'vignette(「gdistance」)'看到它)應該給你一個好的開始。 –