当前位置: 首页 > 知识库问答 >
问题:

如何在计算前用NA替换几个栅格中的某些值?

苍温文
2023-03-14

我正在使用光栅文件进行一些计算。我特别计算移动平均线。我想知道在任何计算之前热分配值给NA。

Here is the code :
 files   <- list.files("C:final-2010", "*.envi", full.names = TRUE)
 files[round(files,3) ==  -339999995214436420000000000000000000000.000 ] <- NA
d1 <-  overlay(stack(files ),fun=function(x) movingFun(x, fun=mean, n=3, na.rm=TRUE))

但是我有一个错误:

          Error in round(files, 3) : Non-numeric argument to mathematical function

我也试过这个:

  f=stack(files)
  f[round(f,3) ==  -339999995214436420000000000000000000000.000 ] <- NA
   movi <-  overlay(stack(f),fun=function(x) movingFun(x, fun=mean, n=3, na.rm=TRUE))

没有错误,但当我查看结果时,我发现没有任何变化。

共有1个答案

宰父衡
2023-03-14

这是在单个光栅图层中将NA设置为值的方式。一旦这样做了,就可以随意堆叠。

library(raster)
r1 <- raster(nrows=108, ncols=21, xmn=0, xmx=10)
r1[] <- runif(ncell(r1))
par(mfrow = c(1, 2))
plot(r1)
r1[500:1000] <- NA
plot(r1)
r <- stack(r1, r1, r1)
x <- list(c(100, 300), c(400, 600), c(800, 1000))
s <- mapply(FUN = function(x, y) {
  y[x[1]:x[2]] <- NA
  y
}, x = x, y = r)

plot(stack(s)) # not shown here
 类似资料:
  • 我想在第一个光栅中选择一个小区域,计算该区域的空间平均值,并对其他11个光栅执行相同的操作。最终将得到12个值。 我试过这个: 这样做对吗? 那么我如何计算所选区域的空间平均值?并对所有其他光栅执行相同的操作。提前谢谢。

  • 在计算皮尔逊相关性时,下面的脚本对我来说也适用于相同的数据。我最近对其进行了调整,创建了一个协方差矩阵,以输入到pca中。我在论坛上读到,输入预先创建的协方差矩阵可能会避免记忆问题,但我的情况并非如此。运行协方差矩阵时,我会出现以下错误: 有人能提出一个更有效的方法来做到这一点,这样我就不会遇到内存问题了吗?如果我在计算协方差方面完全偏离了基础,那很好。PCA是我最终唯一需要的东西。我的数据是12

  • 我正在使用 : https://github.com/angular-ui/ui-grid.info/tree/gh-pages/release/3.0.0-RC.18 当我硬编码该值时,如上所示,网格展开,一切都按预期工作。 但是,如果我执行以下操作... 高度在div中打印,div会变宽,但内容本身只会变宽到340px左右。剩下的空间是空白的,所以我看到的不是25行,而是8行。我必须向下滚动,

  • 问题内容: 如何用另一部分替换字符串的特定部分? 输入字符串: 如何用其他方式更改字符串中的全部? 我认为我需要一个循环,但是我不确定如何使用它。 问题答案: 或者更精确地回答您的问题:

  • 问题内容: 我在pyspark中使用sqlContext.sql函数读取了一个数据框。它包含4个数字列,每个客户都有信息(这是键ID)。我需要计算每个客户端的最大值并将此值加入数据框: 在这种情况下,客户端“ six”的最大值为23,而客户端“ ten”的最大值为30。“ null”在新列中自然为null。 请帮助我显示如何执行此操作。 问题答案: 我认为将值组合到列表中而不是找到最大值将是最简单

  • 问题内容: 如果您有两个不相交的图,并且想要链接它们,请执行以下操作: 到这个: 有没有办法做到这一点?在某些情况下,这似乎可以使施工更容易。 例如,如果您有一个图,其输入图像为,并且想要优化输入图像(深梦风格),是否有一种方法可以仅用节点替换占位符?还是在构建图形之前必须考虑一下? 问题答案: TL; DR:如果可以将这两个计算定义为Python函数,则应该这样做。如果不能,那么TensorFl