试图识别Landsat图像中的断点 - 为什么BFAST会错过明显的断点?

时间:2015-04-30 15:58:26

标签: r gis breakpoints raster trend

我有一堆300多个Landat NDVI图像。我在R中使用BFAST包来识别断点。从这张图片可以看出,休息时间往往非常明显:
enter image description here

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

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

bfast(ndvi.ts,h = .3,season =“harmon”,max.iter = 1,breaks = 1)

(调整h参数似乎不会改善这种情况)。

每个人都有几个问题:

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

1 个答案:

答案 0 :(得分: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

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