[GRASS-user] Is "i.cluster" an implementation of the ISODATA algorithm?

Moritz Lennert mlennert at club.worldonline.be
Tue Oct 30 10:06:04 PDT 2012

On 30/10/12 10:20, Nikos Alexandris wrote:
> NikosA:
>>> I wonder why the term ISODATA [2] is not to be traced anywhere in the
>>> GRASS manuals, nor in the GRASS book (3rd ed.).  Can someone confirm that
>>> i.cluster is an(other) implementation of the ISODATA clustering
>>> algorithm?
> MarkusN:
>> I search in my inbox and found some earlier discussion with the
>> Subject: "Re: [GRASS-user] Re: algorithm used in i.cluster", see
>> below.
>> PS: Still we need a text snippet to improve the manual...
> Things to keep in mind from the archived discussions (below):
> - the ISODATA algorithm (Ball and Hall, 1967) is a common modification of the
> K-means algorithm
> - the algorithm implemented in the "i.cluster" module involves merging of
> classes (I_cluster_merge) though no splitting function seems to be implemented

To add: i.cluster output is also not equivalent to ISODATA in so far as 
it does not classify all pixels, but only creates signature files for 
the classes. Classification is then done by i.maxlik which is not 
equivalent to ISODATA. It might be an interesting addition to i.cluster 
to work with all pixels (not only a subset) and to create an output 
assigning each pixel to a given class which would be close (but not 
equal) to ISODATA output.


More information about the grass-user mailing list