I have a series of 2D maps with values ranging 0.0 to 1.0 spread all over. The algorithm that produces them is an application of the fractional Brownian motion. Each map measures 101x101 pixels or cells.

The algorithm producing these maps uses a discretized Inverse Fast Fourier Transform (FFT) in the spectral domain. The maps have a varying mean but share a fixed variance which is σ2 = 1. A visual example of such maps is below.

My question: it is said here that applying Moran's I to determine the clustering of a geographic dataset is sensitive to the dataset distribution, especially if the distribution is skewed. Since my algorithm produces maps which distribution is not consistent across all maps, what could be a robust algorithm for determining the clustering of my maps?

The aim is to find a method in which no influence is played by the shape of the distribution on the p-value of the clustering coefficient. The clustering is of course intended to be referred to the red spots in the image below, which are to be seen as my hotspots.

  • Welcome to gis.stackexchange! Please edit the title of your question to include enough information for future visitors to be able to find this thread when looking for the same problem.
    – underdark
    Commented Mar 13, 2016 at 10:26

1 Answer 1


Not sure if this suits your problem, because your data consists of non-discrete data. What I suggest is probably a brute force approach and maybe not very elegant. Anyways, there are some standard solutions in spatial cluster analysis e.g. DBSCAN (https://de.wikipedia.org/wiki/DBSCAN) which is an unsupervised machine learning approach for agglomerative clustering. OPTICS is similar, but I haven't worked with it. This would probably require to discretize your data, e.g. [0 .. 0.5) -> 0 and [0.5 .. 1] -> 1.

To catch up the skew of your data, you could try an incremental approach of using different parameters of DBSCAN, i.e. radius (epsilon) and minpts (in combination defining the density). I could imagine that having a fixed radius and increasing minpts logarithmically and having some evaluation criteria (e.g. number of clusters or sizes or whatever) may converge to a reasonable outcome. The advantage of DBSCAN is that is very simple and, hence, can be adapted to very specific strategies.

I hope that helps.

  • 1
    I used DBSCAN recently within Python: geoffboeing.com/2014/08/… As I remember you only have epsilon (which is the radius) and the minimum number of points per cluster...
    – Riccardo
    Commented Mar 13, 2016 at 10:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.