Related Plugins and Tags

QGIS Python Plugins Repository

Version: [284] Semi-Automatic Classification Plugin 7.10.6

-updated the Landsat tool for preprocessing Landsat 9 data
-fixed issue for TOA conversion of Landsat 5 and 7 data

-fixed regression raster name in Cross classification
-fixed issue with LCS classification

-in Cross classification added option for linear regression and creating raster
from regression coefficients
-updated Batch for Cross classification

-fixed Batch process_settings and other minor fixes

-when QGIS project is loaded a new function allows for automatically running a
file batch.txt, if found in the plugin directory, as batch command
-batch added function send_notification for sending a smtp message during

-in Band calc added option NoData mask, if checked, every NoData pixel in input
will be NoData pixel in output
-fixed issue with classification and calculations
-fixed edit raster with scale and offset

-added option to Download products for downloading as virtual raster the portion
of the image defined with search coordinates (for Landsat and Sentinel-2)
-Stack raster bands can now export virtual raster if output extension is .vrt
-in Batch the function create_bandset if the option date is 'auto' it tries to
get the date of the image from the directory name
-in Band set list added button to sort Band sets by date if defined
-fixed Scatter plot
-fixed Band combination
-small fixes to Clip multiple rasters

-added Batch function process_settings to set the number of threads and RAM
value in MB
-fixed Band combination and Band calc NoData issue
-fixed functions of Batch

-added linear regression to Cross raster output
-fixed Zonal Stat Raster percentile

-fixed Sentinel-2 previews in Download products

-updated references

-fixed Sentinel-1 preprocessing reprojection issue
-fixed clustering ISODATA issue

-fixed Landsat processing error

-fixed accuracy overall metrics
-various bugfixing

-fixed clip multiple rasters

-fixed scale value 0.0001 for Landsat and Sentinel-2

-fixed Landsat 8 band 1 band set

-preprocessing of Landsat and Sentinel-2 bands are now converted to UInt16 with
scale 0.00001 to reduce file size
-added Landsat 8 band 1 processing
-fixed clip multiple rasters by coordinates
-fixed Classification report for degree unit

-fixed multiple ROI creation multiprocess

-fixed Classification and clustering issue with multiprocess

-fixed Band combination NoData issue

-other fixes to issue importing GDAL with Python > 3.8

-fixed issue importing GDAL with Python > 3.8

-tool Neighbor pixels fixed nodata value

-improved Band combination

-improved Band combination

-fixed virtual raster NoData issue

-fixed ASTER preprocessing regression

-added setting option for additional Python path of dependencies
-fixed ASTER conversion for thermal bands only list
-fixed virtual raster relative path
-fixed virtual raster warp scale and offset

-fixed regression of several tools

-fixed ROI creation issue
-in Band calc added option of selection calculation data type
-improved Band combination and cross classification tools

-fixed scale and offset reprojecting with gdalwarp

-optimized cross classification
-optimized band combination
-optimized classification erosion
-fixed regression in Accuracy
-fixed vector to raster compression
-in several tools allow different projections of input

-fixed regression in Accuracy and Land cover change

-improved Cross classification and Band combination performance

-in Classification dilatation replaced pixel connection option with circle
-improved Classification dilatation performance
-add Batch variable !temp_dir! for temporary directory of SPC

-improved peformance in tool Neigbor pixels

-in tool Neigbor pixels added option for circular matrix (default square)
-fixed projection issues in several tools
-fixed search of Sentinel products if not available

-minor fixes to messagebar and batch checking

-fixed write raster function for data type

-fixed Batch variables with spaces

-fixed Band calc check expression for spaces
-fixed Mosaic tool batch
-added output directory creation for several tools
-added Batch option to remove all the band sets
-added Batch option to unload bands from QGIS when removing band from band sets
or removing band sets

-in Mosaic tool added option for virtual raster output

-fixed clip multiple raster issue

-fixed minor issue layer id

-improved division of raster sections for multiprocessing

-fixed clip multiple raster for multiband rasters
-fixed band calc for multiband rasters

-improved the multiprocessing performance
-added option for virtual raster output in several tools
-improved reprojection if required in several tools

-fixed issue band combination
-fixed issue cross classification
-updated smtp to use TLS on port 587

-fixed issue with conversion to raster

-fixed scale in raster output

-fixed reclassification output format

-zonal stat raster also saves a csv with values

-fixed issue with QGIS 3.18 while removing training input during project save
-fixed issue with refreshLayerLegend
-fixed issue with Random Forest using classification file

-new tool for analysis of neighbor pixel with convolution matrix
-improved performance with multiprocessing calculations
-fixed conversion to vector

-fixed issue importing shapefile
-fixed scatter plot issue

-added undo and redo buttons in SCP Dock to undo the last 10 changes in the ROI
-added alternative search for Sentinel-2 image
-the backup file of training input is created when the QGIS is closed
-fixed row height in tables
-fixed Sentinel-1 preprocessing issue

-fixed regression in managing scp file

-fixed check crs
-several bug fixes

-fixed issue random forest
-USGS library ordered alphabetically
-improved import signatures

-training input vector is saved as gpkg
-export signatures as gpkg
-better compatibility with custom projections
-general use of gpkg
-fixed issue in DOS1 correction
-attempt to fix subprocess issue in Windows

-fixed subprocess issues in Windows for random forest, Sentinel-1 preprocessing,
and other processes

-in tab Reclassification added buttons for importing and exporting
reclassification table
-fixed issue with custom variable name in reclass multiprocess

-added settings for checking subprocess SNAP
-fixed issue Band calc refresh list

-fixed Sentinel-1 preprocessing

-improved Sentinel-1 and Sentinel-3 download settings
-fixed update issue

-improved Sentinel-2 download for using primarly Google APIs for downloading

-improved context menu in SCP dock

-added context menu in SCP dock
-fixed issue with SCP dock editing of macroclasses
-fixed issue with classification band set
-fixed issue with autosave ROI

-added option for extent as reference in tab vector to raster
-fixed mosaic issue

-Landsat preprocessing fixed compatibility with Collection 2 products

-fixed settings

-fixed settings

-fixed settings

-fixed settings

-fixed settings

-fixed settings

-fixed settings

-fixed settings

-in Settings added line edit for paths of Python executable and GDAL directory
-unit test for Mac OS

-fixed issue with multiple ROI calculation
-fixed write raster scale in band calc

-fixed write raster scale in band calc
-attempt to fix MacOS multiprocessing issue

-attempt to fix MacOS multiprocessing issue

-insert html in band calc for allowing multiple lines with br
-attempt to fix MacOS multiprocessing issue

-fixed classification sieve issue with path containing special characters

-fixed multiple ROI creation issue with coordinate reference system

-fixed vegetation USGS library

-updated Download USGS spectral library tool for USGS spectral library version
-window and splitter sizes are saved in registry

-fixed classification to vector
-set window size

-fixed issue with random point creation

-fixed issue with clustering isodata

-fixed issue with clustering isodata

-fixed issue with clustering with nan values

-fixed classification mask reset box

-fixed class signature memory issue
-fixed issue with DOS1 calculation
-fixed issue with clustering of multiband raster

-converted to multiprocess the tool classification dilation
-converted to multiprocess the tool classification erosion
-converted to multiprocess the tool cloud mask
-converted to multiprocess the tool class signature
-converted to multiprocess the tool mosaic
-converted to multiprocess the tool PCA
-converted to multiprocess the tool scatter plot
-in Band calc improved the variable bandset{LIST_OF_BANDSETS}bNUMBER_OF_BANDSET
e.g. sum(bandset{1,2,3}b1) for the sum of the first bands of the bandsets 1, 2,
and 3, or similarly using ranges e.g. sum(bandset{1:3}b1)  or list of ranges
e.g. sum(bandset{1:2, 3:4}b1)
-fixed issue of tool zonal stat raster
-fixed issue of nan values in spectral plot
-fixed issue related to classification to vectory symbology
-fixed land cover change and cross classification reports

-added splitter to several tabs of the main interface and plots

-added import of gpkg
-fixed issue with maximum likelihood threshold
-fixed issue with clip multiple raster name
-fixed issue with stratified point creation

-fixed regression in clustering tab

-fixed issue with scatter plot of multiband raster
-fixed issue changing color of ROIs
-fixed regression clip multiple rasters

-fixed regression with band set

-fixed issue with Random Forest
-fixed issue #130 with band set and band calc expressions

-fixed issue with class signature tool
-fixed issue with news on startup
-fixed issue with classification mask

-fixed issue with localization of algorithm names

-updated clustering to multiprocess

-fixed an issue with clustering on Windows

-fixed an issue with clustering
-improvements to French translation thanks to Antoine Denis

-fixed an issue with clip multiple rasters
-fixed an issue with spectral plot of signatures

-fixed an issue with menu and localization
-improvements to French translation thanks to Antoine Denis

-fixed an issue with isodata clustering

-fixed an issue with classification tab and thresholds
-accuracy and land cover change are multiprocess

-fixed an issue with accuracy and land cover change tabs

-fixed an issue in classification tab

New version with several improvements

New tools
- Band set list tab for managing band sets and double click to define active
band set and functions to import export band sets and button to display RGB
- Random forest tab for classifying the band set using training input with
Random Forest (ESA SNAP required)
- Sentinel-1 tab for processing Sentinel-1 GRD products polarizations VH and VV
(ESA SNAP required) based on the preprocessing steps in
- GOES tab for processing GOES 16 and GOES 17 images
- Zonal stat raster tab for calculating raster statistic in zones defined by a
reference vector or raster and for each zone value creating rasters filled woth
the corresponding output statistic, named as outputnameZoneValue (e.g. output1,
output2, output3)
- Classification tab that replaces the classification dock
- Reproject raster bands that allows for reprojecting a band set to a new
projection with the option of using a reference raster for alignment and extent
or setting the EPSG value and pixel resolution manually; methods of resampling:
nearest_neighbour, average, sum, maximum, minimum, mode, median, first_quartile,

Implemented parallel processing for several tools
- Classification
- Band calc
- ASTER preprocessing
- GOES preprocessing
- Landsat preprocessing
- MODIS preprocessing
- Sentinel-2 preprocessing
- Sentinel-3 preprocessing
- Clip multiple rasters
- Zonal stat raster
- Reclassification
- Cross classification
- Band combination
- Classification to vector
- ROI creation and signature calculation
- Spectral distance of band sets

Main interface window
- Renewed interface with tree view menu, a filter for searching tools, and a new
tab Help for displaying the guide of tools

SCP Dock
- ROI signature list structured as tree of macroclasses
- added table filter for ROIs
- new button for removing training input
- Classification moved to main interface

Tab Band calc
- added the iteration of calculations over band sets entering in the first line
forbandsets e.g. forbandsets[1:3] for iterating over a range or
forbandsets[1,2,3] for iterating selected band sets; it is possible to enter a
string after ] to filter names of first band in band set (e.g.
- added the iteration of calculations over dates (format yyyy-mm-dd) of band
sets entering in the first line forbsdates e.g.
forbsdates[2020-01-01:2020-03-30] for iterating over a range or
forbsdates[2020-02-01,2020-03-11,2020-04-21] for iterating selected dates, also
list of ranges such as forbsdates[2010-01-01:2010-03-30, 2010-08-01:2010-08-31,
2010-10-01:2010-12-31]; it is possible to enter a string after ] to filter names
of first band in band set
- added the iteration of bands in a band set or a range of band sets entering in
the first line forbandsinbandset (e.g. forbandsinbandset[1] for iterating over
bands in the first band set) and in the following expression the variable #BAND#
to refer to the iterated band (e.g. where("#BAND#">1, 1, 2) @"#BAND#")
- added the possibility to use the output name of calculation as variable for
following calculations
- added the possibility to add the calculation result to a band set using the
number in the output name such as @output1 or to current band set with # such as
- added the possibility to set the output path defining the output name with
this structure @[email protected], also with the variable #BANDSET# such as
@#BANDSET#@name to save the calculation in the directory containing the first
band of the current band set. It is recommended to avoid the use of characters #
and @ in the raster name
- added the possibility to create temporary output defining the output path
(i.e. temp) and output name with this structure @[email protected]
- added the option to create virtual raster output (i.e. .vrt files) made of
.tif files from parallel processing
- added the variable "bandset#b*" for using all the bands of active band set in
expressions such as np.max("bandset#b*")
- added the variable "bandsetNb*" for using all the bands of band set N in
expressions such as np.max("bandset1b*")
- added the variable "bandsetNbL" for referring to band set N and Band L in
expressions such as "bandset1b1"
- added the variable "bandset*bL" for using the L band of all the band sets in
expressions such as np.max("bandset*b1")
- added the variable "bandset{date}bL" for using the L band of all the band sets
in the list of dates or range of dates e.g.
- added table filter for band names
- added the possibility to enter !function! followed by an expression of Batch
to execute a function using raster names (also previous output names) in the
command and the variables !directory! and !file! to refer to the output
directory (defined after Run) and relative output file name (defined with @
after the command) respectively e.g. !function!  stack_raster_bands;band_set :
1;output_raster_path : '!directory!' ; it is required to use section character $
instead of apostrophe ' and !! instead of ; for functions ' e.g. !function!
add_raster!!input_raster_name : $#NIR#$!!band_set : 1
- added the option to select output raster type as Float32, Int32, Int16,
UInt32, UInt16, Byte
- added settings for output nodata value
- added settings for scale and offset values directly in the output .tif file
- the option Input NoData as value allows for using NoData values as regular
- the option Use NoData value allows for defining a regular value to be used as
NoData during calculation

Tab Download products
- the Sentinel-2 search works also without search coordinates if a string is
entered in Advanced search (e.g. 33TTG)
- Sentinel-2 level 2A can be filtered entering S2A_MSIL2A* in Advanced search
- Sentinel-2 are downloaded also from Google public service
- added table filter for names
- added search and download of Sentinel-1 GRD products
- added search and download of GOES 16 and GOES 17 products downloaded from
Amazon Web Services

Tab Preprocessing Landsat
- tha panchromatic band is preprocessed only if pansharpening is checked

Tab Preprocessing Sentinel-2
- added checkbox for processing also bands 1, 9, 10
- if Add bands in a new band set is checked an existing empty band set is used

Tab Band set
- added the date field (optional) to store image acquisition date (format
yyyy-mm-dd) that can be used for expressions in Band calc
- added table filter for band names
- added Sentinel-2 list with all the bands

Tab Batch
- added function qgis_processing to access QGIS Processing tools (e.g.
qgis_processing;command : 'grass7:v.dissolve';parameters : 'input':
'input_path', 'column': 'cat','output': 'output_path')
- added function !for_directory_in! to iterate commands for all the directories
in a directory path (e.g. !for_directory_in!;'directoryPath') with the variables
!directory_name! to use the current directory name and !directory! to use the
current directory path. The commands are performed in batch until the command
!end_for_directory! . Optionally a directory level and a name filter can be set
(e.g. !for_directory_in!;'directoryPath';2;'name'). Multiple name filters can be
set with | (e.g. !for_directory_in!;'directoryPath';2;'name1|name2'). It is
possible to filter by date if the name ends with the date format yyyy-mm-dd
using a range (e.g. 2020-01-01:2020-03-31)
- added function !for_file_in!;directoryPath to iterate commands for all the
files (calling !file! in a command) in a directoryPath until !end_for_file! .
Optionally a directory level and a file filter (e.g.
!for_file_in!;'directoryPath';0;'jpg'). Multiple name filters can be set with |
(e.g. !for_file_in!;'directoryPath';0;'jpg|tif'). It is possible to filter by
date if the name ends with the date format yyyy-mm-dd using a range (e.g.
2020-01-01:2020-03-31). Also !file_directory! can be used to refer to the parent
directory of the file
- added function '!start_for_band_set!';bandsetNumber to iterate commands for
all the band sets (calling '!band_set!' in a command) until !end_for_band_set! .
It is possible to enter a list of numbers (separated by commas), a range
separated by colon, or a list of ranges (e.g. !start_for_band_set!;'2:3'
add_new_bandset;band_set : !band_set! !end_for_band_set!
- added the function !temp_raster_#! (replacing # with a number or string e.g.
!temp_raster_1!) to create a temporary raster to be used with other functions
such as band_calc;expression : '"raster1"';output_raster_path :
'!temp_raster_1!'. !temp_raster_1! replaces the path to the raster and
temp_raster_1 is the actual name of the raster
- added the possibility to create custom variables entering a line such as
!customName! = value (value can be either number or text), for instance !number!
= 20, this variable !number! will be replaced in the following parts of the
batch script
- added the function remove_band_from_bandset to remove bands from a band set
(e.g. remove_band_from_bandset;band_set : 1;band_list : '1, 2')
- the function to create band set accepts a directory and a file name filter as
raster_path_list option (e.g. '/dir, tif')
- the function to create band set accepts the satellite name as
center_wavelength option to set the band wavelength center
- the function add_raster allows to add the raster to an existing band set
(band_set) and optionally set the wavelength (center_wavelength)
- if using Band calc function, it is required to use section character $ instead
of apostrophe ' and !! instead of ; for functions expressions

Tab Reclassification
- added new button Incremental new value for calculating a new unique value for
every old value

Tab Settings
- added option to create RGB composite of band set when a project is loaded
- added option for using multiple CPU threads (it is recommended to set a value
lower than the number of available CPUs)
March 15, 2022, 5:05 p.m.
Minimum QGIS version
Maximum QGIS version
External dependencies (PIP install string)

Version management

Plugin details

Sustaining Members