Ori*_*pus 2 r raster coordinates
我有一个带有许多补丁的栅格地图(具有相同值的连续单元块)。我需要做的是获取每个补丁的中心(或靠近中心)的坐标。我对光栅包非常缺乏经验,但似乎只有我知道地图中单元格的位置才能获得坐标。有没有办法获得坐标,而不是给出单元格的值?谢谢
如果补丁是指团块,Raster 包允许您查找和隔离团块。以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)
Run Code Online (Sandbox Code Playgroud)

plot(rc)
text(df[df$is_clump == T, 1:2], labels = df[df$is_clump == T, 3])
Run Code Online (Sandbox Code Playgroud)

可能没有你想象的那么有趣。
你用方向= 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, ]
Run Code Online (Sandbox Code Playgroud)
要得到

也许会聚集“质心”
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)
Run Code Online (Sandbox Code Playgroud)

注意事项:
如果您在clump()没有先分离模型工具库的情况下尝试使用,则会出现错误。modeltools 由 coin 和其他统计库调用。