i.smap has two modes of operation. The first mode is the sequential maximum a posteriori (SMAP) mode [1,2]. The SMAP segmentation algorithm attempts to improve segmentation accuracy by segmenting the image into regions rather than segmenting each pixel separately (see NOTES).
The second mode is the more conventional maximum likelihood (ML) classification which classifies each pixel separately, but requires somewhat less computation. This mode is selected with the -m flag (see below).
This program was written to be nice about memory usage without influencing the resultant classification. This option allows the user to control how much memory is used. More memory may mean faster (or slower) operation depending on how much real memory your machine has and how much virtual memory the program uses.
The size of the submatrix used in segmenting the image has a principle function of controlling memory usage; however, it also can have a subtle effect on the quality of the segmentation in the smap mode. The smoothing parameters for the smap segmentation are estimated separately for each submatrix. Therefore, if the image has regions with qualitatively different behavior, (e.g., natural woodlands and man-made agricultural fields) it may be useful to use a submatrix small enough so that different smoothing parameters may be used for each distinctive region of the image.
The submatrix size has no effect on the performance of the ML segmentation method.
The amount of smoothing that is performed in the segmentation is dependent of the behaviour of the data in the image. If the data suggests that the nearby pixels often change class, then the algorithm will adaptively reduce the amount of smoothing. This ensures that excessively large regions are not formed.
The degree of misclassifications can be investigated with the goodness of fit output map. Lower values indicate a better fit. The largest 5 to 15% of the goodness values may need some closer inspection.
The module i.smap does not support MASKed or NULL cells. Therefore it might be necessary to create a copy of the classification results using e.g. r.mapcalc:
r.mapcalc "MASKed_map = classification_results"
# Align computation region to the scene g.region raster=lsat7_2002_10 -p # store VIZ, NIR, MIR into group/subgroup i.group group=lsat7_2002 subgroup=res_30m \ input=lsat7_2002_10,lsat7_2002_20,lsat7_2002_30,lsat7_2002_40,lsat7_2002_50,lsat7_2002_70 # Now digitize training areas "training" with the digitizer # and convert to raster model with v.to.rast v.to.rast input=training output=training use=cat label_column=label # If you are just playing around and do not care about the accuracy of outcome, # just use one of existing maps instead e.g. # g.copy rast=landuse96_28m,training # Create a signature file with statistics for each class i.gensigset trainingmap=training group=lsat7_2002 subgroup=res_30m \ signaturefile=lsat7_2002_30m maxsig=5 # Predict classes based on whole LANDSAT scene i.smap group=lsat7_2002 subgroup=res_30m signaturefile=lsat7_2002_30m \ output=lsat7_2002_smap_classes # Visually check result d.mon wx0 d.rast.leg lsat7_2002_smap_classes # Statistically check result r.kappa -w classification=lsat7_2002_smap_classes reference=training
The signature file obtained in the example above will allow to classify the current imagery group only (lsat7_2002). If the user would like to re-use the signature file for the classification of different imagery group(s), they can set semantic labels for each group member beforehand, i.e., before generating the signature files. Semantic labels are set by means of r.support as shown below:
# Define semantic labels for all LANDSAT bands r.support map=lsat7_2002_10 semantic_label=TM7_1 r.support map=lsat7_2002_20 semantic_label=TM7_2 r.support map=lsat7_2002_30 semantic_label=TM7_3 r.support map=lsat7_2002_40 semantic_label=TM7_4 r.support map=lsat7_2002_50 semantic_label=TM7_5 r.support map=lsat7_2002_61 semantic_label=TM7_61 r.support map=lsat7_2002_62 semantic_label=TM7_62 r.support map=lsat7_2002_70 semantic_label=TM7_7 r.support map=lsat7_2002_80 semantic_label=TM7_8
Latest change: Monday Feb 27 13:45:25 2023 in commit: a82501dc85294207e8e58437c3ec7f1056465ed4
© 2003-2023 GRASS Development Team, GRASS GIS 8.3.2dev Reference Manual