bfastSpatial

Loïc Dutrieux, Ben DeVries, Jan Verbesselt

You've just downloaded Landsat data; you're 3 lines of code away from a change map

Why we built bfastSpatial

  • Automate things that we were doing routinely
  • Streamline pre-processing and analysis
  • Because it's fun!!!

Overall it makes dealing with Landsat data for change detection more efficient and more accessible

Classical data pre-processing and analysis chain

  • Download the data
  • Unpack the data
  • Atmospheric correction and orthorectification
  • Cloud masking
  • Calculation of vegetation indices
  • Prepare time-series
  • Run algorithm

With bfastSptial we've tried to streamline this process

Enough theory, let's try it!!!

Installation

You need:

  • (A recent version of) R
  • The devtools package
                
# update existing R packages 
#! the line below can potentially download lot's of R packages!
update.packages(checkBuilt = TRUE, ask = FALSE)                
# install devtools package
install.packages('devtools')
                
            

Then we can install the package using the devtools package

                
# install bfastSpatial from github
devtools::install_github('dutri001/bfastSpatial')
                
            

About the data

  • These are Surface reflectance Landsat data downloaded via espa
  • The full time-series (2000-2015) of a 5x5 km extent was downloaded
  • The product already contains vegetation indices (NDVI, NDMI, etc), processed by the USGS
  • For a tutorial on how to order data from USGS and download them, refer to the main bfastSpatial tutorial

At the border between Romania and Hungary

A preproducible example

Utilities: Investigate individual pixel time-series

  • bfmPixel() (run bfastmonitor on individual pixels)
  • Validation via timeSyncR

bfmPixel() example

                
# Plot a cloud free recent NDVI layer
plot(ndviStack, 394)

# Call bfmPixel in interactive mode
bfmPixel(x = ndviStack, start = 2010, monend = 2013, interactive = TRUE, plot = TRUE)

# Click on a pixel
                
            

And what about validation?

We have a tool for that too; try timeSyncR for visual interpretation of time-series

Conclusion

  • Early steps of the pre-processing are very standard and can be automated
  • It's easy to produce a change map
  • But a good change map requires local tuning
  • Spend some time looking at individual pixels
  • Keep your projects well structured

Where to find help




Thanks!

http://changemonitor-wur.github.io/talks/bfastSpatial-2016/

Special thanks to Loïc Dutrieux and Ben DeVries for leading the BfastSpatial effort and also this presentation!

Check out Loïc's webpage and github account: