【发布时间】:2020-05-27 00:09:59
【问题描述】:
我在为栅格计算植被指数的函数中集成重新缩放方法时遇到了一些问题。我尝试使用来自this solution 的公式。代码会运行,但我会收到两条警告消息,并且我的图像会是空白的。我检查了栅格最小值和最大值,它们分别读取“-Inf”“Inf”。我还尝试了使用this post 中的RPMG 库的另一种方法,但遇到了另一个错误。这次是在运行 VARI 变量之后。我希望将重新缩放方法保持为“平淡无奇”,以便可以将其集成到其他指数中,例如三角绿化指数 (TGI)。有什么建议么?
方法一:
# Visable Atmospherically Resistant Index
VARI.Overlay <- function(b1, b2, b3){
VARI.Calc <- (b1 - b3) / (b1 + b3 -b2)
VARI.Scale <- ((VARI.Calc - min(VARI.Calc)) / (max(VARI.Calc) - min(VARI.Calc)) - 0.5 ) * 2
return(VARI.Scale)
}
VARI <- overlay(img[[1]], img[[2]], img[[3]], fun = VARI.Overlay)
image(VARI, main = 'VARI')
方法一错误:
1: In min(x) : no non-missing arguments to min; returning Inf
2: In max(x) : no non-missing arguments to max; returning -Inf
方法二:
# Visable Atmospherically Resistant Index
VARI.Overlay <- function(b1, b2, b3){
VARI.Calc <- (b1 - b3) / (b1 + b3 -b2)
VARI.min <- min(VARI.Calc)
VARI.max <- max(VARI.Calc)
VARI.Scale <- RESCALE(VARI.Calc, -1, 1, VARI.min, VARI.max)
return(VARI.Scale)
}
VARI <- overlay(img[[1]], img[[2]], img[[3]], fun = VARI.Overlay)
方法二错误:
Error in (function (x, fun, filename = "", recycle = TRUE, forcefun = FALSE, :
cannot use this formula, probably because it is not vectorized
【问题讨论】:
标签: r geospatial raster rescale