On Fri, 30 Jan 2015 10:59 Moritz Lennert <mlenn...@club.worldonline.be> wrote:
On 29/01/15 18:30, Paulo van Breugel wrote: > I would like to compute a raster layer with for each raster cell the > mahalanobis distance to the centre of the environmental space// formed > by all reference data points (raster cells). In R this can be done as > explained here [1]. > > . I would like to do this using python only (no dependency on R). I came > up with the following, which works, but is very slow. I guess this is > because it loops over every raster cell to compute the mahalanobis > distance? Any idea how this can be done faster (I am very new to python, > so bear with me if I am making stupid mistakes) There's probably ways to accelerate this in Python (maybe you can try rewriting your for-loops as map() calls), but on the Wikipedia page on mahalanobis distance that you reference [1], it says that: "Along each principal component axis, it measures the number of standard deviations from P to the mean of D. If each of these axes is rescaled to have unit variance, then Mahalanobis distance corresponds to standard Euclidean distance in the transformed space." Couldn't you use i.pca to calculate principal components and then calculate distances of points in that space ? Just brainstorming... Interesting thought. I will see if I can work that one out. Thanks! Moritz [1] http:// <http://en.wikipedia.org/wiki/Mahalanobis_distance> en.wikipedia.org <http://en.wikipedia.org/wiki/Mahalanobis_distance>/wiki/ <http://en.wikipedia.org/wiki/Mahalanobis_distance>Mahalanobis <http://en.wikipedia.org/wiki/Mahalanobis_distance>_distance <http://en.wikipedia.org/wiki/Mahalanobis_distance>
_______________________________________________ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev