[GRASS-dev] Zooming issue in gis manager
Hamish
hamish_nospam at yahoo.com
Fri Nov 3 01:35:02 EST 2006
Glynn Clements wrote:
>
> I would guess that d.zoom adjusts the bounds manually, whereas gis.m
> uses "g.region -a". The latter does more than just preserve the
> resolution; it also aligns the grid with the coordinate system's
> origin, then aligns the bounds with that grid, rounding outwards (i.e.
> enlarging the region).
>
> Thus, "panning" (moving the region without changing the e-w or n-s
> differences) with "g.region -a" will change the size of the region if
> the requested bounds aren't aligned to the grid, as it will round
> opposing edges in opposite directions.
here's a little example that demonstrates a problem with the existing
d.zoom, g.region -a:
g.region n=1025 s=-1025 w=-1025 e=1025 res=50
r.mapcalc xy="x()*y()"
r.mapcalc xy_centre="if(abs(xy) < 50000)"
r.to.vect in=xy_centre out=Xy_centre feature=area
r.colors xy rule=ramp
d.rast xy
d.vect Xy_centre type=boundary
d.grid 1000 # note 0,0 crosses middle of cells
d.zoom # zoom to middle blob
g.region -p
# region is now aligned to 0,0 origin instead of 25,25
# ** data appears "moved" 1/2 a cell in x and y
# 'd.zoom -p' has the same effect
g.region rast=xy
d.redraw
d.zoom -p
g.region -p
# as does 'g.region -a'
g.region rast=xy
d.redraw
g.region res=50 -ap
d.redraw
in this case changing to a resolution of 25 stops the data shift (as a
deadline work-around).
Hamish
More information about the grass-dev
mailing list