r - 在R中的栅格中找到一个点的8个邻居?
问题描述
如果我有这样的栅格:
library(raster)
r1 <- raster(ncol=10, nrow=10)
r1[] <- runif(ncell(r1))
r1[] = 1:ncell(r1)
x=c(-6)
y=c(-67)
我可以提取与这一点相对应的值:
values = extract(r1, SpatialPoints(cbind(y,x),CRS("+init=EPSG:4326")))
但是,这会提取最接近该点坐标的像素。我需要提取最接近的 9 个像素(提取像素的 8 个邻居)到这一点。任何想法?
解决方案
您可以使用该adjacent
方法。
示例数据
library(raster)
r <- raster(ncol=10, nrow=10)
values(r) = 1:ncell(r)
xy <- cbind(-67, -6)
解决方案
cells <- cellFromXY(r, xy)
adj <- adjacent(r, cells, 8, include=TRUE)
r[adj[,2]]
# [1] 54 43 53 63 45 55 65 44 64
这将返回单元格的值(因为include=TRUE
)及其 8 个邻居
推荐阅读
- mysql - 使用嵌套查询进行自联接
- python - 在分类列上训练 xgboost 时遇到问题
- c# - 删除断点后打印机不打印数据 n 调试模式
- mongodb - 如何使用 mongodump 命令创建一个具有唯一文件夹的数据库的 gzip 文件?
- tsql - 有没有办法在 SSIS 中获取 Hive 表大小并将其存储在变量中?
- php - 在 PHP 中对字符串“/\/\”使用 str_replace
- excel - 432 4.3.2 STOREDRV.Client提交;超出发件人线程限制?
- bash - 有没有办法从命令行更改当前终结者窗口中的布局?
- python - 为什么此列表索引超出范围
- php - 为什么“使用”不起作用,而“包含”却起作用?