[OSGeo-Discuss] OSGeo ISODATA implementation?

Angelos Tzotsos gcpp.kalxas at gmail.com
Sat Feb 23 09:23:32 PST 2013


Hi Nikos,

This is a GPL3 implementation of ISODATA:

http://users.ntua.gr/chiossif/Free_As_Freedom_Software/isodata.c

Angelos

On 02/23/2013 05:54 PM, Nikos Alexandris wrote:
> Hi list!
>
> I am searching for an OSGeo implementation (at the very least simply FOSS will
> do) of the ISODATA clustering algorithm [*].  I want to avoid using a
> commercial tool.  Currently I have reviewed the following "options":
>
>
> GRASS-GIS
>
> GRASS has a modified k-means implementation in its  <i.cluster> module [1].
> However, it requires at least two raster maps to run.  The ISODATA algorithm
> is known to run even on a single raster map.
>
>
> OpenEV
>
> The "old" (but very good) OpenEV (is convenient since it reads directly grass
> raster maps and) has an integrated ISODATA-based classification tool [2].
> While testing with single Landsat bands ranging  [0,255] and and NDVI image
> [-0.1,1.0], it get stuck somehow after some iterations complaining bout
> "ZeroDivisionError: float division".  Don't know if there any restrictions
> concerning the input data format.
>
>
> OrfeoToolBox
>
> OrfeoToolBox has also a clustering algorithm [3] but I am unsure that it is an
> implementation of the ISODATA.  Can't trace a clean documentation about it.
> It seems as yet another k-means based algorithm.
>
>
> Fast ISODATA implementation (by David Mount)
>
> (Not tested yet!)
>
>
> Any other candidates?
> Warmest regards, Nikos
>
> --
> [*] ISODATA:
>
> a) <http://www.dtic.mil/cgi-
> bin/GetTRDoc?Location=U2&doc=GetTRDoc.pdf&AD=AD0699616>
> b)
> <http://en.wikipedia.org/wiki/Multispectral_pattern_recognition#ISODATA_method>
>
> [1] <http://grass.osgeo.org/grass64/manuals/i.cluster.html>
>
> [2] <http://openev.sourceforge.net/>
>
> [  Sometimes it fails giving following message:
> --%<---
> Traceback (most recent call last):
>    File "/geo/osgeo/binaries/FWTools-2.0.6/lib/python2.2/site-packages/gtk.py",
> line 125, in __call__
>      ret = apply(self.func, a)
>    File "./../tools/isodata.py", line 529, in classify_cb
>      d /= d_tresh
> ZeroDivisionError: float division
> --->%--  ]
>
> [3] Mean-shift clustering: <http://orfeo-
> toolbox.org/CookBook/CookBooksu17.html#x31-430002.4.4> and
>   <http://gracilis.carleton.ca/CUOSGwiki/index.php/Image_Classification_Tutorial_using_Orfeo_Toolbox#Clustering>
>
> [4] <http://www.cs.umd.edu/~mount/Projects/ISODATA/>
>
>
> _______________________________________________
> Discuss mailing list
> Discuss at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/discuss


-- 
Angelos Tzotsos
Remote Sensing Laboratory
National Technical University of Athens
http://users.ntua.gr/tzotsos

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/discuss/attachments/20130223/e6629d91/attachment-0002.html>


More information about the Discuss mailing list