I have also updated the user manual that is available here.
In case the plugin is still not available inside QGIS Plugin Manager, you can perform a manual installation, following this guide.
Following the first basic tutorial of this new version.
The following is very basic tutorials for land cover classification using the Semi-Automatic Classification Plugin (SCP). It is assumed that you have a basic knowledge of QGIS.
The purpose of the classification is to identify the following land cover classes:
- Water;
- Built-up;
- Vegetation;
- Bare soil.
Following the video of this tutorial.
1. Data
Download the image from this archive (data available from the U.S. Geological Survey) and unzip the downloaded file.
The downloaded file is actually a Landsat Satellite image (pan-sharpened) including the following bands:
- Blue;
- Green;
- Red;
- Near-Infrared;
- Short Wavelength Infrared 1;
- Short Wavelength Infrared 2.
In this tutorial we pretend this dataset is a generic multi-spectral raster in order to focus on the classification process (in the next tutorial we are going to use an image whose bands are single rasters).
2. Set the Input Image in SCP
Start QGIS. In the SCP input click the button of the Input image, in order to select the file
sample_image.tif
. Once selected, sample_image.tif
is set as Input image, the image is displayed in the map and bands are loaded in the Band set.
We can display a Color Composite of bands: Near-Infrared, Red, and Green: in the Working toolbar, click the list RGB= and select the item
4-3-2
(corresponding to the band numbers in Band set). You can see that image colors in the map change according to the selected bands, and vegetation is highlighted in red (if the item 3-2-1
was selected, natural colors would be displayed).
Color composite RGB=4-3-2
3. Create the Training Input File
Now we need to create the Training input in order to collect Training Areas (ROIs) and calculate the Spectral Signature thereof (which are used in classification).
In the SCP dock click the button and define a name (e.g.
training.scp
) in order to create the Training input. The path of the file is displayed in Training input. A vector is added to QGIS layers with the same name as the Training input
(in order to prevent data loss, you should not edit this layer using QGIS functions).
Definition of Training input in SCP
4. Create the ROIs
We are going to create ROIs defining the Classes and Macroclasses. Each ROI identifies a land cover class through a Class ID. The Class ID codes used in this tutorial are illustrated in the following table (for now we assign the same code to Class ID and Macroclass ID).
Macroclasses
Class name | Class ID |
---|---|
Water | 1 |
Built-up | 2 |
Vegetation | 3 |
Bare soil | 4 |
ROIs can be created by manually drawing a polygon or with an automatic region growing algorithm.
Zoom in the map over the dark area (it is a lake) in the lower right region of the image. In order to create manually a ROI inside the dark area, click the button in the Working toolbar (you can ignore a message about wavelength unit not provided). Left click on the map to define the ROI vertices and right click to define the last vertex closing the polygon. An orange semi-transparent polygon is displayed over the image, which is a temporary polygon (i.e. it is not saved in the Training input).
TIP : You can draw temporary polygons (the previous one will be overridden) until the shape covers the intended area.
If the shape of the temporary polygon is good we can save it to the Training input.
Open the Classification dock to define the Classes and Macroclasses . In the ROI creation set MC ID = 1 and MC Info =
Water
; also set C ID = 1 and C Info = Lake
. Now click to save the ROI in the Training input.
After a few seconds, the ROI is listed in the ROI Signature list and the spectral signature is calculated (because Calculate sig. was checked).
As you can see, the C ID in ROI creation is automatically increased by 1. Saved ROI is displayed as a dark polygon in the map and the temporary ROI is removed. Also, in the ROI Signature list you can notice that theType is B, meaning that the ROI spectral signature was calculated and saved in the Training input.
Now we are going to create a second ROI for the built-up class using the automatic region growing algorithm. Zoom in the map over the blue area in the upper left region of the image.
In Working toolbar set the Dist value to 0.08 . Click the button in the Working toolbar and click over the blue area of the map. After a while the orange semi-transparent polygon is displayed over the image.
TIP : Dist value should be set according to the range of pixel values; in general, increasing this value creates larger ROIs.
In the ROI creation set MC ID = 2 and MC Info =
Built-up
; also set C ID = 2 (it should be already set) and C Info = Buildings
.
The ROI saved in the Training input
Again, the C ID in ROI creation is automatically increased by 1.
Create a ROI for the class
Vegetation
(red pixels in color composite RGB=4-3-2
) and a ROI for the class Bare soil
(green pixels in color composite RGB=4-3-2
) following the same steps described previously. The following images show a few examples of these classes identified in the map.5. Create a Classification Preview
The classification process is based on collected ROIs (and spectral signatures thereof). It is useful to create a Classification preview in order to assess the results (influenced by spectral signatures) before the final classification. In case the results are not good, we can collect more ROIs to better classify land cover.
Before running a classification (or a preview), set the color of land cover classes that will be displayed in the classification raster. In the ROI Signature list, double click the color (in the column Color) of each ROI to choose a representative color of each class.
Now we need to select the classification algorithm. In this tutorial we are going to select the Spectral Angle Mapping.
In Classification algorithm select the Spectral Angle Mapping Algorithm. In Classification preview set Size = 500; click the button and then left click a point of the image in the map. The classification process should be rapid, and the result is a classified square centered in clicked point.
In Classification algorithm select the Spectral Angle Mapping Algorithm. In Classification preview set Size = 500; click the button and then left click a point of the image in the map. The classification process should be rapid, and the result is a classified square centered in clicked point.
Previews are temporary rasters (deleted after QGIS is closed) placed in a group named Class_temp_group in the QGIS panel Layers.
TIP : When loading a previously saved QGIS project, a message could ask to handle missing layers, which are temporary layers that SCP creates during each session and are deleted afterwards; you can clickCancel and ignore these layers.In general, it is good to perform a classification preview every time a ROI (or a spectral signature) is added to the ROI Signature list. Therefore, the phases Create the ROIs and Create a Classification Preview should be iterative and concurrent processes.
6. Create the Classification Output
Assuming that the results of classification previews were good (i.e. pixels are assigned to the correct class defined in the ROI Signature list), we can perform the actual land cover classification of the whole image.
In the Classification output click the button and define the path of the classification output, which is a raster file (.tif). If Play sound when finished is checked in Classification process settings, a sound is played when the process is finished.
We can improve the classification using some of the tools described in the next tutorial.