Travis-CI Build Status AppVeyor Build Status DOI Coverage Status


MODIStsp is a “R” package devoted to automatizing the creation of time series of rasters derived from MODIS Land Products data. MODIStsp allows to perform several preprocessing steps (e.g., download, mosaicing, reprojection and resize) on MODIS data available within a given time period. Users have the ability to select which specific layers of the original MODIS HDF files they want to process. They also can select which additional Quality Indicators should be extracted from the aggregated MODIS Quality Assurance layers and, in the case of Surface Reflectance products, which Spectral Indexes should be computed from the original reflectance bands. For each output layer, outputs are saved as single-band raster filescorresponding to each available acquisition date. Virtual files allowing access to the entire time series as a single file can be also created. All processing parameters can be easily selected with a user-friendly GUI, although non-interactive execution exploiting a previously created Options File is possible. Stand-alone execution outside an “R” environment is also possible, allowing to use scheduled execution of MODIStsp to automatically update time series related to a MODIS product and extent whenever a new image is available.

For more information, documentation and examples of use, please see MODIStsp website at

MODIStsp is developed and maintained by Lorenzo Busetto and Luigi Ranghetti, Institute of Remote Sensing of Environment - National Research Council - Italy (CNR-IREA)


To cite MODIStsp please use:

L. Busetto, L. Ranghetti (2016) MODIStsp: An R package for automatic preprocessing of MODIS Land Products time series, Computers & Geosciences, Volume 97, Pages 40-48, ISSN 0098-3004,, URL:

Important News !

Problems and Issues

System Requirements

MODIStsp requires R v >= 3.2.1 and GDAL (Geospatial Data Abstraction Library) v >= 1.11.1 with support for HDF4 raster format to be installed in your system. Brief instructions for installing R and GDAL can be found HERE.

Installation Instructions

Installing on Windows

You can install the stable version of MODIStsp from CRAN:


, or the development version (containing the latest improvements and bug fixes) from github:


Note that if the GTK+ library is not already installed on your system, installation may fail. In that case, please install and load the gWidgetsRGtk2 library beforehand:


Upon loading gWidgetsRGtk2, an error window will probably appear. This signals that library “GTK+” is not yet installed on your system or is not on your PATH. To install it press “OK”. A new window dialog window will appear, asking if you. want to install “GTK+”. Select “Install GTK” and then “OK” . Windows will download and install the GTK+ library. When it finishes, the RSession should be restarted and you should be ready to go !

In case RStudio does not automatically restart or continuously asks to install GTK+ again, kill it form “Task Manager” (or restart the R session from RStudio “Session” menu), reload RStudio and the try to reload gWidgetsRGtk2. If it loads correctly, you should be ready to go.

If it still fails, try downloading the GTK+ bundle from: (OR if on Win32)

, unzip the archive on a folder of your choice (e.g., C:\\Program Files\\GTK+), then add the path to its “bin” subfolder (e.g., C:\\Program Files\\GTK+\\bin\\ to your system PATH environment variable.

Restart your system and try loading again gWidgetsRGtk2: if it loads ok, you should be ready to install MODIStsp

Installing on Linux Systems

To install MODIStsp on Linux, you have to first install the following required dependencies:

On Debian and Ubuntu-based systems, to install those packages open a terminal and type:

sudo apt-get install r-cran-cairodevice r-cran-rgtk2 libcairo2-dev libatk1.0-dev libpango1.0-dev 
libgtk2.0-dev libglib2.0-dev libcurl4-openssl-dev libgdal-dev libproj-dev

On rpm-base systems, to install packages open a terminal and type:

sudo yum install libcairo2-devel libatk1.0-devel libpango1.0-devel gtk2 gtk2-devel 
glib2-devel libcurl-devel gdal-devel proj proj-devel proj-epsg proj-nad

Then, you can install the stable version of MODIStsp from CRAN:


, or the development version (containing the latest improvements and bug fixes) from github;


Installing on Mac

NOTE: The following installation notes should be valid for MODIStsp installation on R 3.4.0 and above with Mac OSX Sierra. They were mainly taken (i.e., blatantly copied…) from: Thanks to Zhiya Zuo for providing this!

To properly install MODIStsp you will need to first install package RGTk2. This is a somehow difficult operation. The following instructions should help:

1. Check your Mac OS X version and update if necessary:

Enter the following command in terminal to check your macOS version. Expected output is as below the dashed line —.

~$ sw_vers  
ProductName:    Mac OS X  
ProductVersion: 10.12.6  
BuildVersion:   16G29  

If your system is above 10.11, continue. Otherwise, upgrade it to Sierra.

Install homebrew if you do not have it already installed. homebrew is a very convenient package manager for macOS. To do so, open a terminal, copy the following command in it and hit Enter:

~$ /usr/bin/ruby -e "$(curl -fsSL"

Follow the instructions to get brew ready. When inserting your password, nothing will show up for security reasons. Just hit Enter when you are finished.

When brew is finished, copy the following command in terminal and hit Enter:

~$ touch ~/.bash_profile
~$ echo "export PATH=/usr/local/bin:$PATH
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/lib/pkgconfig/gtk+-2.0.pc:/opt/X11/lib/pkgconfig" >> ~/.bash_profile
~$ source ~/.bash_profile

2. Install the cairo library with x11 support. Enter the following into your terminal:

~$ brew uninstall --force cairo --ignore-dependencies
~$ brew cask install xquartz
~$ brew install --with-x11 cairo

3. Install the gtk+ library:

To do so, you first have to change the way homebrew wants to install gtk+. In an editor, write:

~$ brew edit gtk+

A text editor will open. Look in the file, and find a section that begins with “def install”. Substitute the current args section with the following text:

def install
 args = [
         # "--disable-visibility",
         # "--with-gdktarget=quartz",

Save the modified file using ctrl+x ctrl+c, followed by y to quit emacs. Now install the library using:

~$ brew install --build-from-source --verbose gtk+

4. Update your path so that gtk+ is recognized, using:

~$ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/lib/pkgconfig/gtk+-2.0.pc:/opt/X11/lib/pkgconfig

5. Install RGtk2 from source:

~$ cd ~/Downloads
~/Downloads$ R CMD INSTALL RGtk2_2.20.33.tar.gz

(Note that the name of the tar.gz file may vary depending on when you downloaded the file).

6. Open R and run:


hopefully, RGtk2 will load without errors! If so, you should be ready to go, and you can:

7. Install MODIStsp from CRAN:


or the development version from GitHub:

install_github("lbusett/MODIStsp", ref = "master")

Good luck!


The easiest way to use MODIStsp is to use its powerful GUI (Graphical User Interface) for selection of processing options, and then run the processing.

To open the GUI, load the package and launch the MODIStsp function, with no parameters:


This opens a GUI from which processing options can be specified (and eventually saved or loaded). After specifying all required parameters, clicking on “Start” will start the processing (see HERE for more detailed instructions).

MODIStsp can also be launched in non-interactive mode within an R session or script by setting the optional GUI parameter to FALSE, and the options_file parameter to the path of a previously saved JSON Options file. This allows to exploit MODIStsp functionalities within generic “R” processing scripts.

# --> Specify the path to a valid options file saved in advance from MODIStsp GUI 
options_file <- "X:/yourpath/youroptions.json" 
# --> Launch the processing
MODIStsp(gui = FALSE, options_file = options_file)

(see HERE for more detailed instructions and examples).

Code of Conduct

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.