Provided by: grass-doc_8.4.1-1_all bug

NAME

       i.smap   -  Performs  contextual  image  classification  using  sequential  maximum  a  posteriori (SMAP)
       estimation.

KEYWORDS

       imagery, classification, supervised classification, segmentation, SMAP

SYNOPSIS

       i.smap
       i.smap --help
       i.smap    [-m]    group=name    subgroup=name     signaturefile=name     output=name      [goodness=name]
       [blocksize=integer]   [--overwrite]  [--help]  [--verbose]  [--quiet]  [--ui]

   Flags:
       -m
           Use maximum likelihood estimation (instead of smap)

       --overwrite
           Allow output files to overwrite existing files

       --help
           Print usage summary

       --verbose
           Verbose module output

       --quiet
           Quiet module output

       --ui
           Force launching GUI dialog

   Parameters:
       group=name [required]
           Name of input imagery group

       subgroup=name [required]
           Name of input imagery subgroup

       signaturefile=name [required]
           Name of input file containing signatures
           Generated by i.gensigset

       output=name [required]
           Name for output raster map holding classification results

       goodness=name
           Name for output raster map holding goodness of fit (lower is better)

       blocksize=integer
           Size of submatrix to process at one time
           Default: 1024

DESCRIPTION

       The  i.smap  program  is  used  to  segment  multispectral images using a spectral class model known as a
       Gaussian mixture distribution.  Since Gaussian mixture distributions  include  conventional  multivariate
       Gaussian  distributions,  this  program  may also be used to segment multispectral images based on simple
       spectral mean and covariance parameters.

       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).

OPTIONS

   Flags:
       -m
           Use maximum likelihood estimation (instead of smap).  Normal operation is to use SMAP estimation (see
           NOTES).

   Parameters:
       group=name
           imagery group
           The imagery group that defines the image to be classified.

       subgroup=name
           imagery subgroup
           The  subgroup  within  the group specified that specifies the subset of the band files that are to be
           used as image data to be classified.

       signaturefile=name
           imagery signaturefile
           The signature file that contains the spectral signatures (i.e., the statistics) for the classes to be
           identified in the image.  This signature file is produced by the program i.gensigset (see NOTES).

       blocksize=value
           size of submatrix to process at one time
           default: 1024
           This option specifies the size of the "window" to be used when reading the image data.

       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.

       output=name
           output raster map.
           The name of a raster map that will contain the classification results.  This  new  raster  map  layer
           will contain categories that can be related to landcover categories on the ground.

NOTES

       The  SMAP  algorithm  exploits the fact that nearby pixels in an image are likely to have the same class.
       It works by  segmenting  the  image  at  various  scales  or  resolutions  and  using  the  coarse  scale
       segmentations  to  guide  the  finer  scale  segmentations.   In  addition  to  reducing  the  number  of
       misclassifications, the SMAP algorithm generally produces segmentations with larger connected regions  of
       a fixed class which may be useful in some applications.

       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"

EXAMPLE

       Supervised classification of LANDSAT scene (complete NC dataset)
       # 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

REFERENCES

           •   C.  Bouman  and  M.  Shapiro,  "Multispectral Image Segmentation using a Multiscale Image Model",
               Proc. of IEEE Int’l Conf. on  Acoust.,  Speech  and  Sig.  Proc.,  pp.  III-565  -  III-568,  San
               Francisco, California, March 23-26, 1992.

           •   C. Bouman and M. Shapiro 1994, "A Multiscale Random Field Model for Bayesian Image Segmentation",
               IEEE Trans. on Image Processing., 3(2), 162-177" (PDF)

           •   McCauley,  J.D.  and  B.A. Engel 1995, "Comparison of Scene Segmentations: SMAP, ECHO and Maximum
               Likelihood", IEEE Trans. on Geoscience and Remote Sensing, 33(6): 1313-1316.

SEE ALSO

        r.support for setting semantic labels,
        i.group for creating groups and subgroups
       r.mapcalc to copy classification result in order to cut out MASKed subareas
       i.gensigset to generate the signature file required by this program

        g.gui.iclass, i.maxlik, r.kappa

AUTHORS

       Charles Bouman, School of Electrical Engineering, Purdue University
       Michael Shapiro, U.S.Army Construction Engineering Research Laboratory
       Semantic label support: Maris Nartiss, University of Latvia

SOURCE CODE

       Available at: i.smap source code (history)

       Accessed: Friday Apr 04 01:21:04 2025

       Main index | Imagery index | Topics index | Keywords index | Graphical index | Full index

       © 2003-2025 GRASS Development Team, GRASS GIS 8.4.1 Reference Manual

GRASS 8.4.1                                                                                       i.smap(1grass)