Вы находитесь на странице: 1из 16

Flood Monitoring: a Tutorial Using the Semi-Automatic Classification

Flooding is the 'overflowing of the normal confines of a stream or other body of
water, or the accumulation of water over areas that are not normally
submerged' (IPCC, 2012: Managing the Risks of Extreme Events and Disasters to Advance Climate
Change Adaptation. A Special Report of Working Groups I and II of the Intergovernmental Panel on


Unfortunately, a severe flooding has affected Pakistan recently, inundating more

than one thousand villages as reported in this article by NASA. Flood monitoring
is fundamental in these emergency situations, and for planning actions of
This tutorial illustrates how to monitor floods performing the supervised
classification of Landsat images (however the same methodology could be
applied to other sensors such as MODIS images). In particular, we are going to
classify two images acquired in 2013 in Cambodia; in October, the heavy
seasonal rains were followed by the Typhoon Nari causing the flood along the
Mekong and Tonl Sap rivers, affecting more than a half-million people (for more
information about this and other flooding events, read the article by NASA here).
You can see the study area before and after the flood in this image by NASA.

Study area, Cambodia

(image available from the U.S. Geological Survey)

Before starting this tutorial, if using the Semi-Automatic Classification Plugin for
the first time, please follow the basic tutorial here.
We are going to classify a Landsat 8 image acquired on 17/05/2013 (before the
flood) and a Landsat 8 image acquired on 24/10/2013 (after the flood), in order to
assess the land cover change using a semi-automatic approach.
Download the Landsat image before the flood from here and the Landsat image
after the flood from here (images available from the U.S. Geological
Survey). Landsat 8 image includes the bands described in this table (each band
is a single 16 bit raster).

Band ID

Landsat 8 Band Number

Band 2
Band 3
Band 4
Band 5
Band 6
Band 7

Spectral Range
Short Wavelength Infrared 1
Short Wavelength Infrared 2

The following are the main classification steps:

1. Conversion of raster bands from DN to Reflectance for the image before
2. Creation of the ROIs and spectral signatures for the image before flood;
3. Classification of the image before flood;
4. Conversion of raster bands from DN to Reflectance for the image after
5. Classification of the image after flood;
6. Calculation of the land cover change.

The main approach is to classify Water defining a classification threshold in order

to identify only those pixels that are very similar to collected spectral signatures.
Following, the video of this tutorial and the description of the phases.

1. Conversion of raster bands from

DN to Reflectance for the image
before flood

The conversion of raster bands to surface reflectance, performing the imagebased atmospheric correction using the DOS1 method, aims to improve the
classification results.

Open QGIS and start the Semi-Automatic Classification Plugin;

In the main interface select the tab Pre processing > Landsat;
Select the directory that contains the Landsat 5 bands, and select
the output directory where converted bands are saved;
Check the option Apply DOS1 atmospheric correction, and
click Perform conversion to convert Landsat bands to reflectance
(leaving checked Create Virtual Raster);

SCP tab Landsat

At the end of the process, converted bands are loaded in QGIS; also, a
virtual raster named landsat.vrt is loaded (containing all the Landsat
bands converted to reflectance);
Select the Landsat virtual raster, left click and open its properties;
in Style select band 4 (i.e. Near-Infrared) for the red band, band 3 (i.e.
Red) for the green band, and band 2 (i.e. Green) for the blue band, and
click OK (if the image appear black, click the button Load cumulative
cut stretch in the Raster toolbar of QGIS).

Properties of the Landsat virtual raster

The result of the color composite is shown in the following image.

Landsat 8 color composite RGB=543

2. Creation of the ROIs and spectral

signatures for the image before
We need to collect the ROIs that define the land cover class of water. We do not
need to define other land cover classes because we are going to use a threshold
during the classification process.

Select the Landsat virtual raster as input image; we must however define
the band center wavelength in the Band set tab. As you can see, it is not
possible to move the bands (they are already ordered), therefore we just
need to select the Landsat 8 item under Quick wavelength settings;

SCP tab Band set

Define the training shapefile (for the ROI collection), and the signature list
file (which stores the spectral signatures calculated from ROIs or imported
from other sources) as described here (step 2);

Definition of the classification input

In the dock ROI creation click the button + beside Create a ROI and
then click a water area (blue/cyan pixels);
Under ROI Signature definition type a brief description of the
ROI inside
field Class
Information and Macroclass
Information, and assign a Macroclass ID and Class ID;
In order to save the ROI to the training shapefile click the button Save ROI
to shapefile; if the checkbox Add sig. list is checked, then the
spectral signature is added to the Signature list table;
Define the class color with a double click on the Color column in
the Signature list.

Collection of a ROI and spectral signature

It is important to collect ROIs of dark water and light water, as in the following

3. Classification of the image before

In order to classify only water, we are going to process the image using
the Spectral Angle Mapping algorithm with the definition of a threshold.
Depending on the threshold value, pixels will be classified as water if the angle

between the spectral signatures thereof and the spectral signatures collected in
the previous step is below the threshold value.
We need to find the maximum threshold value that allows for the identification
of all the water in the image. However, if the threshold value is too high then nonwater pixels are going to be incorrectly classified as water.

dock Classification,
under Classification
preview set Size = 500; check Use Macroclass ID, and select
the Spectral
Mapping algorithm;
under Threshold type 10 and click the button + and then click on the
image; after a few seconds, the classification preview will be displayed;

Classification preview

In order to perform the final classification, under Threshold type 20 and

click the button Perform classification and select where to save the
output (e.g. classification_before.tif).

Classification of water

You can download the classification along with the ROIs and Spectral signature
from here.

4. Conversion of raster bands from

DN to Reflectance for the image
after flood
As we did in the point 1 of this tutorial, we convert the Landsat band to surface
reflectance. It is recommended to open a new QGIS project for this.

Study area after the flood

5. Classification of the image after

Now we are going to classify the image after the flood. However, we are not
collecting new ROIs on this image; instead we use the spectral signatures
created in the step 2 of this tutorial.
Select the Landsat virtual raster as input image; in the Band set tab,
select the Landsat 8 item under Quick wavelength settings;
In the dock Classification, click Open and select the signature list file
that we have previously saved (i.e. SIG.xml);
In order to perform the classification, select the Spectral Angle
Mapping algorithm; check Use

ID; under Threshold type 20 and

classification then
(e.g. classification_after.tif).

button Perform

Classification of water, after the flood

You can download this classification from here.

6. Calculation of the land cover

In order to assess the flooded area we are going to calculate the land cover
change between the two classifications.
Open the classification_before.tif in QGIS;
Select the tab Post processing > Land cover change of the
SCP Main interface;

the classification_before.tif as reference
classification, and
select classification_after.tif as new
classification; click the button Calculate
change; select where to save the land cover change raster (in
addition, a file .csv will be saved in the same directory, containing
the statistics of the classes of change);

Land cover change report

After a few seconds the land cover change raster will be

displayed in QGIS; the statistics of the classes of change are
displayed in the tab Land cover change.

Land cover change raster

The land cover change raster can be downloaded from here.

As you can see in the land cover change raster, flooded area is represented in
red, while the blue area was not flooded; the area usually covered by water is
represented in green. This raster could be converted to shapefile or for instance
used in spatial analyses for estimating the population affected by this flood.
This tutorial showed a very rapid and affordable method of flood monitoring that
Of course, it is fundamental the acquisition of remote sensing images during the
flooding, and the cloud cover could prevent the acquisition of useful images; it is
worth mentioning other methodologies such as SAR (i.e. Synthetic Aperture
Radar) that are not affected by cloud cover, and allow for flood monitoring. Watch
the following footage about the Sentinel 1 satellite by ESA).