我有一個有很多補丁(具有相同值的連續單元的塊)的柵格地圖。我需要做的是獲得每個補丁的中心座標(或接近中心)。 我對柵格包非常沒有經驗,但是隻有當我知道地圖中單元格的位置時,我才能得到座標。有沒有辦法讓座標給出單元格的值呢?謝謝獲取柵格地圖中補丁的座標(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中柵格和多邊形的座標參考系統
- 4. 覆蓋柵格包R中的許多ASCII圖層R
- 5. 如何用R中另一個柵格的值替換大柵格中的NA?
- 6. 使用另一個柵格的作物柵格R
- 7. 來自PostGIS柵格中其他柵格記錄的平均柵格記錄
- 8. 層不會柵格化中的R
- 9. 用R中的輸入聚合柵格
- 10. R的柵格ggplot圖像爲tikzdevice
- 11. 獲取柵格細胞中心的摘要向量在R
- 12. 標籤對中的R柵格條棒圖表
- 13. R - 用柵格創建boxplot
- 14. R:使用第二個柵格堆棧中的圖層替換柵格堆棧中的多個圖層
- 15. MATLAB和柵格圖
- 16. R柵格識別黑色光柵圖像
- 17. 柵格刷新時,Dojo柵格隱藏
- 18. 查詢柵格創建結果柵格
- 19. 確定柵格中柵格單元的大小
- 20. 柵格列表中同一日期的鑲嵌柵格
- 21. 重複相同的柵格圖層來創建柵格堆棧
- 22. 在Plotly(R API)中繪製地理參考柵格圖像
- 23. R柵格修剪plotRGB圖像
- 24. R:使用柵格包的函數中的錯誤
- 25. 帶格柵圖像的旋轉標籤
- 26. R - 在大柵格圖層中查找特定單元格值
- 27. R中的自定義調整柵格符號包
- 28. 如何從java中的圖像獲取柵格?
- 29. 高效地從R中的柵格堆棧訪問數據
- 30. 從Linux上的R列表中錯誤地堆疊柵格
你是如何創建你創建/導入你的光柵?如果您展示了數據樣本,用於創建柵格的代碼和/或您嘗試的內容,我會更簡單地幫助您。 – plannapus 2013-03-26 08:51:14
請參閱'?click'和可能還有'?zoom'。 – 2013-03-26 08:57:33
作爲一種替代方案,您可能想要使用ImageJ,它具有叢/找斑工具。 – 2013-03-26 11:40:34