我有一個空間位置
設定點圖形資料的資料
point_pattern_data = ppp(original_data$row, original_data$col, c(0, 77), c(0, 116))
plot(point_pattern_data)
summary(point_pattern_data)
導致一個看起來像這樣的情節

#觀察到的資料有相當大的空白,我想將其洗掉以獲得更好的分析區域。因此,我想讓點模式成為多邊形而不是矩形。多邊形的頂點是下面的 (x,y) 對,以盡可能避免空白。
x = c(3,1,1,0.5,0.5,1,2,2.5,5.5, 16,21,28,26,72,74,76,75,74,63,58,52,47,40)
y = c(116,106,82.5,64,40,35,25,17.5,5,5,5,10,8,116,100,50,30,24,17,10,15,15,8)
我通過考慮下面的圖(帶有網格線)手動找到上面的這些頂點
plot(original_data$row,original_data$col)
grid(nx = 40, ny = 25,
lty = 2, # Grid line type
col = "gray", # Grid line color
lwd = 2) # Grid line width

所以我想制作點圖案多邊形。代碼是
my_data_poly = owin(poly = list(x = c(3,1,1,0.5,0.5,1,2,2.5,5.5, 16,21,28,26,72,74,76,75,74,63,58,52,47,40), y = c(116,106,82.5,64,40,35,25,17.5,5,5,5,10,8,116,100,50,30,24,17,10,15,15,8)))
plot(my_data_poly)
但這會導致錯誤。錯誤是

我修復它
my_data_poly = owin(poly = list(x = c(116,106,82.5,64,40,35,25,17.5,5,5,5,10,8,116,100,50,30,24,17,10,15,15,8), y = c(3,1,1,0.5,0.5,1,2,2.5,5.5, 16,21,28,26,72,74,76,75,74,63,58,52,47,40)))
plot(my_data_poly)
它導致了一個情節

然而,這不是我想要的。如何在點模式資料分析中將觀察區域作為多邊形獲取?
uj5u.com熱心網友回復:
這應該是問題的合理解決方案。
require(sp)
poly = Polygon(
cbind(original_data$col,
original_data$row)
))
這將從您的點創建一個多邊形。您可以使用此檔案更好地了解sp包
uj5u.com熱心網友回復:
我們無法訪問您從檔案中讀取的點資料,但如果您只想修復多邊形視窗,這不是問題。
您需要按順序逆時針遍歷多邊形的頂點。該代碼將您給出的第一個點連接到下一個等。您的頂點是:
library(spatstat)
x = c(3,1,1,0.5,0.5,1,2,2.5,5.5, 16,21,28,26,72,74,76,75,74,63,58,52,47,40)
y = c(116,106,82.5,64,40,35,25,17.5,5,5,5,10,8,116,100,50,30,24,17,10,15,15,8)
vert <- ppp(x, y, window = owin(c(0,80),c(0,120)))
plot.ppp(vert, main = "", show.window = FALSE, chars = NA)
text(vert)

13 號點位于左下角,14 號點位于右上角,這在多邊形中給出了有趣的交叉點。移動訂單似乎有幫助:
xnew <- c(x[1:11], x[13:12], x[23:14])
ynew <- c(y[1:11], y[13:12], y[23:14])
p <- owin(poly = cbind(xnew, ynew))
plot(p, main = "")

從您提供的資料圖中尚不清楚您是否真的應該應用點模式分析。實作的點程序建模的主要假設spatstat
是事件(點)的位置是隨機的,并且生成隨機位置的程序是有意義的。你的觀點似乎在一個網格上,也許你需要另一個工具來進行分析。當然spatstat有很多功能可以簡單地處理和匯總這樣的資料,所以你仍然可以在那里找到有用的工具。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/525561.html
標籤:r多边形统计数据
上一篇:根據需要重新標記因子水平
下一篇:在R中取消列出和訪問多個串列
