gpt4 book ai didi

r - 获取光栅 map 中补丁的坐标(R 中的光栅包)

转载 作者:行者123 更新时间:2023-12-01 22:40:12 32 4
gpt4 key购买 nike

我有一个包含许多补丁(具有相同值的连续单元 block )的栅格 map 。我需要做的是获取每个补丁的中心(或接近中心)的坐标。我对栅格包非常缺乏经验,但似乎只有当我知道 map 中单元格的位置时我才能获得坐标。有什么方法可以让坐标给出单元格的值吗?谢谢

最佳答案

如果您所说的补丁是指团 block ,Raster 包允许您查找和隔离团 block 。以 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)

r

plot(rc)
text(df[df$is_clump == T, 1:2], labels = df[df$is_clump == T, 3])

rc

可能没有你想象的那么有趣。

你用 directions = 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, ]

得到

rc4

也许还有团 block “质心”

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)

rc4mean

注意事项:

如果你不先尝试使用 clump() 将会出错分离 modeltools 库。 modeltools 被硬币调用,也许其他统计图书馆。

关于r - 获取光栅 map 中补丁的坐标(R 中的光栅包),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15632630/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com