3

我有一堆 300 多幅陆地卫星 NDVI 图像。我正在使用 R 中的 BFAST 包来识别断点。从这张图片中可以看出,中断通常非常明显:
在此处输入图像描述

请注意,NDVI 在 1988 年左右大幅下降,然后逐渐增加。BFAST 忽略了明显的中断,而是在 1994 年左右在逐渐增加的中间设置了一个断点。

我使用以下 R 代码运行 BFAST:

bfast(ndvi.ts,h=.3,season="harmonic",max.iter=1,breaks=1)

(调整 h 参数似乎并没有改善这种情况)。

几个问题请教大家:

  1. 除了 h 之外还有一个参数可以调整以改善结果吗?
  2. 如果没有,有没有办法按摩数据以获得更好的结果?
  3. 如果没有,R 中是否有另一个断点分析包可能会产生更好的结果?
4

1 回答 1

1

我已经与相同的分析搏斗并最终使用了 ecp 包http://cran.r-project.org/web/packages/ecp/vignettes/ecp.pdf

在我的工作流程中,我为多个站点提取每个图像日期的索引并将它们放入数据框中。然后从那里我有一个循环来计算变化点并创建一个带有指示的变化点的时间序列的ggplot。我不会在这里展示整个循环,但是用于识别变更点的相关代码类似于:

library("ecp")
df <- "your data frame"
df2 <- df[ ,1]#assuming your data values are in first column
ecp.mat <- matrix(df2, ncol = 1)
ecp.out <- e.divisive(ecp.mat, R = 499, sig.lvl = sig, alpha = 1 )
ecp.est <- ecp.out$estimates[c(-1, -length(ecp.out$estimates))]#drop first and last records

上面的最后一个对象包含您的更改点的位置,然后我将其绘制出来。希望有帮助。

于 2015-06-29T04:09:25.383 回答