Talk:Land Cover/Use Classification using the Semi-Automatic Classification Plugin for QGIS
(→Accuracy Assessment) |
|||
(3 intermediate revisions by one user not shown) | |||
Line 1: | Line 1: | ||
+ | =Accuracy Assessment= | ||
+ | ====Automatic multiple ROI creation==== | ||
+ | # Repeat the steps under '''Defining classification inputs in SCP-plugin''' to create a new training input file (this will be the validation dataset). Use '''Subset_S2A_MSIL2A_20170619T_MUL_BOA.tif''' as input image | ||
+ | # Click {{mitem|text=SCP --> Tools --> Multiple ROI creation}} to set parameters for ROI creation using random points. | ||
+ | # Assuming we want to create 50 ROIs with a minimum distance of 500 map units from each other (to avoid overlaps), set {{button|text=Number of points}} to 50 [[File:Number_of_points.PNG]], {{button|text=min distance}} to 200 and change the default ROI pixel size to Min 10 and Max 30). Set the '''Dist''' parameter to 0.03 | ||
+ | # Since we are not interested in ROI signatures, uncheck {{button|text=Calculate sig.}} , click {{button|text=Create points.}} and at the bottom right corner of the window and click the button [[File:Output_button.PNG]] to create multiple random ROIs. | ||
+ | |||
+ | [[File:Random_roi_creation.PNG|600px]] | ||
+ | |||
+ | |||
+ | ====Photo-interpretation of ROIs==== | ||
+ | The created ROIs will appear under {{button|text=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 photo-interpretation with the aid of different color composites (to identifiy different features) and high resolution Google satellite scenes (for this purpose, install '''OpenLayers''' plugin). | ||
+ | |||
+ | # Click {{mitem|text=Web --> OpenLayers plugin --> Google Maps --> Google Satellite}} to open Google satellite scene in QGIS. | ||
+ | # In the {{button|text=Layer panel}} drag the Google satellite scene to overlay the '''Subset_S2A_MSIL2A_20170619T_MUL_BOA.tif''' image. | ||
+ | # Double-click the first ROI under {{button|text=ROI Signature list}} to zoom in to the ROI. | ||
+ | # Open {{mitem|text=Properties --> Transparency}} and adjust the transparency of the '''Subset_S2A_MSIL2A_20170619T_MUL_BOA.tif''' image to view the Google satellite scene and correctly assign ROI class information (i.e. '''MC_ID, MC_Info, C_ID and C_Info'''). | ||
+ | # Repeat steps 3 and 4 to assign the correct class information for each ROI. | ||
+ | |||
+ | '''NB''': Class information for the validation data must be in conformity with the classification scheme in the training dataset. | ||
+ | |||
+ | |||
+ | To be updated for QGIS 3 | ||
+ | * For these tasks you may also use one processing toolbox model. | ||
+ | [[File:Qgis_convert_boa_model.png|600px]] | ||
+ | * Open the {{mitem|text=Processing --> Toolbox}} and {{mitem|text= Models --> Tools --> Add model from file}}. Load the previously downloaded model. | ||
+ | * The model should appear in the Models tab. | ||
+ | * Double click to open the model. | ||
+ | * Assign the layers to the right band numbers. | ||
+ | * Click {{button|text=OK}} | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
Note: In order to use the batch process in the Raster Calculator you need to first create all of the 9 band split tifs using Translate. Here again you can use the batch processing option. | Note: In order to use the batch process in the Raster Calculator you need to first create all of the 9 band split tifs using Translate. Here again you can use the batch processing option. | ||
+ | |||
+ | This batch does not work probably because there seems to be a bug in the processing toolbox raster calculator module: it does not correctly convert the datatype UInt16 to float32: | ||
+ | # Load the multiband raster file ''Subset_S2A_MSIL2A_20170619T.tif'' available in the course data. This contains all 13 bands of Sentinel-2 scene. | ||
+ | # Follow [[Split stack]] to extract bands 2, 3, 4, 5, 6, 7, 8, 11 and 12, using the multiband raster file ''Subset_S2A_MSIL2A_20170619T.tif'' as input layer. | ||
+ | # In the processing toolbar, type {{typed|text=Raster calculator}} into the search field to find the {{button|text=GDAL\OGR --> Raster calculator}} tool and open it. | ||
+ | * Click the button {{button|text=Run as batch process...}}, and use {{button|text=Add row}} [[Image:Add_rows.PNG]] button to add enough processing rows. | ||
+ | * Click the button {{button|text=...}} of '''Input layer A''' to select the single extracted bands as input layers (i.e. one per row). | ||
+ | [[File:Convert_DN_to_reflectance.png|600px]] | ||
+ | * Enter and repeat the expression A/10000 under '''Calculation in gdalnumeric syntax using +-/* or any numpy array functions (i.e. logical_and())''' and set '''Output raster type''' to {{button|text=Float32}} | ||
+ | [[File:batch2.png|600px]] | ||
+ | * Click the button {{button|text=...}} of '''Calculated''' to save output file | ||
+ | * Click {{button|text=Run}} |
Latest revision as of 15:01, 30 June 2019
[edit] Accuracy Assessment
[edit] Automatic multiple ROI creation
- Repeat the steps under Defining classification inputs in SCP-plugin to create a new training input file (this will be the validation dataset). Use Subset_S2A_MSIL2A_20170619T_MUL_BOA.tif as input image
- Click SCP --> Tools --> Multiple ROI creation to set parameters for ROI creation using random points.
- Assuming we want to create 50 ROIs with a minimum distance of 500 map units from each other (to avoid overlaps), set Number of points to 50 , min distance to 200 and change the default ROI pixel size to Min 10 and Max 30). Set the Dist parameter to 0.03
- Since we are not interested in ROI signatures, uncheck Calculate sig. , click Create points. and at the bottom right corner of the window and click the button to create multiple random ROIs.
[edit] Photo-interpretation of ROIs
The 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 photo-interpretation with the aid of different color composites (to identifiy different features) and high resolution Google satellite scenes (for this purpose, install OpenLayers plugin).
- Click Web --> OpenLayers plugin --> Google Maps --> Google Satellite to open Google satellite scene in QGIS.
- In the Layer panel drag the Google satellite scene to overlay the Subset_S2A_MSIL2A_20170619T_MUL_BOA.tif image.
- Double-click the first ROI under ROI Signature list to zoom in to the ROI.
- Open Properties --> Transparency and adjust the transparency of the Subset_S2A_MSIL2A_20170619T_MUL_BOA.tif image to view the Google satellite scene and correctly assign ROI class information (i.e. MC_ID, MC_Info, C_ID and C_Info).
- Repeat steps 3 and 4 to assign the correct class information for each ROI.
NB: Class information for the validation data must be in conformity with the classification scheme in the training dataset.
To be updated for QGIS 3
- For these tasks you may also use one processing toolbox model.
- Open the Processing --> Toolbox and Models --> Tools --> Add model from file. Load the previously downloaded model.
- The model should appear in the Models tab.
- Double click to open the model.
- Assign the layers to the right band numbers.
- Click OK
Note: In order to use the batch process in the Raster Calculator you need to first create all of the 9 band split tifs using Translate. Here again you can use the batch processing option.
This batch does not work probably because there seems to be a bug in the processing toolbox raster calculator module: it does not correctly convert the datatype UInt16 to float32:
- Load the multiband raster file Subset_S2A_MSIL2A_20170619T.tif available in the course data. This contains all 13 bands of Sentinel-2 scene.
- Follow Split stack to extract bands 2, 3, 4, 5, 6, 7, 8, 11 and 12, using the multiband raster file Subset_S2A_MSIL2A_20170619T.tif as input layer.
- In the processing toolbar, type Raster calculator into the search field to find the GDAL\OGR --> Raster calculator tool and open it.
- Click the button Run as batch process..., and use Add row button to add enough processing rows.
- Click the button ... of Input layer A to select the single extracted bands as input layers (i.e. one per row).
- Enter and repeat the expression A/10000 under Calculation in gdalnumeric syntax using +-/* or any numpy array functions (i.e. logical_and()) and set Output raster type to Float32
- Click the button ... of Calculated to save output file
- Click Run