Land Cover/Use Classification using the Semi-Automatic Classification Plugin for QGIS

From AWF-Wiki
(Difference between revisions)
Jump to: navigation, search
(Classification)
(Classification)
Line 71: Line 71:
  
 
Create some classification previews to get an overview of how the process will perform. This also helps to improve on the spectral signatures of training input for better classification results.
 
Create some classification previews to get an overview of how the process will perform. This also helps to improve on the spectral signatures of training input for better classification results.
# Click {{mitem|text=SCP Dock --> Classification dock --> Macroclasses}} to set the colours for each class.
 
 
# Under {{mitem|text=SCP Dock --> Classification dock --> Classification algorithm}}, check {{button|text=Use C_ID}} to use land cover classesIDs for classification. For the '''algorithm''', select {{button|text=Maximum Likelihood}}
 
# Under {{mitem|text=SCP Dock --> Classification dock --> Classification algorithm}}, check {{button|text=Use C_ID}} to use land cover classesIDs for classification. For the '''algorithm''', select {{button|text=Maximum Likelihood}}
 
# On the {{button|text=Working Toolbar}} click the button [[File:Preview_pointer.PNG]] to activate the classificatin preview pointer.
 
# On the {{button|text=Working Toolbar}} click the button [[File:Preview_pointer.PNG]] to activate the classificatin preview pointer.

Revision as of 22:52, 30 June 2019

Contents

Install and set up SCP plugin

  • Click Plugins --> Manage and Install Plugins.
  • Type in the search bar Semi-Automatic Classification, click on the plugin name and then on Install plugin.

SCP plugin intall.png

  • Right-click on the QGIS main manu to open the Panels and make sure the following are checked SCP Dock, SCP Edit Toolbar, and SCP Working Toolbar.

SCP Tool.png

  • Click Qgis scp bandset button2.png SCP Working toolbar --> Settings

Qgis scp setting.png

Set the Available RAM (MB) to a value that should be half of the system RAM. For instance, if your system has 2GB of RAM, set the value to 1024MB, (4GB: 2048MB; 8GB: 4096MB; 16GB: 8192MB).

Defining classification inputs in SCP-plugin

  • Load a multiband file of Sentinel-2 product L1C and L2A stored as digital numbers in data format unsigned integer 16bit (e.g. \lucc\s2\Subset_S2A_MSIL2A_20170619T_MUL.tif) into the QGIS canvas.
  • Data source Manager --> Browser --> XYZ Tiles. Select Google Satellite as background layer.
  • Load the European Urban Atlas as background vector layer \lucc\DE021L1_GOTTINGEN\Subset-Goe_DE021L1_GOTTINGEN_UA2012_UTM32N.shp

We need to define two inputs for SCP:

    • a multiband input image to be classified and
    • a training input as vector or spectral signature file.
  • In the SCP Dock click Band set Qgis scp bandset button.png or click Qgis scp bandset button2.png SCP Working toolbar --> Band set , use the button Refresh list Refresh list.PNG and the drop-down menu-bar to select the multiband reflectance file previously loaded into the QGIS canvas as input image.
  • Next, click Quick wavelength settings and select Sentinel-2 from the drop-down list in order to automatically set the Center wavelength for each band and the Wavelength unit.
  • In the Band set definition enter 0.0001 for all bands in the column Multiplicative factor converting from digital numbers (unsigned integer 16bit) to reflectance values (float 32 bit, data range 0 to 1).

Quick wavelength settings.png

  • In the RGB list Working toolbar.PNG of the Working Toolbar, type 3-2-1 to display natural color composite. Also, type 7-3-2 or 7-9-3 to display false color composites. While changing the color composite; also use the buttons cumulative_stretch Cum stretch.PNG and std_dev_stretch Stdv stretch.PNG for better displaying the Input image (i.e. image stretching).
  • Define a training input file in order to collect ROIs (regions of interest or training areas) and spectral signatures.
  • Click SCP Dock --> Training input, use the button Create a new training input Training input.PNG to create a training signature file with the extension .scp.

Scp input.png

Collection of ROIs and Spectral signatures

ROIs (regions of interest) can be created by drawing polygons using the button Create a ROI polygon Create polygon.PNG or by an automatic region growing algorithm using the button Activate ROI pointer ROI pointer.PNG. The region growing algorithm can create more homogeneous ROIs (i.e. standard deviation of spectral signature values is lower than manually drawn ones); the manual creation of ROIs can be useful in order to account for the spectral variability of classes. Here we will use the automatic region growing algorithm.

  1. From SCP Dock --> Training Input --> ROI option, check the function Display NDVI.
  2. Next, click the button Activate ROI pointer ROI pointer.PNG, and notice that the cursor displays a NDVI value which changes moving the cursor over the image pixels.
  3. Zoom-in to the points and click on a land cover/use pixel associated with the point attribute to create a ROI.
  4. On the SCP Working Toolbar, increase the Dist parameter Dist.PNG (e.g. from 0.010000 to 0.100000). Define the number of selected pixels for one ROI Min as 10 and Max as 30. Click the button Redo the roi at the same point Redo.PNG to capture more spectrally similar pixels.
  5. Still under SCP Dock --> Classification dock --> ROI creation, set MC_ID, C_ID, MC_info and C_info (see table of the simplified classification scheme), and click on the button Save temporary roi to training input Qgis scp save sig.png to a record spectral signature.
  6. Set custom colors for ROIs by double-clicking on a Color field from the ROI Signature list. A Select color window opens. Click first on an empty field below Custom colors. Then specify a value for Red, Green and Blue using the RGB codes in the table of classification scheme. Click Add to Custom Colors.

Qgis scp color select.png.

  • Start with class Water (MC_ID = 5, C_ID = 7). Created ROIs will appear under ROI Signature list in the Creation Dock. Observe that all created ROIs have the same class information (i.e. MC_ID, MC_Info, C_ID and C_Info). Thus we need to assign the correct class to each ROI. This will be done by visual interpretation with the aid of color composites of the Sentinel-2 image (to identifiy different features), high resolution Google satellite scenes and a thematic Urban Atlas vector file. Repeat step 5 and 6 to record ca. 10 Water ROIs. Note, the Number in the C_ID field will be automatically increased and needs to be manually corrected.

Roi 1.png

  • If you made an error setting MC_ID, C_ID, MC_info or C_info, mark the field in the ROI list and edit the field with one left-click.
  • If you want to delete a signature, mark a signature in the ROI list and click Qgis scp roi delete.png.
  • When you are done, check location and correct assignment of ROIs by left double-click signatures in the ROI list zooming automatically to the extent of the corresponding ROI.
  • Double click on the SCP training input in the Layers Panel. In the Symbology tab set Fill style to No brush and Stroke color to a color of your choice.
  • Save your work: click Qgis scp roi export.png or click Qgis scp bandset button2.png SCP Working toolbar --> Basic tools --> Export signatures. Save in file format *.scp and *.shp (for later use in other classification software).

Assess Spectral Signatures

Premise: Different materials may have similar spectral characteristics. Such pixels could be misclassified due to inability of classification algorithms to correctly discriminate those spectral signatures. Thus it is important to review spectral signatures of training samples and repeatedly modify them until all class training sets achieve adequate spectral separability. This can be done by 1) displaying and assessing spectral plots and/or 2) calculating the spectral distances of signatures.

  • Load an example SCP training input file: \lucc\lucc_training_input.scp. Click SCP Dock --> Training input and click Open a training input.Qgis scp open training.png to open a training signature file with the extension .scp.
  • Arrange signatures in ascending order by C_ID with a left-click the Column name C_ID.
  • Highlight all signatures of one C_ID in the ROI Signature list holding CTRL + left-click or Shift + left-click on row numbers of the ROI signature list. Click Qgis scp merge sig.png Merge highlighted spectral signatures obtaining the average signature. The result is a new merged signature containing all ROIs of a class. Adjust the color field of the merged signature to the pre-defined color code.
  • Repeat this step for all C_ID classes.
  • Highlight all single signatures in the ROI list and click Qgis scp roi delete.png. Keep only merged signatures in the ROI list.

Qgis merged rois.png

  • Highlight all merged signatures and click Qgis scp add plot.png adding highlighted signatures to spectral signature plot.
  • Observe differences between different pairs of land cover classes accross all wavelength ranges in the spectral signature plot.

Qgis scp signature plot.png

  • For the highlighted signatures click the button Calculate spectral distances Calc sig diff.PNG
  • Click Signature details to unfold signature statistics for each wavelength range.

Qgis scp signature details.png

  • Click Spectral distances to reveal spectral signature (dis)similarity metrics.

Qgis scp signature distances.png

  • Examine scatter plots of the highlighted signatures: click Qgis scp add scatter.png.

Qgis scp scatter plot.png

Classification

Create some classification previews to get an overview of how the process will perform. This also helps to improve on the spectral signatures of training input for better classification results.

  1. Under SCP Dock --> Classification dock --> Classification algorithm, check Use C_ID to use land cover classesIDs for classification. For the algorithm, select Maximum Likelihood
  2. On the Working Toolbar click the button Preview pointer.PNG to activate the classificatin preview pointer.
  3. Then click a point on the image to display a classification preview in the map. Use the button Zoom to preview.PNG to zoom to the classification preview.
  4. When satisfied with the preview and training input open SCP Dock --> Classification dock --> Classification output and click the button Output button.PNG to specify an output destination. Results will be displayed in QGIS canvas after the processing.
  5. Repeat with other algorithms to compare their performance.

Accuracy assessment

This involves a comparison of the output land cover/use map from image classification with the independent reference/validation dataset. The result is an error matrix which allows for the computation of descriptive accuracy statistics for the overall classification exercise (i.e. overall accuracy) but also the accuracy of individual classes either as producer accuracy or user accuracy.

  1. Load the validation data (lucc_validation.shp) in QGIS.
  2. Open SCP --> Postprocessing --> Accuracy.
  3. Under Select classification to assess, use the button Refresh list Refresh list.PNG and the drop-down menu-bar to select the output map from image classification.
  4. Under select the reference shapefile or raster, use the button Refresh list Refresh list.PNG and the drop-down menu-bar to select the validation sample.
  5. Under Shapefile field, select C_ID and click the button Output button.PNG to save the error raster and execute the process.

Postprocessing accuracy.PNG

Classification accuracy results.PNG

Personal tools
Namespaces

Variants
Actions
Navigation
Development
Toolbox
Print/export