我想使用SG过滤器将NA填充到光栅砖中。代码如下:`
fun = function(x) {
v<-as.vector(x)
z<-na.spline(v)
gimms.ts2 <- ts(z, start=c(1982,1), end=c(2015,24), frequency=24)
x <- sgolayfilt(gimms.ts2)
}`
gimms.filtered <- calc(s, fun)
我收到一个错误:zero non-NA points
我认为这是因为此栅格堆栈中的一些像元全部为NAs
。例如,cell[200]
是NA NA NA...
我想使用if函数跳过那些单元格。我不知道该怎么做。我认为is.na
不起作用。请帮助我!
答案 0 :(得分:1)
请提供可重现的示例,其中包含一些由代码生成的简单示例数据。
您可能可以使它像这样工作:
fun = function(x) {
v <- as.vector(x)
if (all(is.na(v)) return(v)
z <- na.spline(v)
gimms.ts2 <- ts(z, start=c(1982,1), end=c(2015,24), frequency=24)
sgolayfilt(gimms.ts2)
}