Google Earth Engine – Fuzzy Clustering in GEE and GEE Python API (geemap)

clusteringgeemapgoogle-earth-engine

I'm using the GEE Clusterer algorithm (Weka K Means) to assign 30-m pixels over a large area (several thousand acres) to a predetermined number of groups.

The Weka K Means method is a "hard" clustering method that assigns all the pixels to one group or another. However, for my analysis objectives it would be more appropriate to use a soft or "fuzzy" clustering method in which all pixels are assigned a probability of membership among the groups (for instance, 90% in group 1, 8% in group 2, 2% in group 3). Is it possible to modify the GEE Clusterer algorithm to run fuzzy clustering, or is there a fuzzy clustering method available in GEE or geemap (maybe through a js module someone has written)?

Soft clustering packages are readily available in R, such as the 'cluster' and 'geocmeans' packages. However, with the amount of data I'm working with, working in GEE or geemap is much more efficient.

Best Answer

No, nothing like that, but you might find the minimumDistance classifier useful if you train it with some clustered data (you'll have to assign classes to the clusters). Among other things, it'll return to you the distance to cluster mean for all clusters (using RAW mode) from which you can pick the top N or whatever.

Related Question