This book provides a short introduction to satellite data analysis with R. Before reading this you should first learn the basics of the raster package.

Getting satellite images for a specific project remains a challenging task. You have to find data that is suitable for your objectives, and that you can get access to. Important properties to consider while searching the remotely sensed (satellite) data include:

  1. Spatial resolution
  2. Temporal resolution, including the return time; availability of historical images, and for a particular moment in time)
  3. Spectral resolution, that is, the parts of the electromagnetic spectrum (wavelengths) that are sensed
  4. Radiometric resolution (sensor sensitivity; ability to measure small differences)
  5. Quality (e.g. the presence of cloud-cover or of artefacts in the data (read about problems in Landsat ETM+)

There are numerous sources of remotely sensed data from satellites. Generally, the very high spatial resolution data is available as (costly) commercial products. Lower spatial resolution data is freely available from NASA, ESA and other missions. In this tutorial we’ll use freely available Landsat 8, Landsat 7, Landsat 5, Sentinel and MODIS data. The Landsat program started in 1972 and is is the longest running Earth-observation satellite program.

You can access public satellite data from several sources, including:


This web site lists 15 sources of freely available remote sensing data.

It is possible to download some satellite data using R-packages. You can use the MODIS or MODISTools package to search, download and pre-process different MODIS products.


Most remote sensing products consist of observations of reflectance data. That is, they are measures of the intensity of the sun’s radiation that is reflected by the earth. Reflectance is normally measured for different wavelengths of the electromagnetic spectrum. For example, it can be measured in the red, green, and blue wavelengths. If that is the case, a satellite image can be referred to as a “multi-spectral” (or hyper-spectral if there are many separate wavelengths). Therefore, a single ‘satellite image’ typically consists of a number of separate raster layers. In remote sensing jargon, these layers are referred to as “bands” (shorthand for “bandwidth”). Other commonly used jargon in remote sensing circles is “pixel”, which is equivalent to “grid cell”.


You can download all the data required for the examples used in this book here. Unzip the file contents and save the data to the R working directory of your computer.

You can also use the below script to download the data.

dir.create('data', showWarnings = FALSE)
if (!file.exists('data/rs/samples.rds')) {
    download.file('', dest = 'data/')
    unzip('data/', exdir='data')

R packages

Here is a list of some R packages for analyzing remote sensing data: