Code Monkey home page Code Monkey logo

multifuse's Introduction

multifuse

Package to apply the Multi-sensor Time series Fusion (MulTiFuse) approach to two univariate time series (e.g. optical and SAR time series). The MulTiFuse approach has been published in Reiche et al. 2015, where it was used to fuse univariate Landsat NDVI and ALOS PALSAR L-band SAR backscatter time series.

The MulTiFuse approach

A detailed description of the MulTiFuse approach is provided in Reiche et al. 2015. A brief description to fuse two univariate remote sensing time series (e.g. SAR and optical time series) is given below:

First, a weighted time series correlation is performed. To maximise the statistical significance of the correlation and to take exceptional cases into account, correlation weight optimization is done before the relationship of the two time series is modelled through a weighted regression analysis. The optimized regressionmodel is utilized in a second step for regression-based prediction of time series observation to fuse the two time series.

fig2_20052014 Figure 1. Schematic overview of MulTiFuse to fuse a univariate optical and SAR time series Reiche et al. 2015.

References

Reiche, J., Verbesselt, J., Hoekman, D. H. & Herold, M. (2015): Fusing Landsat and SAR time series to detect deforestation in the tropics. Remote Sensing of Environment. 156, 276-293. DOI: 10.1016/j.rse.2014.10.001. http://www.sciencedirect.com/science/article/pii/S0034425714003885

Using the multifuse package

Installation

The package can be installed directly from github using devtools

library(devtools)
install_github('jreiche/multifuse')

Apply the MulTiFuse approach

## load multifuse package
library(multifuse)

## load example data
data(tsexample)
## plot example time series
plot2ts(ndvi,hv,lab_ts1="Landsat NDVI",lab_ts2="ALOS PALSAR HV [dB]")

## apply multifuse
fus <- multifuse(ndvi,hv,optimize=TRUE,ewf_max=2,ewf_steps=0.1, plot=TRUE)
## get fused time series from multifuse output
ndvi_fused<- fus[[1]]

##plot original ndvi time series and fused time series
plot2ts(ndvi,ndvi_fused,lab_ts1="Landsat NDVI",lab_ts2="Fused Landsat NDVI",ylim_ts1=c(0.3,0.9),ylim_ts2=c(0.3,0.9))

Example data

(A) (Single pixel data) Landsat NDVI (2005 - 2012) and ALOS PALSAR HV (2007 - 2010) example time series

## load example data
data(tsexample)

## plot example time series
plot2ts(ndvi,hv,lab_ts1="Landsat NDVI",lab_ts2="ALOS PALSAR HV [dB]")

(B) (Raster data) Landsat NDVI (2005 - 2012), ALOS PALSAR HV, HH and HVHH-ratio (2007 - 2010) time series for a pinus caribaea plantation in Fiji. Landsat NDVI data is provided with original per pixel missing data and with 90 percent per pixel missing data. Three-monthly harvesting reference data are provided. For a detailed data description refer to Reiche et al. 2015.

## load example data
data(fiji)

## show reference data
plot(loggedforest)
plot(stableforest,legend=FALSE,add=TRUE)

## extract pixel time series
#option 1: define cell  
cell<-2901
#option 2: select cell  
plot(rhv,3)
cell <- click(rhv, n=1, cell=TRUE)[,1]

#create time series using bfastts (bfast package)
hv <- bfastts(as.vector(rhv[cell]),as.Date(getZ(rhv)),type=c("irregular"))
hh <- bfastts(as.vector(rhh[cell]),as.Date(getZ(rhh)),type=c("irregular"))
hvhh <- bfastts(as.vector(rhvhh[cell]),as.Date(getZ(rhvhh)),type=c("irregular"))
ndvi <- bfastts(as.vector(rndvi[cell]),as.Date(getZ(rndvi)),type=c("irregular"))
ndvi90 <- bfastts(as.vector(rndvi90[cell]),as.Date(getZ(rndvi90)),type=c("irregular"))

#plot time series
plot2ts(ndvi,hv,lab_ts1="Landsat NDVI [MD=org]",lab_ts2="PALSAR HV [dB]")
plot2ts(ndvi90,hv,lab_ts1="Landsat NDVI [MD=90]",lab_ts2="PALSAR HV [dB]")

multifuse's People

Contributors

jreiche avatar loicdtx avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.