On Tue, 24 Jun 2008, Glynn Clements wrote:
Markus Neteler wrote:
Is there a shell-level utility in GRASS to check whether the region of a
raster is equal to the current working region - the function could call
that and create a copy of the required raster in current resolution if they
differ?
The easiest way it to compare the output of
r.info -g map127
north=230000
south=214000
east=646000
west=628000
and
g.region -g | grep '^n=\|^s=\|^e=\|^w='
n=228513
s=214975.5
w=629992.5
e=645012
But the resolution may differ too - I need a one shot comparison. Isn't
anything exposed - I've looked in g.copy and r.resample without seeing
anything. Maybe:
r.info -gs elevation.dem
g.region -g | grep '^n=\|^s=\|^e=\|^w=\|^ewres=\|^nsres='
but an internal match (where r.resample would be a no-op or not) would be
helpful.
Any hints for Roger?
"r.info -gs" will print both the bounds and resolution in shell-script
style:
$ r.info -gs elevation.dem
north=4928000
south=4914020
east=609000
west=590010
nsres=30
ewres=30
Although the output of the two commands is slightly different, it's
close enough that the keys will sort the same, so you can use e.g.:
map=map127
( g.region -g ; r.info -gs $map ) | sort | grep '^[nsew]' | sed 's/^.*=//' | uniq -u |
grep . &> /dev/null
if [ $? = 0 ] ; then
echo different
else
echo same
fi
Thanks, elegant, I know. But it isn't cross-platform. All I need is an
answer TRUE/FALSE for the comparison of the 6 values. I assume that the
printf()s are using the same rounding, right? Both r.info and g.region use
G_format_easting(), G_format_northing(), G_format_resolution() in
lib/gis/wind_format.c, using format_double(), which is hard-wired to
"%.8f". Are we going to pick up numerical fuzz anywhere from conversion
to text (high longlat resolution)?
I guess I'll have to trust the text representation, read it into R,
convert to doubles, and ask abs(rast$w - wind$w) < .Machine$double.eps for
each of the six comparisons, and perhaps handle longlat with a slacker
precision.
Roger
--
Roger Bivand
Economic Geography Section, Department of Economics, Norwegian School of
Economics and Business Administration, Helleveien 30, N-5045 Bergen,
Norway. voice: +47 55 95 93 55; fax +47 55 95 95 43
e-mail: [EMAIL PROTECTED]
_______________________________________________
grass-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/grass-dev