[GRASS-dev] r.random: now with optional cover map parameter

Glynn Clements glynn at gclements.plus.com
Wed Oct 17 15:50:41 EDT 2007


Hamish wrote:

> Markus Neteler wrote:
> > since v.what.rast is (for me) extremely slow, I have added
> > cover map support to r.random.
> ..
> > PS: v.what.rast still running on just 300k points while I
> >     implemented above :-) Anyone who could make v.what.rast faster?
> 
> Maybe it's the qsort(), maybe it's the i,j loop within a loop.

The loop is certainly inefficient. Rather than shifting the entire
array down every time it finds a duplicate, it should keep separate
source and destination indices, e.g. (untested):

    for (i = j = 0; j < point_cnt; j++)
        if (cache[i].cat != cache[j].cat)
	    cache[++i] = cache[j];
        else
            cache[i].count++;
    point_cnt = i + 1;

-- 
Glynn Clements <glynn at gclements.plus.com>




More information about the grass-dev mailing list