[GRASS-dev] Compute mahalanobis distance using Scipy

Javier Martínez-López javi.martinez.lopez at gmail.com
Mon Feb 16 02:35:08 PST 2015


Hi Paulo,

to use it with python just copy the mahalanobis function definitions,
import all necessary libraries and use it as in line 597 (the
covariance matrix and the mean are computed just before this line). I
am sorry that the code is not documented yet. I am not sure if this
will solve the large raster layers problem but you can try it. As you
can see in the script, I did not write the parallel mahalanobis
functions (Sturla Molden in CC did it) and it works perfectly for me,
so I agree that it would be great to implement it also in GRASS (maybe
as an add on?). However, I am not so experienced with that. The
ehab.py script also does a lot data preprocessing to allow batch runs
using heterogeneous data sources and finally performs some patch
analysis and metrics out of the resulting similarity maps using the
ndimage library (scipy). Any help on how to implement it in GRASS
would be more than welcome! Cheers, Javier

On Sun, Feb 15, 2015 at 10:21 PM, Paulo van Breugel
<p.vanbreugel at gmail.com> wrote:
> Hi Javier,
>
> This looks really useful, thanks! My python skills are very limited, so I
> will have to look at it better to see what I can understand. But to start,
> the parallel function, does that also solve the handling of potentially very
> large raster layers?
>
> Btw, this does look like a very useful set of functions, any plan to develop
> this into a GRASS addon or function?
>
> Paulo
>
>
> On Sun, Feb 15, 2015 at 9:22 PM, Javier Martínez-López
> <javi.martinez.lopez at gmail.com> wrote:
>>
>> Hi Paulo,
>>
>> you can see an implementation of the mahalanobis distance computed in
>> parallel (using all computer processors) for a single image here:
>>
>> https://github.com/javimarlop/eHabpy/blob/master/ehab.py
>>
>> see lines 32-86 and 597. I hope it helps! Cheers, Javier
>>
>> On Sat, Feb 14, 2015 at 7:29 PM, Vaclav Petras <wenzeslaus at gmail.com>
>> wrote:
>> >
>> > On Sat, Feb 14, 2015 at 11:47 AM, Paulo van Breugel
>> > <p.vanbreugel at gmail.com>
>> > wrote:
>> >>
>> >>
>> >> For a quick solution, what about using r.tile to split the input data
>> >> in
>> >> tiles and compute the mahalanobis distance per tile.
>> >
>> >
>> > See PyGRASS GridModule class which will do tiling (and a lot of other
>> > things) for you.
>> >
>> >
>> > http://grass.osgeo.org/grass70/manuals/libpython/pygrass.modules.grid.html
>> >
>> > _______________________________________________
>> > grass-dev mailing list
>> > grass-dev at lists.osgeo.org
>> > http://lists.osgeo.org/mailman/listinfo/grass-dev
>
>


More information about the grass-dev mailing list