Multispectral processing on geospatial raster data
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



Sat-process is a Python library for processing sensor specific geospatial raster data. Two sensor classes are provided here: landsat8 and sentinel2, The Landsat8Scene class is used to create a 'scene' from original landsat-8 pathrow images and metadata files, while the Sentinel2Scene class creates a 'scene' from sentinel-2 tiles and associated metadata. The core library can be used to easily build new sensor classes by using the Landsat8Scene and Sentinel2Scene classes as examples.

Using sat-process

The sat-process workflow involves creating a 'Scene' from existing data, which can then be used to generate a variety of 'Products', depending on what is defined for that sensor. More precisely, a Scene is a collection of Products covering the same spatial region for a single date/time. The Scene class (e.g., the Landsat8Scene class) determines what products may be generated from the data.

Generate a proach product is a function of the scene:

from satprocess.scene import Landsat8Scene

scene = Landsat8Scene(filenames, metadata=mtlfilename)


There are several standard products available within sat-process, depending on specific sensor.

Products are generated by calling the function of the same name on that scene.

scene = Landsat8Scene(filenames, metadata=mtlfilename) ndvi = scene.ndvi()

The returned ndvi object is a Gippy GeoImage with one band, which can then be further used. Additional calls to .ndvi() will return the already processed GeoImage rather than reprocessing it. The Scene.available_products() function will return a dictionary of all the available products are their description.

The product functions accept a filename keyword, if provided the output product will be saved to that file. Otherwise, if the product produces an output (see virtual products) then it will be saved to the scene.outpath directory (deffaults to current working directory).

For a given Scene, see what products are available via

Below is a list of all the products that appear across the base Scene class, Landsat8Scene, and Sentinel2Scene.

Product Products Required Bands required Description
dc original files
Digital counts from the sensor, before conversion to radiance
pan original files
A panchromatic band (typically higher resolution)
rad dc
Apparent radiance, corrected for viewing geometry and date
toa rad or dc
Top of the atmosphere reflectance
color any any 3 bands A 3-band byte-scaled image (default: red, green, blue)
ndvi toa nir, red Normalized Difference Vegetation Index
evi toa nir, red, blue Enhanced Vegetation Index
pansharpen pan + dc/rad/toa red, green, blue Pansharpened visible bands

Band Names

The above products rely on specific bands in order to work, so sat-process uses general band names for common spectral bandpasses. The average ranges for spectral bandpasses are given in the table below, along with the band numbers for several sensors.

Band Name Band Ranges Landsat 5 Landsat 7 Landsat 8 Sentinel 2 MODIS
Coastal 0.40 - 0.45     1 1  
Blue 0.45 - 0.5 1 1 2 2 3
Green 0.5 - 0.6 2 2 3 3 4
Red 0.6 - 0.7 3 3 4 4 1
Pan 0.5 - 0.7   8 8    
NIR 0.77 - 1.00 4 4 5 8 2
Cirrus 1.35 - 1.40     9 10 26
SWIR1 1.55 - 1.75 5 5 6 11 6
SWIR2 2.1 - 2.3 7 7 7 12 7
LWIR 10.5 - 12.5 6 8      
LWIR1 10.5 - 11.5     10   31
LWIR2 11.5 - 12.5     11   32