Re: [GRASS-dev] Re: [GRASS-user] how to measure distances in a constrained space
Glynn Clements wrote: > > In any case, the specific purpose of r.grow.distance is: > > > >r.grow.distance generates a raster map representing the distance to > >the nearest non-null cell in the input map. > > It now has an additional function: to generate a raster map containing > the value of the nearest cell. > > >From this, it is possible to mimic the behaviour of r.grow, but > substantially faster, with e.g.: > > # equivalent to: r.grow input=$inmap output=$outmap radius=$radius > metric=$metric > temp=r.grow.tmp.$$ > r.grow.distance in=$inmap distance=$temp.dist value=$temp.near metric=$metric > r.mapcalc "$outmap = if($temp.dist < $radius,$temp.near,null())" > r.colors $outmap rast=$temp.near > g.remove rast=$temp.dist,$temp.near > > Whereas the worst-case time taken by r.grow is proportional to the > square of the buffer radius, the above is proportional only to the > area of the map, regardless of the buffer radius. > > I'll replace r.grow in 7.0 with a script along these lines. Done. I've also fixed the spelling of "euclidean" in both r.grow and r.grow.distance, in 6.4 and 7.0. -- Glynn Clements <[EMAIL PROTECTED]> ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
[GRASS-dev] Re: [GRASS-user] how to measure distances in a constrained space
Glynn Clements wrote: > In any case, the specific purpose of r.grow.distance is: > >r.grow.distance generates a raster map representing the distance to >the nearest non-null cell in the input map. It now has an additional function: to generate a raster map containing the value of the nearest cell. >From this, it is possible to mimic the behaviour of r.grow, but substantially faster, with e.g.: # equivalent to: r.grow input=$inmap output=$outmap radius=$radius metric=$metric temp=r.grow.tmp.$$ r.grow.distance in=$inmap distance=$temp.dist value=$temp.near metric=$metric r.mapcalc "$outmap = if($temp.dist < $radius,$temp.near,null())" r.colors $outmap rast=$temp.near g.remove rast=$temp.dist,$temp.near Whereas the worst-case time taken by r.grow is proportional to the square of the buffer radius, the above is proportional only to the area of the map, regardless of the buffer radius. I'll replace r.grow in 7.0 with a script along these lines. -- Glynn Clements <[EMAIL PROTECTED]> ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] Re: [GRASS-user] how to measure distances in a constrained space
Hamish wrote: > is it ok to backport r.grow.distance to devbr6 for 6.4.0? I can't think of any reason not to. -- Glynn Clements <[EMAIL PROTECTED]> ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] Re: [GRASS-user] how to measure distances in a constrained space
is it ok to backport r.grow.distance to devbr6 for 6.4.0? AFAICT there are no issues. Hamish ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] Re: [GRASS-user] how to measure distances in a constrained space
Moritz Lennert wrote: > >> r.grow.distance creates a distance map from each point, but > >> there is no way of telling it anything about null cells or > >> barriers. Even when setting a mask, r.grow.distance fills in > >> the whole region, which seems like a bug to me. > > > > > > perhaps if you invert the map? > > > > > > ie put starting point in null space and it will grow until/around cells > > with value? > > You mean invert the mask, so that land masses are nulls and water > non-nulls ? > > Doesn't work. > > r.grow.distance just seems to ignore the mask. Glynn ? As I wrote in this thread on grass-user: > A mask just forces some input cells to be null. As a general > principle, modules don't distinguish between cells which are null in > the map itself and those which are null due to the mask. > > In any case, the specific purpose of r.grow.distance is: > >r.grow.distance generates a raster map representing the distance to >the nearest non-null cell in the input map. IOW, the mask just makes some input cells "disappear". -- Glynn Clements <[EMAIL PROTECTED]> ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
[GRASS-dev] Re: [GRASS-user] how to measure distances in a constrained space
On 13/11/08 10:04, Hamish wrote: r.grow.distance creates a distance map from each point, but there is no way of telling it anything about null cells or barriers. Even when setting a mask, r.grow.distance fills in the whole region, which seems like a bug to me. perhaps if you invert the map? ie put starting point in null space and it will grow until/around cells with value? You mean invert the mask, so that land masses are nulls and water non-nulls ? Doesn't work. r.grow.distance just seems to ignore the mask. Glynn ? Moritz ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev