Landsat data processing (in ENVI)

I’ve been asked for advice on processing Landsat data a few times in the last couple of weeks. So, here are a few tips.

Accessing data 

Data can be acquired from a number of sources: has orthorectified data from a few time intervals; has a big archive of data (requires registration).

The United States Geological Service’s (USGS) Glovis offers more choice and a more convenient search tool. Glovis also has data from other sensors, such as Hyperion and ASTER.


Before we analyse the data we may want to preform some processing to normalise the data (to allow quantitative comparison between images) and remove atmospheric effects and noise. First we need to import the data: in ENVI we can use

Files>Open External Files>Landsat>Landsat GeoTiff with Metadata

Then we can start preparing the imagery (pre-processing). Calibration is the first step: here we can choose to convert the digital numbers to reflectance or radiance values. In most cases I’d choose reflectance. In ENVI there is an automatic Calibration tool:

Basic Tools>Pre-processing>Calibration Utilities>Landsat Calibration

Next, we want to remove the effects of atmospheric scattering. Some light is scattered by water vapour and aerosols, particularly at lower wavelengths in the blue part of the Electro-magnetic spectrum. If you have more comprehensive tools, such as the ENVI Atmospheric Correction module, you can perform corrections based on radiative transfer modelling. Otherwise we can do one of two things: assume that there will be no atmospheric effects (e.g. over deserts and other arid regions); or we can use an empirical correction. A common method is the Dark Object Subtraction.

Dark Object Subtraction (DOS) assumes that reflectance from dark objects includes a substantial component of atmospheric scattering. Hence we can measure the reflectance from a dark object, such as a deep lake, and subtract that value from the image. DOS in ENVI is found:

Basic Tools>Preprocessing>General Purpose Utilities>Dark Subtract

Noise Removal

If your image contains noise, such as striping or detector effects, we can attempt to remove it in  number of ways. Destriping removal tools are available. These normally assume striping to be regular and are based on identifying the fequency of strips. Alternatively we can mask out stripes if they have a distinctive signature, such as 0 or -9999. Masking however only excludes these pixels from analysis. A third option is to use a method such as Principal Components Analysis (PCA). For Landsat-7 ETM+ imagery acquired after the SLC failure in 2003 striping will be a problem.

Principal Components Analysis transforms the image data into a set of uncorrelated variables using statistical methods. The result of PCA is a image dataset in which each band is uncorrelated with the other bands: each band shows unique information. In normal image data neighbouring spectral bands are strongly correlated and therefore contain redundant information. By using PCA we can reduce this redundancy and emphasise the uncorrelated variables which are ‘hidden’ beneath the correlated data. What is more, PCA often reveals systematic noise in the data, which we can then remove. Incidently, PCA is used in hyperspectral remote sensing to reduce the number of bands used in image analysis without reducing the information content by reducing redundancy.

Figure: the first Principal Component (left) and 20th PC band from a Hyperion image subset over northern Finland. The 20th PC is almost entirely instrument noise.

PCA is a three step process: forward rotation, analysis, inverse rotation.  The forward rotation calculates the principal components. These are then viewed and redundant bands are identified (i.e. those which comprise of noise). In the inverse rotation the original dataset is recreated without redundant information. PCA in ENVI is found here:

Transform>Principal Components>Forward PC Rotation

Transform>Principal Components>Inverse PC Rotation

The forward PC bands can also be used in their own right, for example as input to a classification. However, it should be remembered that the PCA bands are not a representation of spectral reflectance but uncorrelated information in multi-spectral imagery.

The pre-processing prepares the satellite imagery for analysis. The aim is to normalise the imagery to allow inter-comparison between scenes: for example, for time-series analysis. Correcting for atmospheric effects, reducing noise, and converting the data to a geophysical  unit such as reflectances, achieves this. The data are now ready for analysis.

This entry was posted in Remote Sensing, Teaching and tagged , , , . Bookmark the permalink.

13 Responses to Landsat data processing (in ENVI)

  1. Alita D. Sangalang says:

    May I ask how do you remove the black bands (caused by SLC-off ) in Landsat image or shall I say how that image can be repaired of the black bands/stripes? Thank you.

  2. Sam says:

    When do we perfom atm. correction, specifically when using DOS. Is it before converting to reflectance or after ? any reason for either way.

    some people advise before, others after.

  3. Matthew says:

    Say I want to correct the SLC-off gaps using a gap fill method and a SLC-on image would you perform the gap fill before or after the Landsat calibration?

  4. Jacob Tetteh says:

    How do i remove clouds using envi software.

    • blamannen says:

      Jacob, the easiest way is masking. To do this use the cursor location/value tool to identify the spectral signature of clouds. Find the minimum value of clouds. They should be very bright across the visible-SWIR. Use for example a band 5,4,3 combination. Then Build a mask (Basic Tools) that uses the threshold identified using the cursor location/value. Take care that you choose Selected Areas Off in the options of the Build Mask tool.

      • sososound says:

        Oh okay, it didn’t work as I expected. My other comment is invalid. So, if I do the masking, do I have to put a range on every band? (most likely only on the ones needed?). And after the mask is created, how does it works on the image? After doing as you described there appeared a Mask file in the band lists but it just shows white background when loaded. How does it work tohether with the initial image? Thankes for an answer. Regards, Vera

      • blamannen says:

        if there is a large difference in cloud spectral reflectance it might be best to create a mask for each band individually. You identify the cloud spectral range using the cursor, then in Build Mask>Options choose the Range option (it may be called something like “Spectral Range”). Do this for each band then combine with Layer Stacking.

  5. Sam says:

    Is there a way of extracting image statistics to an Excel file

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s