gpt4 book ai didi

r - 将单个栅格设置为 NA,其中栅格堆栈的值为 NA

转载 作者:行者123 更新时间:2023-12-04 11:19:05 29 4
gpt4 key购买 nike

我有两个 30m x 30m 的光栅文件,我想从中采样点。在采样之前,我想从图像中移除模糊区域。我求助于 R 和 Hijman 的 Raster 包来完成这项任务。

使用 drawPoly(sp=TRUE) 命令,我绘制了 18 个不同的多边形。该函数似乎不允许将 18 个多边形作为一个 sp 对象,所以我将它们全部分开绘制。然后我给多边形一个匹配光栅的 proj4string,并将它们设置到一个列表中。我通过 lapply 函数运行列表,将它们转换为栅格(Hijman 包中的栅格化函数),多边形区域设置为 NA,图像的其余部分设置为 1。

我的最终目标是将 18 个区域设置为 NA 的栅格层。我已经尝试堆叠栅格化多边形列表,并将其子集化以在相同区域将新栅格设置为 NA。我的可重现代码如下。

library(raster)
r1 <- raster(nrow=50, ncol = 50)
r1[] <- 1
r1[4:10,] <- NA
r2 <- raster(nrow=50, ncol = 50)
r2[] <- 1
r2[9:15,] <- NA
r3 <- raster(nrow=50, ncol = 50)
r3[] <- 1
r3[24:39,] <- NA

r4 <- raster(nrow=50, ncol = 50)
r4[] <- 1

s <- stack(r1, r2, r3)

test.a.cool <- calc(s, function(x){r4[is.na(x)==1] <- NA})

无论出于何种原因,该死的 testacool 是一个空白图,我的目标是将它作为一个栅格,其中除了堆栈中的 NA 之外的所有值都等于 1。

有什么建议吗?

谢谢。

最佳答案

正在做 sum(s)会工作,因为 sum()返回 NA对于任何具有甚至一个 NA 的网格单元堆栈中的值。

要查看它是否有效,请比较以下生成的数字:

plot(s)
plot(sum(s))

关于r - 将单个栅格设置为 NA,其中栅格堆栈的值为 NA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16270957/

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