Roger Bivand wrote: > >>> 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)?
Yeah, lat/lon could be a problem (r.info uses d:m:s while g.region uses decimal), as could fractional coordinates, due to precision issues. > 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. If .Machine$double.eps is what I think it is, it's too small. You would need to use the formatting precision (i.e. 1e-8 for %.8f). Actually, if you're trying to determine whether r.resample is a no-op, the ideal test would be to use the region definition to convert the centres of the corner cells to row/col indices, and check that the results are (0, 0, cols-1, rows-1). That will catch the case where the region isn't quite the same as the raster, but close enough that resampling is actually a no-op. -- Glynn Clements <[EMAIL PROTECTED]> _______________________________________________ grass-dev mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/grass-dev
