我有一個有很多補丁(具有相同值的連續單元的塊)的柵格地圖。我需要做的是獲得每個補丁的中心座標(或接近中心)。 我對柵格包非常沒有經驗,但是隻有當我知道地圖中單元格的位置時,我才能得到座標。有沒有辦法讓座標給出單元格的值呢?謝謝獲取柵格地圖中補丁的座標(R中的柵格包)
1
A
回答
1
你可以採取每個補丁的座標的平均值:
# some dummy data
m <- matrix(c(
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,4,4,0,
0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,4,4,0,
0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,4,4,0,
0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,
0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,
0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,
0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,
0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,
0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,
0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,
0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,
0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,
0,0,2,3,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,
0,0,2,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), nrow=20, byrow=T)
# create a raster
r <- raster(m)
# convert raster to points
p <- data.frame(rasterToPoints(r))
# filter out packground
p <- p[p$layer > 0,]
# for each patch calc mean coordinates
sapply(split(p[, c("x", "y")], p$layer), colMeans)
+0
它的工作原理!謝謝! – Oritteropus 2013-03-26 09:03:52
4
如果補丁你的意思是團塊,光柵包可以讓你找到並隔離,團塊。服用clump()
光柵包例子,擴展它:
library(raster)
library(igraph)
detach("package:coin", unload=TRUE)
r <- raster(ncols=12, nrows=12)
set.seed(0)
r[] <- round(runif(ncell(r))*0.7)
rc <- clump(r)
clump_id <- getValues(rc)
xy <- xyFromCell(rc,1:ncell(rc))
df <- data.frame(xy, clump_id, is_clump = rc[] %in% freq(rc, useNA = 'no')[,1])
df[df$is_clump == T, ]
plot(r)
plot(rc)
text(df[df$is_clump == T, 1:2], labels = df[df$is_clump == T, 3])
可能不會像有趣,你可以期望。
您與方向= 4
rc <- clump(r, directions = 4)
clump_id <- getValues(rc)
xy <- xyFromCell(rc,1:ncell(rc))
df <- data.frame(xy, clump_id, is_clump = rc[] %in% freq(rc, useNA = 'no')[,1])
df[df$is_clump == T, ]
重來一次得到
,也許叢 '重心'
dfm <- ddply(df[df$is_clump == T, ], .(clump_id), summarise, xm = mean(x), ym = mean(y))
plot(rc)
text(dfm[, 2:3], labels = dfm$clump_id)
注意:
如果您嘗試使用clump()
沒有首先 分離modeltools庫將有一個錯誤。模型工具是由硬幣調用的,也可能是其他統計庫。
相關問題
- 1. R柵格包中的交叉帶
- 2. R中的多個柵格盒形圖
- 3. 覆蓋柵格包R中的許多ASCII圖層R
- 4. 如何用R中另一個柵格的值替換大柵格中的NA?
- 5. 獲取柵格細胞中心的摘要向量在R
- 6. 標籤對中的R柵格條棒圖表
- 7. R:使用第二個柵格堆棧中的圖層替換柵格堆棧中的多個圖層
- 8. 查詢柵格創建結果柵格
- 9. 確定柵格中柵格單元的大小
- 10. 柵格列表中同一日期的鑲嵌柵格
- 11. 在Plotly(R API)中繪製地理參考柵格圖像
- 12. R:使用柵格包的函數中的錯誤
- 13. 帶格柵圖像的旋轉標籤
- 14. R中的自定義調整柵格符號包
- 15. 如何從java中的圖像獲取柵格?
- 16. 高效地從R中的柵格堆棧訪問數據
- 17. 從Linux上的R列表中錯誤地堆疊柵格
- 18. 讀取基於R中的文件名的柵格子集
- 19. 使用gdalinfo從柵格提取柵格屬性表
- 20. 柵格單元格中shapefile的點數
- 21. Dojox增強柵格中的空格鍵
- 22. 合併柵格
- 23. 在座標處示例柵格單元格值?
- 24. 如何創建R中具有相同色標的柵格圖R
- 25. 如何在水平圖柵格中標記地點?
- 26. 讀取r爲jp2格式的柵格數據
- 27. 將圖例置於柵格圖下方,擺脫圍繞柵格圖的矩形
- 28. 將柵格線添加到極座標等高線圖上
- 29. 使用R中的分類柵格提取信息
- 30. R:如何通過在基本R圖中用柵格疊加地圖來獲得正確的分辨率(柵格)?
你是如何創建你創建/導入你的光柵?如果您展示了數據樣本,用於創建柵格的代碼和/或您嘗試的內容,我會更簡單地幫助您。 – plannapus 2013-03-26 08:51:14
請參閱'?click'和可能還有'?zoom'。 – 2013-03-26 08:57:33
作爲一種替代方案,您可能想要使用ImageJ,它具有叢/找斑工具。 – 2013-03-26 11:40:34