This application performs an unsupervised image classification based on Duda and Hart's IsoData method: Duda, RO, PE Hart (1973) "Pattern Classification and Scene Analysis", John Wiley and Sons, New York, [chap. 6, "Unsupervised Learning and Clustering", pp. 226-227].

When executing the classifier in MiraMon (IsoMM), the application begins with a certain number of cluster categories which are defined by the user. The initial location of the categories is distributed according to four criteria (location of categories can follow multiple criteria):

  1. Throughout the multivariate diagonal of the data and distributed equidistantly. It is possible to restrict the range of each variable by using a criterion based on the data which are nearest to the mean of each band. The user must define this range based on how many times (n) the deviation around the mean is accepted. Thus, for each of the original bands (variables) the mean (M) and the standard deviation (D) are calculated, and the interval is defined as (M-n*D, M+n*D). Finally, the interval is divided into the same number of parts as the number of categories that have been defined. If n=0, the whole range is used for each variable. (NClusterBeginDiagonal)
  2. Randomly, throughout the multivariate space. This criterion is not very useful when the number of variables is very high. (NClusterBeginRandom)
  3. Using a sampling on the image of configurable number/resolution. (NClusterBeginSample)
  4. From a number of spectral signatures provided in a file list (/FITXER_SIGNATURES=). Paths of signature files can be relative to the file list.

It is possible to define between 0 and 32767 categories for criteria, but the sum of all the categories following all the criteria cannot exceed 32767. If too many are produced due to excessive sampling, the application will reduce the density; in any case, in criterion 3, the application adapts the sampling density to a multiple of the pixel size. It is obligatory, moreover, that the sum of the categories for all the criteria be at least 1.

For large images, it is advisable to use 250 categories for criteria 1 and nbands*50 for criteria 2, although this may be left at zero if there is a relatively high density of systematic sampling, that usually works better. When the number of variables (bands) provided is very large, criterion 2 is practically useless. Another strategy which usually gives good results is to define 0 or few categories for criterion 1, 0 for 2 and a sampling which involves obtaining between 250 and 500 categories ("N300", for example, and expanded if a large part of the image contains NoData [for example, sea]) for criteria 3. In any case, a high number of categories usually gives good results but entails a slower first iteration.
It should be noticed that increasing the Minimum likelihood between classes parameter, it is possible to obtain a final fusion of the nearest classes in successive iterations. Nevertheless, this parameter is only implemented in those classes coming from NClusterBeginSample criterion.

All these categories will form the initial clusters. For each multivariable pixel, the distance to each one of the cluster centers is measured and the pixel is assigned to the nearest cluster. The application offers the possibility to calculate the distance based on the following criteria:

Once all the pixels of the image have been assigned, the cluster centers are recalculated by determining their center of gravity in the multidimensional space made by the different bands used. The process of assignation of pixels to cluster centers is repeated iteratively and the centers are calculated again. This iteration is performed as many times as the user defines, except when the process stops before reaching a situation in which there is very little change in the cluster centers between one iteration and the next one (convergence threshold). After each iteration, the application checks whether any cluster is made up of a lower number of pixels than the minimum defined by the user. If this is the case, the cluster is eliminated, and its pixels are reassigned to the nearest cluster.

At each iteration, an analysis is carried out to determine if there are any classes with a statistical distance which is too close for them to be considered different. In this case, they are treated as a single class.

The output image maintains at 0 those pixels being NoData in all original bands, or at a number of bands equal or greater than MaxBandesNODATA, and describes them as such. If the final number of categories is greater than 255, the output image will be and integer-type image, otherwise it will be a byte-type image. In any case, the output image is compressed (RLE). The classifier can work with any type of compressed or uncompressed image (byte, integer, real, etc).

The statistical characteristics (signatures) of each category that is obtained are stored in a directory called SGN_yyyymmdd_hhmmss (signatures obtained in year-month-day at hour-minute-second). This directory is created in the same folder as the classified image.

Those pixels having NoData in some of the bands or variables can be classified using the MaxBandsNODATA parameter, which indicates the maximum number of variables with a NoData value that are tolerated in order to not to mark the pixel as unclassified. This parameter may oscillate between 0 and n_bands-1:

Regardless of the MaxBandasNODATA value, the classes (and signatures) are defined with reference to all the pixels. In incomplete individuals (those pixels that do not present information in all the bands) the classification only takes into account the bands in which there is data and the classes are recalculated based on all the data available in each band.

In order to interpret the distance values used by this classifier, we recommend reading the "Orientation on the meaning of the distances used in the classification processes in the help of the ClasSup application.

By default, this application loads all images in memory, which allows performing processes in a more agile way. However, in computers with a few resources regarding the size of images, this strategy could be unviable. Due to this, the option "Do not upload images in memory" allows indicating the application that in the processes it keeps in memory only those data needed in each moment, nor that implies a slowdown of the running. The application commutes automatically to this mode if it does not have enough available memory, so usually, there is no need to activate it specifically.

This application is parallelized, both in versions of 32 and 64 bits, so it is possible that it distributes the work between the available processor cores in the computer where it runs. For example, a computer that has two processors of 20 cores each, the time needed to obtain the results can be divided almost into 40 by using all available cores, which can be done with the corresponding parameter stated by "MAX"; when the number of cores to use is MAX, the application used all the cores. Although, sometimes the choice of not compromising the whole capacity of the computer calculations can be preferred, stating SUB_MAX (which will leave a free processor for other performed tasks) or by choosing a concrete inferior numerical value, in all cases through the option "Number of processor cores to be used". Asking for more cores than the actually available is also possible, creating other virtual ones, but this does not speed the procedure, but in the contrary. Windows Task Manager allows knowing the total number of cores of the computer, and it also can be known by running the application in MAX mode, because it will show on-screen how many cores is using. In the most recent versions of the application interface, an information button also allows the user to obtain this number.


Syntax:

Parameters:

Modifiers: