I'm having some problems clustering data in a 2D spectra and will really appreciate some help. I've been playing around with the FindClusters function but wasn't able to tune it appropriately. Maybe someone can give me a hand on how to customize the DistanceFunction option or so.
A sample of my data looks like this:

Ideally I would want the peaks to be clustered as this:

I tried the FindClusters functions with different parameters but only got partial clusters like these:

I believe it may be easy if I can define my own DistanceFunction but I don't understand how to use a custom function there with a threshold or so.
I've seen other posts like this one, this other one and this one too but I wasn't able to successfully apply those methods.
It doesn't matter if I don't get that red circle clustering like the ideal image. If I can just get to identify the whole clusters, I can reduce that set to just one point that would be the center of gravity.
It would be awesome if you can point me the way on how to solve this. You can download that sample from here.
Just one thing, I don't know before hand how many clusters I'll get. I believe there are 30 in this dataset but this is just a sample. Thank you!!


DistanceFunction[]. Long story - short - on what similar characteristic do you plan to partition the set of data ? – Sektor Sep 01 '13 at 02:41