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

Reply via email to