WELCOME TO THE STARFM HOME PAGE!

 

(The latest release of STARFM is 1.1.1)

 

 

Description

===========

 

This program predicts Landsat surface reflectance based on the Spatial and Temporal Adaptive Reflectance Fusion Model (STARFM) by Gao et al. (2006). It blends Landsat and MODIS surface reflectance by fusing high-frequency temporal information from MODIS and high spatial resolution information from Landsat. The program has been tested in Linux system. Due to the limited resources, the STARFM developers at the NASA Goddard Space Flight Center will not be responsible for adjusting or supporting the package correctly. However, we will welcome any questions, comments or suggestions, and will respond on a time-available basis based on our interests and requirements. Communication concerning the STARFM package may be directed to this email address: StarFM.Help@gmail.com

 

<Download Code> (43K)

<Download Code and Examples> (27MB)

 

Reference

 

Gao, F., Masek, J., Schwaller M., and Hall, F., (2006). On the Blending of the Landsat and MODIS Surface Reflectance: Predict Daily Landsat Surface Reflectance, IEEE Transactions on Geoscience and Remote Sensing, Vol. 44, No. 8, pp. 2207-2218.

 

<Download Paper> (IEEE TGRS subscribers)

 

 

Installation

==========

 

% gzip -d StarFM_v*.tar.gz

% tar -xvf StarFM_v*.tar

 

% ls *

StarFM/source

StarFM.h

StarFM_main.c

StarFM_compute.c

StarFM_util.c

StarFM_alloc.c

Makefile

 

StarFM/simulation_test

StarFM/simulation_test/change_veg 

StarFM/simulation_test/road_veg 

StarFM/simulation_test/water_veg

(include simulated testing files)

 

StarFM/reflectance_test (full version only)

(include MODIS and Landsat testing files)

 

then type

% make

under StarFM/source directory and it should create executive program called "StarFM.exe"

 

 

Usage

======

 

> StarFM.exe input.txt

where input.txt contains the input files and parameters (see details below)

 

 

Inputs

======

 

All Landsat and MODIS data should be first pre-processed and co-registered and saved in

  - same resolution   (Landsat resolution)

  - same image size  

  - same map projection

  - same image extent (orthorectifed and precisely registered)

  - same scale factor (10000 for MODIS reflectance products)

  - "short int" type (2 byte/pixel) for the scaled reflectance data

  - "unsigned char" type (1 byte/pixel) for optional mask and classification file

 

Major inputs include:

  - Landsat and MODIS surface reflectance image pair in binary format

  - MODIS surface reflectance for the prediction date

  - optional Landsat classification map for input pair

  - optional Landsat and MODIS cloud and poor quality data mask

  - control parameters

 

Detailed input parameters and explanations:

 

STARFM_PARAMETER_START

# number of input pairs, maximum = 2

        NUM_IN_PAIRS =

# input MODIS files

        IN_PAIR_MODIS_FNAME =

# optional mask file, same order MODIS files and use NONE if not exist

        IN_PAIR_MODIS_MASK =

# input Landsat files in the same order as MODIS

        IN_PAIR_LANDSAT_FNAME =

# optional mask file for Landsat

        IN_PAIR_LANDSAT_MASK =

# optional classification map in the same order as input pairs

# classification map has to be generated from input Landsat data

# with as many separable classes as possible

        IN_PAIR_CLASSIFICATION_MAP =

# MODIS input for the prediction date

        IN_PDAY_MODIS_FNAME =

# optional mask file for MODIS

        IN_PDAY_MODIS_MASK =

# output Landsat prediction file

        OUT_PDAY_LANDSAT_FNAME =

# number of rows

        NROWS =

# number of columns

        NCOLS =

# spatial resolution

        RESOLUTION =

# scale factor for input reflectance file

        SCALE_FACTOR =

# fill value for Landsat surface reflectance

        LANDSAT_FILLV =

# Landsat data range

        LANDSAT_DATA_RANGE =

# uncertainty in the same unit as the scaled reflectance

        LANDSAT_UNCERTAINTY =

# fill value for MODIS surface reflectance

        MODIS_FILLV =

# MODIS data range

        MODIS_DATA_RANGE =

# uncertainty for MODIS

        MODIS_UNCERTAINTY =

# spatial information flag, "ON" is strongly suggested

        USE_SPATIAL_FLAG = ON

# maximum search distance for the spectral similar neighbor pixels

        MAX_SEARCH_DISTANCE =

# number of slice for the spectral similar test (pure pixel)

        NUM_SLICE_PURE_TEST =

# optional replacement option for poor prediction (NEW to the paper)

# program will check and replace low quality prediction if this value is given 

# this is useful for a small object to utlize temporal information from

# a same type large object that is beyond the searching distance

# define minimum acceptable percentage of samples within searching window

        MIN_SAMPLE_PERCENT =

STARFM_PARAMETER_END

 

(use # for comments)

 

 

Output

======

 

- Landsat surface reflectance for the prediction date in binary format.

  It also comes with an associated ENVI header file.

- Samples used for prediction within searching window in basis point (unit: 1/10000)

  valid data range is 0 - 10000 (high values normally represent better prediction)

  32767 means the replacement from the best prediction look-up-table

 

 

Testing Data

============

 

1) simulated data fusion

 

- StarFM/simulation_test/water_veg (see Fig. 2 in Gao et al.)

 

"input_use_spatial.txt"

use t1 image pair to predict reflectance for t2 using spatial information.

 

"input_no_spatial.txt" 

use t1 image pair to predict reflectance for t2 without using spatial information.

 

This example shows the difference with and without using spatial information.

The "USE_SPATIAL_FLAG" is set to "ON" for the rest of tests.

We strongly recommend to use spatial information in the prediction. 

 

- StarFM/simulation_test/change_veg (see Fig. 3 in Gao et al.)

 

"input_t2.txt"

uses t1 and t4 pairs to predict t2

 

"input_t3.txt"

uses t1 and t4 pairs to predict t3

 

This example shows how StarFM algorithm handles changing objects.

 

- StarFM/simulation_test/road_veg (see Fig. 5 in Gao et al.)

 

"input_t2.txt"

uses t1 and t4 image pairs to predict t2

(with replacement option on, for MIN_SAMPLE_PERCENT <= 2% )

 

"input_t3.txt"

uses t1 and t4 image pairs to predict t3

 

This example shows how StarFM handles linear objects.

 

2) Actual Landsat data fusion

(full version only, compact version need to download separately)

 

"input.06-04-01.*.txt"

use 05-24-01 image pair to predict 06-04-01 Landsat surface reflectance

(used default slice approach for spectral similar testing)

 

"input.07-11-01.*.txt"

use 05-24-01 image pair to predict 07-11-01 Landsat surface reflectance

(used defined classification map for spectral similar testing)

 

"input.08-12-01.*.txt"

use 07-11-01 image pair to predict 08-12-01 Landsat surface reflectance

(used mask file to exclude low quality data or clouds)

(with replacement option on, for MIN_SAMPLE_PERCENT <= 1%)

 

"input2.07-11-01.*.txt"

use 05-24-01 and 08-12-01 image pairs to predict 07-11-01

(with replacement option on, for MIN_SAMPLE_PERCENT <= 2%)

 

 

Appendix

=========

 

1)      MODIS data preparation

 

MODIS inputs can be either daily surface reflectance (MOD09) or 16-day nadir BRDF-adjusted surface reflectance (NBAR) product (MOD43B4 or MCD43A4). They need to be preprocessed before using as inputs to STARFM.

First, order MODIS tiles that cover whole Landsat scene on the Landsat acquisition date and prediction dates from http://edcimswww.cr.usgs.gov/pub/imswelcome/

Second, use MODIS reprojection tool (MRT) to mosaic and reproject MODIS tiles to Landsat projection, resolution and extents. The MRT can be downloaded from http://lpdaac.usgs.gov/landdaac/tools/modis/index.asp

 

2)      Landsat data preparation

 

Landsat DN values need to be calibrated and atmospherically corrected and saved in same format as MODIS surface reflectance (2-byte integer per pixel with scale factor of 10000) with one file per band.

 

Note that MODIS and Landsat bands use different band number sequence. You can relate them with

Landsat            MODIS

   1                   3

   2                   4

   3                   1

   4                   2

   5                   6

   7                   7

 

3)      Sample C shell scripts for the LEDAPS and MODIS NBAR data

 

The Landsat Ecosystem Distrubance Adaptive Processing System (LEDAPS: http://ledaps.nascom.nasa.gov/ledaps/ledaps_NorthAmerica.html) process Landsat GeoCover data from digital number to surface reflectance using MODIS like approach. Here are the sample scripts that take LEDAPS surface reflectance and MODIS NBAR data (MCD43A4) as inputs to predict Landsat surface reflectance using STARFM algorithm.

 

<Download C Shell Script>

 

Note that scripts reply on the MRT and HDF4 commands. The MRT and HDF4 should be first installed in your system. The HDF4 can be downloaded from http://hdf.ncsa.uiuc.edu/products/hdf4/index.html