Hello,
I'm trying to locate mineral clusters in CRISM I/F data using a Self-Organizing Map, but ultimately, even though I normalize the data prior to running a SOM my output clusters correspond with bright and dark areas.
I am working with GRASS and R, so here are my processing steps:
- import CRISM data into R, each pixel contains a vector of 254 values corresponding to the I/F values in the first 254 image bands.
I am now working with a matrix, of n rows (number of pixels in image) by 254. This CRISM data has previously been though the CAT pre-preprocessing pipeline.
- Calculate the mean value of each pixel, so that each pixel is now a residual vector (difference of each band from the mean spectrum of the pixel) - This means that I can better compare pixels to one another, as they are not affected by differences in brightness (are not offset from one another, as they would be if I used the mean spectrum of the image).
- normalize each vector component [0,1]
- use this new residual matrix as input into a 50x50 SOM.
- The output codebook data from the SOM I simply classify with hierarchical clustering (for the moment) so I can see basic separable regions. (This basic number of clusters I estimate using a distance/similarity matrix.)
Unfortunately, despite the above steps these clusters still correspond to bright/shadowed areas, in the majority of cases.
I was hoping someone might be able to offer some suggestions as to why this might be?