[GRASS-user] Addapting i.gensig GRASS to perform outlier detection
katrin eggert
katrineggert1980 at gmail.com
Thu Oct 14 09:11:51 EDT 2010
Greetings Mr. Neteler
I'm implementing a methodology in GRASS to eliminate training_areas
outliers. What I do?
1- first I pick up the current training areas for a class and I calculate
mean vector and covariance matrix
2- Invert the covariance matrix
3- Compare each pixel, that is included in a training_area, with a defined
threshold and if it's OK, It's still labeled as 1 or, otherwise, it's
eliminated.
It would be pointless in developing this function from scratch in GRASS so I
used i.gensig that is used to calculate mean vector and covariance matrix
for training areas. (This means that step 1 and 2 (by a simple
implementation) is covered. (Do anyone suggest other function instead of
this?)
My problem is with the third step (I'm still not very familiar with some
GRASS programming functions/functionalities)
I have created a cycle that goes for each row and col and I get the correct
raster pixel value from group but I'm not being able to retrieve the
classification. This is an overview of the approach:
for row=0, row<nrows, row++
for col=0, col<ncols, cols++
Check in training area if the pixel value is >-1 (this is the
problem I'm not being able to get thiS)
for band=0, pband<nbands, pband++
pband[band]=cell_value for band "band", in row=row,
col=col and that is included in the training area.
- Then apply the compare (easy)
- write (I think it's not a problem)
}
}
}
In what am I a bit lost:
1- How can I get the value from training areas raster?
2- How can I only apply this rule only to the pixels that are included in a
training_area?
Can anyone give me a few tips?
Thanks
Katrin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/grass-user/attachments/20101014/91854f1d/attachment.html
More information about the grass-user
mailing list