[GRASS5] New release candidate 3 of GIS Manager 2

I just committed to the CVS and posted to my website http://www.public.asu.edu/~cmbarton/files/grass_gismgr the (hopefully) final release candidate for the new GRASS GIS Manager. It has many updates. I think I’ve fixed all reported bugs or anomalous behavior—and a number of unreported ones. A few of the highlights.

A fix for the ‘black canvas’ that some people have been getting. In the future, I’ll be implementing a different solution when I change the compositing procedures that create the map displays. But this should work for now.

‘Sticky’ zooming—by popular demand. Also, the ‘helpful’ messages now show up in the status area at the bottom of the screen instead of a little message window that you have to click to get rid of.

A new text layer of high-resolution postscript text to replace d.text and d.text.freetype. Along with this comes easier ways of selecting fonts.

A ‘zoom to current region’ button so that map displays can use regions set using g.region.

Usability improvements to the print dialog.

Redesign of all layer panels to make them easier to use.

A few added convenience features. The one I like the best was inspired by Peter Misovic’s questions about displays and queries. You can now save the results of a display query—in the vector display—to a new vector file (using v.extract).

Thanks for all the suggestions and testing. When this release candidate goes through testing and any remaining bugs are removed, I hope to make this the default GUI for GRASS.

Along with this, I’d encourage updates to additional modules to make this all work even more seamlessly. For example…

-a new i.gcp module to replace i.points and i.vpoints. i.gcp would accept input coordinate pairs x1,y1,x2,y2 (for existing point coordinates and desired georeferenced coordinates), manage the ascii points file, and calculate rms errors. Graphic could be handled by a GUI.

-a new vector (and raster?) digitizing module that would accept xy coordinate pairs and create new vectors or edit existing vectors

-update nviz to work without needing an xmonitor and to display in a map display canvas.

Cheers,
Michael


Michael Barton, Professor of Anthropology
School of Human Evolution and Social Change
Arizona State University
Tempe, AZ 85287-2402
USA

voice: 480-965-6262; fax: 480-965-7671
www: http://www.public.asu.edu/~cmbarton

On Mon, 13 Feb 2006 10:02:00 -0700
Michael Barton <michael.barton@asu.edu> wrote:

I just committed to the CVS and posted to my website
<http://www.public.asu.edu/~cmbarton/files/grass_gismgr&gt; the
(hopefully) final release candidate for the new GRASS GIS Manager. It
has many updates. I think I've fixed all reported bugs or anomalous
behavior‹and a number of unreported ones. A few of the highlights.

A fix for the Œblack canvas that some people have been getting.

Is OK now, great!

<snip>

ŒSticky' zooming‹by popular demand.

Better, as to me. But still it is not a continous zoom mode, like it
used to be. Could this be brought back as well? For now one has to
re-click the zoom button to do another zoom, and once more, and once
more... This is not optimal I believe. In my practice I'm almost never
satisfied with the first zoom, so I need to re-click zoom button several
times until I set up the view as needed. Or think of a situatioan
when you want to zoom in and out quickly back to bring back the
context. While in the continous zoom this was avoided, all you had to
do was to click right mouse button to quit the zooming tool once you
are done. Who else preffered the old mode?

show up in the status area at the bottom of the screen instead of a
little message window that you have to click to get rid of.

Now I see what was your intention. But was this really such a big
problem to single right-click once you are done? In my opinion having to
re-select the zoom tool (move mouse pointer, click) several times
agian and again is much worse...

Moreover, I don't understand why I need to select a rectangle to
_unzoom_. Am I missing something? Zoom out tool should... zoom out
once I click the button, why select region and confirm? Too much mouse
action for no purpose, I think.

A few added convenience features. The one I like the best was
inspired by Peter Misovic's questions about displays and queries. You
can now save the results of a display query‹in the vector display‹to
a new vector file (using v.extract).

I haven't used that yet, but sounds cool!

Thanks for all the suggestions and testing. When this release
candidate goes through testing and any remaining bugs are removed, I
hope to make this the default GUI for GRASS.

More problems I can see:

0.
"Zoom" tools, "Redraw" and other change region resolution! This is a
very bad idea IMHO. Why should they? Once I set up the region
resolution it should be changed only at my request I believe, and only
then.

1.
I. Display anything.
II. Zoom in -> current region changes.
III. Run g.region, redraw in gis.m -> g.region changes get discarded.

Why does gis.m doesn't honour the changes in current region any other
than those of his own? Doesn't make sense to me.

2.
I. Click "Pan" tool.
II. Left-click+hold button on the canvas but _don't_ drag.
III. Release the button.

Error:
can't read "to_x": no such variable
can't read "to_x": no such variable
    while executing
"scrx2mape $to_x"
    (procedure "MapCanvas::pan" line 11)
    invoked from within
"MapCanvas::pan $mon"
    (command bound to event)

My destop switcher freezes, using over 90% CPU, have to kill and
restart it to continue Gnome operation (Ubuntu 5.10 Breezy/Gnome).

3.
Resize the "Map Display" window with mouse very _excessively_.
Some of following errors are possible:
---------------------------------------------------------------------
ERROR - eof from graphics monitor.
ERROR - eof from graphics monitor.
    while executing
"close $input"
    (procedure "MapCanvas::drawmap" line 44)
    invoked from within
"MapCanvas::drawmap $mon"
    (procedure "MapCanvas::do_resize" line 12)
    invoked from within
"MapCanvas::do_resize 3"
    ("after" script)
---------------------------------------------------------------------
can not find channel named "couldn't execute "d.mon": too many open
files" can not find channel named "couldn't execute "d.mon": too many
open files" while executing
"close $input"
    (procedure "MapCanvas::drawmap" line 44)
    invoked from within
"MapCanvas::drawmap $mon"
    (procedure "MapCanvas::do_resize" line 12)
    invoked from within
"MapCanvas::do_resize 5"
    ("after" script)
---------------------------------------------------------------------
can't read "map_e": no such variable
can't read "map_e": no such variable
    while executing
"expr abs(1.0 * ($map_e - $map_w))"
    (procedure "MapCanvas::mapsettings" line 33)
    invoked from within
"MapCanvas::mapsettings $mon"
    (procedure "MapCanvas::do_resize" line 11)
    invoked from within
"MapCanvas::do_resize 5"
    ("after" script)
---------------------------------------------------------------------
couldn't create pipe: too many open files
couldn't create pipe: too many open files
    while executing
"exec g.gisenv get=GRASS_MESSAGE_FORMAT"
    (procedure "run_panel" line 4)
    invoked from within
"run_panel $cmd"
    (procedure "GmVector::display" line 95)
    invoked from within
"GmVector::display $node"
    ("vector" arm line 2)
    invoked from within
"switch $type {
        group {
            GmGroup::display $node
    }
    raster {
      GmRaster::display $node
    }
    labels {
      GmLabels::display $node
..."
    (procedure "GmTree::display_node" line 6)
    invoked from within
"GmTree::display_node $n"
    (procedure "GmGroup::display" line 14)
    invoked from within
"GmGroup::display "root""
    (procedure "MapCanvas::drawmap" line 31)
    invoked from within
"MapCanvas::drawmap $mon"
    (procedure "MapCanvas::do_resize" line 12)
    invoked from within
"MapCanvas::do_resize 5"
    ("after" script)
---------------------------------------------------------------------

The result is the same as in case #2. - desktop switcher freezes, using
over 90% CPU, have to kill and restart it to continue Gnome operation.

4.
gis.m creates many "dispmon_1.ppm" like files in my $HOME. Please don't.
It is my $HOME. This issue was already pointed out by someone else I
recall. Grass TEMP should be used instead.

5.
Each dipslay action is followed by dozens of:

PNG: GRASS_TRUECOLOR status: TRUE
PNG: collecting to file: dispmon_2.ppm,
     GRASS_WIDTH=530, GRASS_HEIGHT=482
Graphics driver [gism] started
Monitor 'gism' terminated

in the terminal. I recall you explained it this is due to d.mon design
and nothing you could do about it in d.m. Still? Could these be send
to /dev/null or whatever? This is really bad.

6.
Separate layer trees is a great thing. But, the given "Map Display"
layer tree is not updated in main gis.m window until I redraw in the
given "Map Display". Could it be updated once the given "Map Display"
window is only selected with mouse? Would be much better. Current
behaviour is problematic and time consuming. Say there are 3 "Map
Displays". Which one is the one I need? Let's see. (30 seconds of
rendering). Nope. Maybe this one. (Another 15 seconds). Must be the 3rd
one then... yes! Only 1 minute and all sorted out ;o).

7.
When I move my mouse pointer over _any_ "Map Display" canvas, the cursor
position is _still_ printed in the _currently_ active "Map Display"
window, while it shouldn't. And it is calculated as if _any_ map canvas
was an extension of the _current_ map canvas.

8.
The "run", "clear", "save", "open output window" buttons in the bottom
of main gis.m window get hidden when I drag the layer display
options window to the bottom. Could they be permanent, not possible to
hide? (We don't want to hide them, what for?)

9.
New layers are still added in the very end of the list, like in d.m.
This requires going down to the end of the list and dragging the layer
to it's destination. Pain. Could this be avoided in gis.m? Adding it
right after the currently highlited layer should be a reasonable
default.

10.
The display within "Map Displays" is always alligned to left. In old
display monitors it is centered. Is there a reason for the change?
Centering looks more natural to me than alligning the display to either
side of the canvas...

11.
I. Open new "Map Display". It is no 2.
II. Close "Map Display" no 1.
III. Open new "Map Display". It is no 3. But shouldn't it be the first
umber available, which is no 1 one then? Just asking, not sure myself.

Along with this, I'd encourage updates to additional modules to make
this all work even more seamlessly. For example...

-a new i.gcp module to replace i.points and i.vpoints. i.gcp would
accept input coordinate pairs x1,y1,x2,y2 (for existing point
coordinates and desired georeferenced coordinates), manage the ascii
points file, and calculate rms errors. Graphic could be handled by a
GUI.

In addition to this, IMVHO it would be cool to have the Grass5
d.fix.ortho funtcionality included - which is to move a layer to
another location interactively, based on 1 point source an target
location only. I'm finding it usefull from time to time, when the
raster is already warped but not georeferenced, and r.region is too
much hassle or impossible - eg. only the inner part of the image is
properly warped, while the outer part is deformed (due to bicubic
warping of an image with too little GCPs at it's edge).

Maciek

--------------------
W polskim Internecie s± setki milionów stron. My przekazujemy Tobie tylko najlepsze z nich!
http://katalog.panoramainternetu.pl/

Maciek,

Thanks for going over this thoroughly. Responses below.

Michael
______________________________
Michael Barton, Professor of Anthropology
School of Human Evolution and Social Change
Arizona State University
Tempe, AZ 85287-2402
USA

voice: 480-965-6262; fax: 480-965-7671
www: http://www.public.asu.edu/~cmbarton

From: Maciek Sieczka <werchowyna@epf.pl>
Date: Mon, 13 Feb 2006 22:40:16 +0100
To: Michael Barton <michael.barton@asu.edu>
Cc: <grass5@grass.itc.it>, <GRASSLIST@baylor.edu>
Subject: Re: [GRASS5] New release candidate 3 of GIS Manager 2

On Mon, 13 Feb 2006 10:02:00 -0700
Michael Barton <michael.barton@asu.edu> wrote:

I just committed to the CVS and posted to my website
<http://www.public.asu.edu/~cmbarton/files/grass_gismgr&gt; the
(hopefully) final release candidate for the new GRASS GIS Manager. It
has many updates. I think I've fixed all reported bugs or anomalous
behavior‹and a number of unreported ones. A few of the highlights.

A fix for the Œblack canvas that some people have been getting.

Is OK now, great!

<snip>

ŒSticky' zooming‹by popular demand.

Better, as to me. But still it is not a continous zoom mode, like it
used to be. Could this be brought back as well? For now one has to
re-click the zoom button to do another zoom, and once more, and once
more... This is not optimal I believe. In my practice I'm almost never
satisfied with the first zoom, so I need to re-click zoom button several
times until I set up the view as needed. Or think of a situatioan
when you want to zoom in and out quickly back to bring back the
context. While in the continous zoom this was avoided, all you had to
do was to click right mouse button to quit the zooming tool once you
are done. Who else preffered the old mode?

let's see what response is to this one

show up in the status area at the bottom of the screen instead of a
little message window that you have to click to get rid of.

Now I see what was your intention. But was this really such a big
problem to single right-click once you are done? In my opinion having to
re-select the zoom tool (move mouse pointer, click) several times
agian and again is much worse...

Info display not connected with zoom mode.

Moreover, I don't understand why I need to select a rectangle to
_unzoom_. Am I missing something? Zoom out tool should... zoom out
once I click the button, why select region and confirm? Too much mouse
action for no purpose, I think.

Zoom out rectangle give you greater control over you 'unzoom'. With a
zoom-out rectangle, your current map 'shrinks' to fit into the rectangle. So
you can decide to zoom out a little (big rectangle) or a lot (small
rectangle). Or you can use g.region.

A few added convenience features. The one I like the best was
inspired by Peter Misovic's questions about displays and queries. You
can now save the results of a display query‹in the vector display‹to
a new vector file (using v.extract).

I haven't used that yet, but sounds cool!

Thanks for all the suggestions and testing. When this release
candidate goes through testing and any remaining bugs are removed, I
hope to make this the default GUI for GRASS.

More problems I can see:

0.
"Zoom" tools, "Redraw" and other change region resolution! This is a
very bad idea IMHO. Why should they? Once I set up the region
resolution it should be changed only at my request I believe, and only
then.

Zoom does NOT change resolution, only EXTENTS. In GRASS zoom is controlled
by g.region. Nothing I can do about that. But as per earlier discussion,
this is not a bad thing. Note that each map display now has its own zoom. So
when you change the EXTENTS in one display, it doesn't affect the extents in
another display. I'm not sure what else you could want with this. Zoom
(change extents) and not zoom (don't change extents) at the same time? I
don't understand.

1.
I. Display anything.
II. Zoom in -> current region changes.
III. Run g.region, redraw in gis.m -> g.region changes get discarded.

Why does gis.m doesn't honour the changes in current region any other
than those of his own? Doesn't make sense to me.

Use the new zoom to current region button. This will zoom to whatever you
have set using g.region. Any redraw will subsequently stay with that region
setting until you change it in some other way.

2.
I. Click "Pan" tool.
II. Left-click+hold button on the canvas but _don't_ drag.
III. Release the button.

Error:
can't read "to_x": no such variable
can't read "to_x": no such variable
    while executing
"scrx2mape $to_x"
    (procedure "MapCanvas::pan" line 11)
    invoked from within
"MapCanvas::pan $mon"
    (command bound to event)

My destop switcher freezes, using over 90% CPU, have to kill and
restart it to continue Gnome operation (Ubuntu 5.10 Breezy/Gnome).

I'll try to fix this.

3.
Resize the "Map Display" window with mouse very _excessively_.
Some of following errors are possible:

Due to the way that GRASS displays work at the moment, if you excessively
resize the window, it will eventually bomb. I don't think this will be a
problem in normal work. But we'll have to see. Until the underlying GRASS
display mechanisms are rewritten, this will be a potential problem. But I
hope it won't be much of an issue really.

---------------------------------------------------------------------
ERROR - eof from graphics monitor.
ERROR - eof from graphics monitor.
    while executing
"close $input"
    (procedure "MapCanvas::drawmap" line 44)
    invoked from within
"MapCanvas::drawmap $mon"
    (procedure "MapCanvas::do_resize" line 12)
    invoked from within
"MapCanvas::do_resize 3"
    ("after" script)
---------------------------------------------------------------------
can not find channel named "couldn't execute "d.mon": too many open
files" can not find channel named "couldn't execute "d.mon": too many
open files" while executing
"close $input"
    (procedure "MapCanvas::drawmap" line 44)
    invoked from within
"MapCanvas::drawmap $mon"
    (procedure "MapCanvas::do_resize" line 12)
    invoked from within
"MapCanvas::do_resize 5"
    ("after" script)
---------------------------------------------------------------------
can't read "map_e": no such variable
can't read "map_e": no such variable
    while executing
"expr abs(1.0 * ($map_e - $map_w))"
    (procedure "MapCanvas::mapsettings" line 33)
    invoked from within
"MapCanvas::mapsettings $mon"
    (procedure "MapCanvas::do_resize" line 11)
    invoked from within
"MapCanvas::do_resize 5"
    ("after" script)
---------------------------------------------------------------------
couldn't create pipe: too many open files
couldn't create pipe: too many open files
    while executing
"exec g.gisenv get=GRASS_MESSAGE_FORMAT"
    (procedure "run_panel" line 4)
    invoked from within
"run_panel $cmd"
    (procedure "GmVector::display" line 95)
    invoked from within
"GmVector::display $node"
    ("vector" arm line 2)
    invoked from within
"switch $type {
        group {
            GmGroup::display $node
}
raster {
GmRaster::display $node
}
labels {
GmLabels::display $node
..."
    (procedure "GmTree::display_node" line 6)
    invoked from within
"GmTree::display_node $n"
    (procedure "GmGroup::display" line 14)
    invoked from within
"GmGroup::display "root""
    (procedure "MapCanvas::drawmap" line 31)
    invoked from within
"MapCanvas::drawmap $mon"
    (procedure "MapCanvas::do_resize" line 12)
    invoked from within
"MapCanvas::do_resize 5"
    ("after" script)
---------------------------------------------------------------------

The result is the same as in case #2. - desktop switcher freezes, using
over 90% CPU, have to kill and restart it to continue Gnome operation.

4.
gis.m creates many "dispmon_1.ppm" like files in my $HOME. Please don't.
It is my $HOME. This issue was already pointed out by someone else I
recall. Grass TEMP should be used instead.

I plan on working on this when I change how maps are composited and
displayed. I agree, it's better to put these into your home director. OTOH,
if you DO have a crash of some kind, your most recent displays can be easily
salvaged as accessible *.ppm files.

Also, these are deleted whenever you close a map display and whenever you
quit the GIS Manager.

5.
Each dipslay action is followed by dozens of:

PNG: GRASS_TRUECOLOR status: TRUE
PNG: collecting to file: dispmon_2.ppm,
     GRASS_WIDTH=530, GRASS_HEIGHT=482
Graphics driver [gism] started
Monitor 'gism' terminated

in the terminal. I recall you explained it this is due to d.mon design
and nothing you could do about it in d.m. Still? Could these be send
to /dev/null or whatever? This is really bad.

No way to fix this until the underlying GRASS display drivers are rewritten.
But given that there is now a nice clean command console and separate output
window included in the GIS Manager, this shouldn't be much of a problem.
Just make the ugly terminal window small since you don't need it much
anymore :wink:

6.
Separate layer trees is a great thing. But, the given "Map Display"
layer tree is not updated in main gis.m window until I redraw in the
given "Map Display". Could it be updated once the given "Map Display"
window is only selected with mouse? Would be much better. Current
behaviour is problematic and time consuming. Say there are 3 "Map
Displays". Which one is the one I need? Let's see. (30 seconds of
rendering). Nope. Maybe this one. (Another 15 seconds). Must be the 3rd
one then... yes! Only 1 minute and all sorted out ;o).

It will change whenever you click on a map display window. You don't have to
redraw. But you do have to select the map display you want to work with. I
don't have it change with random waves of the cursor; you need to actively
select the window. But you only have to click it, not run d.mon select=x1.

7.
When I move my mouse pointer over _any_ "Map Display" canvas, the cursor
position is _still_ printed in the _currently_ active "Map Display"
window, while it shouldn't. And it is calculated as if _any_ map canvas
was an extension of the _current_ map canvas.

As per above, the coordinates under the mouse are for whatever map display
you have actively selected. Otherwise, what would happen if you had
overlapping windows?

8.
The "run", "clear", "save", "open output window" buttons in the bottom
of main gis.m window get hidden when I drag the layer display
options window to the bottom. Could they be permanent, not possible to
hide? (We don't want to hide them, what for?)

I don't understand what you are doing here.

9.
New layers are still added in the very end of the list, like in d.m.
This requires going down to the end of the list and dragging the layer
to it's destination. Pain. Could this be avoided in gis.m? Adding it
right after the currently highlited layer should be a reasonable
default.

What you suggest is probably possible, though a bit complicated. But is this
a good idea? What do others think?

10.
The display within "Map Displays" is always alligned to left. In old
display monitors it is centered. Is there a reason for the change?
Centering looks more natural to me than alligning the display to either
side of the canvas...

The map in the canvas is aligned to the upper left for accurate conversion
between screen coordinates and geographic coordinates.

11.
I. Open new "Map Display". It is no 2.
II. Close "Map Display" no 1.
III. Open new "Map Display". It is no 3. But shouldn't it be the first
umber available, which is no 1 one then? Just asking, not sure myself.

Open 1, 2, 3, 4, 5
Close 2,4
Open a new display.
It's hard to track which has been closed and which needs to be open. Much
easier just to increment at the end of the series. Also avoids potential
problems of duplicating map display numbers (need to be unique for
independent layer trees, region settings, etc.)

Along with this, I'd encourage updates to additional modules to make
this all work even more seamlessly. For example...

-a new i.gcp module to replace i.points and i.vpoints. i.gcp would
accept input coordinate pairs x1,y1,x2,y2 (for existing point
coordinates and desired georeferenced coordinates), manage the ascii
points file, and calculate rms errors. Graphic could be handled by a
GUI.

In addition to this, IMVHO it would be cool to have the Grass5
d.fix.ortho funtcionality included - which is to move a layer to
another location interactively, based on 1 point source an target
location only. I'm finding it usefull from time to time, when the
raster is already warped but not georeferenced, and r.region is too
much hassle or impossible - eg. only the inner part of the image is
properly warped, while the outer part is deformed (due to bicubic
warping of an image with too little GCPs at it's edge).

I agree.

Hope this is helpful

Michael

Maciek

--------------------
W polskim Internecie są setki milionów stron. My przekazujemy Tobie tylko
najlepsze z nich!
http://katalog.panoramainternetu.pl/

Just thought I'd throw in a couple words...

On Feb 13, 2006, at 4:11 PM, Michael Barton wrote:

ŒSticky' zooming‹by popular demand.

Better, as to me. But still it is not a continous zoom mode, like it
used to be. Could this be brought back as well? For now one has to
re-click the zoom button to do another zoom, and once more, and once
more... This is not optimal I believe. In my practice I'm almost never
satisfied with the first zoom, so I need to re-click zoom button several
times until I set up the view as needed. Or think of a situatioan
when you want to zoom in and out quickly back to bring back the
context. While in the continous zoom this was avoided, all you had to
do was to click right mouse button to quit the zooming tool once you
are done. Who else preffered the old mode?

let's see what response is to this one

My response - yes for continuous zoom. It's a tool, and one uses a tool until another is selected.

Moreover, I don't understand why I need to select a rectangle to
_unzoom_. Am I missing something? Zoom out tool should... zoom out
once I click the button, why select region and confirm? Too much mouse
action for no purpose, I think.

Zoom out rectangle give you greater control over you 'unzoom'. With a
zoom-out rectangle, your current map 'shrinks' to fit into the rectangle. So
you can decide to zoom out a little (big rectangle) or a lot (small
rectangle). Or you can use g.region.

I think this zoom out by rectangle thing is unintuitive. Dragging a rectangle for a zoom implies getting closer, within the rectangle, but then you go the opposite direction. Vertigo alert! If you need a fast zoom out, is it possible to have something interrupt the redraw? Then you could just click multiple times in succession. Or some way to set zoom out magnitude? (could work for point-click zoom in also) Either would be better.

-----
William Kyngesburye <kyngchaos@kyngchaos.com>
http://www.kyngchaos.com/

Earth: "Mostly harmless"

- revised entry in the HitchHiker's Guide to the Galaxy

A couple things to think about on the deceptively simple, but important task
of zooming.

The most frequent way of zooming I've encountered in GIS and graphic
programs is the way it was set up in the previous release of gism--

-select zoom
-draw zoom rectangle
-map zooms to that rectangle

This is the way that most people unused to GRASS would expect it to work.

The 3-button zoom in d.zoom can be very convenient...once you get used to it
and if you're sitting at a nice desktop workstation with a 3-button mouse.

If you have a Mac with a 1-button mouse (the norm until very recently) or PC
with a 2-button mouse (the norm until recently) or a laptop with a 1 or
2-button trackpad (still the norm), the 3-button zoom is a real pain. It
means that you have to always use 2 hands and key combinations to do a
simple zoom.

In most graphic programs (perhaps CAD excepted), if you select a line tool,
it is only selected until you have completed the line. It does not stay
selected to allow you to keep drawing lines. Again, this is commonly
expected behavior because it is the way that may graphic programs work.

Likewise, zoom-out rectangles are standard on other GIS programs and some
other graphic programs.

By following common tool behavior, you shorten the learning curve for new
users.

Of course, the 'normal' way a tool behaves may not be the best way it could
behave (QWERTY keyboards are one of the better known examples of this).

On the other hand, what is convenient for some may not be for others. The
old d.zoom had multiple kinds of display manipulation built into a single
tool--zoom in by rectangle, zoom out by set amounts, and pan. Sometimes I
found this very handy, other times very cumbersome. Most people unused to
GRASS were baffled by it for awhile at least. GIS software and concepts are
complicated enough, without adding unnecessary bafflement.

So what to do? My goal, at least is to try to make tools easier AND more
functional. These are sometimes conflicting goals (ignoring any programming
difficulties).

Because zooming seems to be a hot button issue (pun intended) with responses
from various sides of the fence, it's one that deserves more thought about
how to do it better (easier and more functional) within the limits of the
interface software.

I appreciate your comments and those of others on this subject.
Suggestions--and programming help--are also appreciated.

Cheers
Michael
__________________________________________
Michael Barton, Professor of Anthropology
School of Human Evolution and Social Change
Arizona State University
Tempe, AZ 85287-2402

phone: 480-965-6213
fax: 480-965-7671
www: http://www.public.asu.edu/~cmbarton

From: William Kyngesburye <woklist@kyngchaos.com>
Date: Mon, 13 Feb 2006 17:36:32 -0600
To: <grass5@grass.itc.it>, <grasslist@baylor.edu>
Subject: [GRASSLIST:10282] Re: [GRASS5] New release candidate 3 of GIS Manager
2

let's see what response is to this one

My response - yes for continuous zoom. It's a tool, and one uses a
tool until another is selected.

Moreover, I don't understand why I need to select a rectangle to
_unzoom_. Am I missing something? Zoom out tool should... zoom out
once I click the button, why select region and confirm? Too much
mouse
action for no purpose, I think.

Zoom out rectangle give you greater control over you 'unzoom'. With a
zoom-out rectangle, your current map 'shrinks' to fit into the
rectangle. So
you can decide to zoom out a little (big rectangle) or a lot (small
rectangle). Or you can use g.region.

I think this zoom out by rectangle thing is unintuitive. Dragging a
rectangle for a zoom implies getting closer, within the rectangle,
but then you go the opposite direction. Vertigo alert! If you need
a fast zoom out, is it possible to have something interrupt the
redraw? Then you could just click multiple times in succession. Or
some way to set zoom out magnitude? (could work for point-click zoom
in also) Either would be better.

Maciek,

My answer to the above observation was incorrect.

In fact, the mouse cursor calculates coordinate points correctly for
whichever map display it is currently over--whether you click it or not.

If two map displays are overlapping, it calculates coordinates for the
cursor based on the display that is on top--until you move the cursor off
that display. Then it calculates for any other map display that it is over.

If the cursor is not over any map display, it no longer calculates cursor
locations.

Michael
__________________________________________
Michael Barton, Professor of Anthropology
School of Human Evolution and Social Change
Arizona State University
Tempe, AZ 85287-2402

phone: 480-965-6213
fax: 480-965-7671
www: http://www.public.asu.edu/~cmbarton

From: Maciek Sieczka <werchowyna@epf.pl>
Date: Mon, 13 Feb 2006 22:40:16 +0100
To: Michael Barton <michael.barton@asu.edu>
Cc: <grass5@grass.itc.it>, <GRASSLIST@baylor.edu>
Subject: Re: [GRASS5] New release candidate 3 of GIS Manager 2

7.
When I move my mouse pointer over _any_ "Map Display" canvas, the cursor
position is _still_ printed in the _currently_ active "Map Display"
window, while it shouldn't. And it is calculated as if _any_ map canvas
was an extension of the _current_ map canvas.

Michael Barton wrote:

In most graphic programs (perhaps CAD excepted), if you select a line tool,
it is only selected until you have completed the line. It does not stay
selected to allow you to keep drawing lines. Again, this is commonly
expected behavior because it is the way that may graphic programs work.

That isn't my experience. I find it more common for "tools" to remain
active until you explicitly select a different tool.

--
Glynn Clements <glynn@gclements.plus.com>

Why not follow Corel Draw's convention of having:

- a zoom+ tool
- a zoom- tool (this one I find quite useless, personally)
- a zoom-once "tool", which reverts to the previously used tool after
rubberbanding

Daniel.

On 2/14/06, Glynn Clements <glynn@gclements.plus.com> wrote:

Michael Barton wrote:

> In most graphic programs (perhaps CAD excepted), if you select a line tool,
> it is only selected until you have completed the line. It does not stay
> selected to allow you to keep drawing lines. Again, this is commonly
> expected behavior because it is the way that may graphic programs work.

That isn't my experience. I find it more common for "tools" to remain
active until you explicitly select a different tool.

--
Glynn Clements <glynn@gclements.plus.com>

_______________________________________________
grass5 mailing list
grass5@grass.itc.it
http://grass.itc.it/mailman/listinfo/grass5

--
-- Daniel Calvelo Aros

On Mon, 13 Feb 2006 15:11:55 -0700
Michael Barton <michael.barton@asu.edu> wrote:

> From: Maciek Sieczka <werchowyna@epf.pl>
> Date: Mon, 13 Feb 2006 22:40:16 +0100

> Better, as to me. But still it is not a continous zoom mode, like it
> used to be. <SNIP>

let's see what response is to this one

So far the only responses I can see are for the old behaviour. But this
might not mean anything. I bet you know people who prefer the new
behaviour.

>> show up in the status area at the bottom of the screen instead of a
>> little message window that you have to click to get rid of.
>
> Now I see what was your intention. But was this really such a big
> problem to single right-click once you are done? In my opinion
> having to re-select the zoom tool (move mouse pointer, click)
> several times agian and again is much worse...

Info display not connected with zoom mode.

I don't understand. Can you explain?

> Moreover, I don't understand why I need to select a rectangle to
> _unzoom_. Am I missing something? Zoom out tool should... zoom out
> once I click the button, why select region and confirm? Too much
> mouse action for no purpose, I think.

Zoom out rectangle give you greater control over you 'unzoom'. With a
zoom-out rectangle, your current map 'shrinks' to fit into the
rectangle. So you can decide to zoom out a little (big rectangle) or
a lot (small rectangle).

I don't find this any helpfull in practice. Maybe it is only me.

> More problems I can see:
>
>
> 0.
> "Zoom" tools, "Redraw" and other change region resolution! This is a
> very bad idea IMHO. Why should they? Once I set up the region
> resolution it should be changed only at my request I believe, and
> only then.

Zoom does NOT change resolution, only EXTENTS.

But it really DOES change the region. Try for yourself:

1.
$ g.region rast=u65_10k_rogow -ap
projection: 1 (UTM)
zone: 33
datum: wgs84
ellipsoid: wgs84
north: 5681438
south: 5676368
west: 596952
east: 603815
nsres: 1
ewres: 1
rows: 5070
cols: 6863

2.
Display in gis.m, zoom in once.

3.
$ g.region -p
projection: 1 (UTM)
zone: 33
datum: wgs84
ellipsoid: wgs84
north: 5679541.73929
south: 5678636.76827
west: 600274.248772
east: 601286.741103
nsres: 0.99996798
ewres: 0.99949885
rows: 905
cols: 1013

As you can see the resolution changed. Please don't do it.

controlled by g.region. Nothing I can do about that.

Use "g.region -a" instead?

Who can say what d.zoom is doing that it is not changing the res at
zooming in/out?

But as per
earlier discussion, this is not a bad thing. Note that each map
display now has its own zoom. So when you change the EXTENTS in one
display, it doesn't affect the extents in another display. I'm not
sure what else you could want with this. Zoom (change extents) and
not zoom (don't change extents) at the same time? I don't understand.

Change the extents as needed - that's what the zoom tool is for. But
don't touch the resolution.

v.digit in Grass=>5.7 is doing the same - changes the resolution, which
leads to crashes when the res get's rapidly finer (I guess), and is a
bad thing in general - e.g. the perception of features in the displayed
raster layer changes during zooming in an unpredictable, non-intuitive
way. See:
https://intevation.de/rt/webrt?serial_num=2962
https://intevation.de/rt/webrt?serial_num=3047

> 1.
> I. Display anything.
> II. Zoom in -> current region changes.
> III. Run g.region, redraw in gis.m -> g.region changes get
> discarded.
>
> Why does gis.m doesn't honour the changes in current region any
> other than those of his own? Doesn't make sense to me.

Use the new zoom to current region button. This will zoom to whatever
you have set using g.region. Any redraw will subsequently stay with
that region setting until you change it in some other way.

Ahh. I see. Will have to get used to this...

> 3.
> Resize the "Map Display" window with mouse very _excessively_.
> Some of following errors are possible:

Due to the way that GRASS displays work at the moment, if you
excessively resize the window, it will eventually bomb.

Do you mean it should happen as well with gis.m "Map Displays" as with
old monitors? With old monitors it never happens for me, no matter what
a saddist I am...

> 5.
> Each dipslay action is followed by dozens of:
>
> PNG: GRASS_TRUECOLOR status: TRUE
> PNG: collecting to file: dispmon_2.ppm,
> GRASS_WIDTH=530, GRASS_HEIGHT=482
> Graphics driver [gism] started
> Monitor 'gism' terminated
>
> in the terminal. I recall you explained it this is due to d.mon
> design and nothing you could do about it in d.m. Still? Could these
> be send to /dev/null or whatever? This is really bad.

No way to fix this until the underlying GRASS display drivers are
rewritten. But given that there is now a nice clean command console
and separate output window included in the GIS Manager, this
shouldn't be much of a problem. Just make the ugly terminal window
small since you don't need it much anymore :wink:

Naah, Grass is more powerfull in connection with Unix commands and
variables and Bash.

> 6.
> Separate layer trees is a great thing. But, the given "Map Display"
> layer tree is not updated in main gis.m window until I redraw in the
> given "Map Display". Could it be updated once the given "Map
> Display" window is only selected with mouse? Would be much better.
> Current behaviour is problematic and time consuming. Say there are
> 3 "Map Displays". Which one is the one I need? Let's see. (30
> seconds of rendering). Nope. Maybe this one. (Another 15 seconds).
> Must be the 3rd one then... yes! Only 1 minute and all sorted
> out ;o).

It will change whenever you click on a map display window.

Right! Thanks! I was only clicking the "Map Display" window title bar,
thought this should be enough. And - could it be enough? Would improve
things I believe.

> 8.
> The "run", "clear", "save", "open output window" buttons in the
> bottom of main gis.m window get hidden when I drag the layer display
> options window to the bottom. Could they be permanent, not possible
> to hide? (We don't want to hide them, what for?)

I don't understand what you are doing here.

See the attached screendump: don't let the buttons (1) get hidden when
the slider (2) is drragged to the bottom.

> 9.
> New layers are still added in the very end of the list, like in d.m.
> This requires going down to the end of the list and dragging the
> layer to it's destination. Pain. Could this be avoided in gis.m?
> Adding it right after the currently highlited layer should be a
> reasonable default.

What you suggest is probably possible, though a bit complicated. But
is this a good idea? What do others think?

Provided that every single other day turns ourselves into somewhat
different persons, to some extent, today I'm the other one who answers
it is deffinetely a good idea.

> 10.
> The display within "Map Displays" is always alligned to left. In old
> display monitors it is centered. Is there a reason for the change?
> Centering looks more natural to me than alligning the display to
> either side of the canvas...

The map in the canvas is aligned to the upper left for accurate
conversion between screen coordinates and geographic coordinates.

I see. Pitty tough.

> 11.
> I. Open new "Map Display". It is no 2.
> II. Close "Map Display" no 1.
> III. Open new "Map Display". It is no 3. But shouldn't it be the
> first umber available, which is no 1 one then? Just asking, not
> sure myself.

Open 1, 2, 3, 4, 5
Close 2,4
Open a new display.
It's hard to track which has been closed and which needs to be open.
Much easier just to increment at the end of the series. Also avoids
potential problems of duplicating map display numbers (need to be
unique for independent layer trees, region settings, etc.)

Right.

Thanks for reading this and taking care of the issues.

Cheers
Maciek

--------------------
W polskim Internecie s? setki milion?w stron. My przekazujemy Tobie tylko najlepsze z nich!
http://katalog.panoramainternetu.pl/

(attachments)

otherwords.png

Michael,

I'll add my opinion on this zoom question. BTW, the futher revisions to
the new GIS Manager look good. Great stuff.

I would suggest that rather than having a zoom in tool and a zoom out
tool that there is a zoom tool. Drawing a rectangle to zoom in and
right clicking to zoom out. This is similar to many drawing programs
I've used and is relatively intuitive. If we are concerned about people
with inadequate numbers of mouse buttons then replace the right click
to zoom out with holding down ALT and left clicking to zoom out. This
too is relatively intuitive.

It would be even more desirable to have a command key option so that
the zoom tool also pans. For instance holding down CTRL changes the
cursor to a hand and click and drag to pan. This may not be obvious to
new users, but once discovered, it would be used all the time because
it is much easier and quicker.

Perhaps my most radical suggestion is why not always have a tool chosen
like with the GIMP. There is little point to having a cursor that can
trace around the screen but not do anything but display its location.
Instead having a push button style tool bar for Tools and changing the
displayed cursor depending on the tool selected provides easier and
more efficient use. Thus when a new monitor is opened the default tool
is the zoom / pan tool (depending on held keys). Thus the cursor would
be a magnifying glass but would change to hand if in pan mode. If the
query tool was selected the cursor would change to an point with a
question mark, for instance. In this way no unnecessary mouse movement
is needed. I understand that this would be a significant change and
might be a bit more difficult for naive users, but GRASS isn't QGIS. It
is a serious tool for serious users. I'm not saying we should make it
difficult, but making it more efficient for users once they understand
how to use it is highly desirable.

T
--
Trevor Wiens
twiens@interbaun.com

The significant problems that we face cannot be solved at the same
level of thinking we were at when we created them.
(Albert Einstein)

Trevor Wiens wrote:

I'll add my opinion on this zoom question. BTW, the futher revisions to
the new GIS Manager look good. Great stuff.

I would suggest that rather than having a zoom in tool and a zoom out
tool that there is a zoom tool. Drawing a rectangle to zoom in and
right clicking to zoom out. This is similar to many drawing programs
I've used and is relatively intuitive. If we are concerned about people
with inadequate numbers of mouse buttons then replace the right click
to zoom out with holding down ALT and left clicking to zoom out. This
too is relatively intuitive.

I'd suggest using a modifier key rather than a separate mouse button.
Even on Windows, where you're almost certain to have at least 2
buttons (trackpads usually have a key to allow right-clicks to be
simulated), the official UI guidelines state the the right mouse
button is only ever used to bring up the context menu.

gis.m definitely shouldn't try to copy the behaviour of existing
programs such as d.zoom etc. Those programs were constrained by the
fact that the only input mechanism provided by the display
architecture was mouse clicks; there was no way to receive keystrokes
or modifiers.

--
Glynn Clements <glynn@gclements.plus.com>

Maciek,

I see what you are talking about. But the GIS Manager is NOT doing this. The
zooming in the new GIS Manager does NOT use d.zoom. It simply resets the
region extents--extents ONLY--by issuing a g.region n=y1 s=y2 e=x1 w=x2 (no
change to resolution)

I tried adding the -a flag and it makes no difference. It looks like it is
some kind of a rounding issue in g.region (or possibly in the OS). In a
working context the change is a tiny fraction of a mm in your example below.
So it wouldn't make any meaningful difference in most cases. However, it is
odd that it happens. Maybe someone who understands the g.region code can
explain it.

Michael
______________________________
Michael Barton, Professor of Anthropology
School of Human Evolution and Social Change
Arizona State University
Tempe, AZ 85287-2402
USA

voice: 480-965-6262; fax: 480-965-7671
www: http://www.public.asu.edu/~cmbarton

From: Maciek Sieczka <werchowyna@epf.pl>
Date: Tue, 14 Feb 2006 21:12:17 +0100
To: Michael Barton <michael.barton@asu.edu>
Cc: <grass5@grass.itc.it>, <GRASSLIST@baylor.edu>
Subject: Re: [GRASS5] New release candidate 3 of GIS Manager 2

Zoom does NOT change resolution, only EXTENTS.

But it really DOES change the region. Try for yourself:

1.
$ g.region rast=u65_10k_rogow -ap
projection: 1 (UTM)
zone: 33
datum: wgs84
ellipsoid: wgs84
north: 5681438
south: 5676368
west: 596952
east: 603815
nsres: 1
ewres: 1
rows: 5070
cols: 6863

2.
Display in gis.m, zoom in once.

3.
$ g.region -p
projection: 1 (UTM)
zone: 33
datum: wgs84
ellipsoid: wgs84
north: 5679541.73929
south: 5678636.76827
west: 600274.248772
east: 601286.741103
nsres: 0.99996798
ewres: 0.99949885
rows: 905
cols: 1013

As you can see the resolution changed. Please don't do it.

controlled by g.region. Nothing I can do about that.

Use "g.region -a" instead?

Who can say what d.zoom is doing that it is not changing the res at
zooming in/out?

I don't know if you can crash an xmonitor by excessively resizing it,
causing the xdriver to redraw repeatedly. Maybe if you work at it...

But the xdriver works differently from the PNG driver I have to use for the
new GIS Manager. I suspect that by resizing excessively in the new GIS
Manager, you end up building up too many pending processes in a buffer
somewhere. I've trapped as much of this as I know how to keep someone from
doing this, but you can apparently manage to get by these if you work at it.

Michael
______________________________
Michael Barton, Professor of Anthropology
School of Human Evolution and Social Change
Arizona State University
Tempe, AZ 85287-2402
USA

voice: 480-965-6262; fax: 480-965-7671
www: http://www.public.asu.edu/~cmbarton

From: Maciek Sieczka <werchowyna@epf.pl>
Date: Tue, 14 Feb 2006 21:12:17 +0100
To: Michael Barton <michael.barton@asu.edu>
Cc: <grass5@grass.itc.it>, <GRASSLIST@baylor.edu>
Subject: Re: [GRASS5] New release candidate 3 of GIS Manager 2

Due to the way that GRASS displays work at the moment, if you
excessively resize the window, it will eventually bomb.

Do you mean it should happen as well with gis.m "Map Displays" as with
old monitors? With old monitors it never happens for me, no matter what
a saddist I am...

5.

Maciek

More replies
______________________________
Michael Barton, Professor of Anthropology
School of Human Evolution and Social Change
Arizona State University
Tempe, AZ 85287-2402
USA

voice: 480-965-6262; fax: 480-965-7671
www: http://www.public.asu.edu/~cmbarton

From: Maciek Sieczka <werchowyna@epf.pl>
Date: Tue, 14 Feb 2006 21:12:17 +0100
To: Michael Barton <michael.barton@asu.edu>
Cc: <grass5@grass.itc.it>, <GRASSLIST@baylor.edu>
Subject: Re: [GRASS5] New release candidate 3 of GIS Manager 2

It will change whenever you click on a map display window.

Right! Thanks! I was only clicking the "Map Display" window title bar,
thought this should be enough. And - could it be enough? Would improve
things I believe.

The top title bar is the only place on the window I can't get the mouse
click to register. I don't know why.

8.
The "run", "clear", "save", "open output window" buttons in the
bottom of main gis.m window get hidden when I drag the layer display
options window to the bottom. Could they be permanent, not possible
to hide? (We don't want to hide them, what for?)

I don't understand what you are doing here.

See the attached screendump: don't let the buttons (1) get hidden when
the slider (2) is drragged to the bottom.

Thanks for the graphic explaining this. I don't know how to avoid this. If
you expand the total height of the GIS Manager control window, it helps to
some extent, but does not get rid of this issue. Maybe someone else has an
idea???

Michael

Michael Barton wrote:

> Right! Thanks! I was only clicking the "Map Display" window title bar,
> thought this should be enough. And - could it be enough? Would improve
> things I believe.

The top title bar is the only place on the window I can't get the mouse
click to register. I don't know why.

The title bar belongs to the window manager; mouse clicks there will
not be reported to the application.

If the WM implements a click-to-focus policy, you may receive a
FocusIn event when the window is selected. Also, you might receive a
Configure event if the WM changes the window's position in the
stacking order.

>>> The "run", "clear", "save", "open output window" buttons in the
>>> bottom of main gis.m window get hidden when I drag the layer display
>>> options window to the bottom. Could they be permanent, not possible
>>> to hide? (We don't want to hide them, what for?)
>>
>> I don't understand what you are doing here.
>
> See the attached screendump: don't let the buttons (1) get hidden when
> the slider (2) is drragged to the bottom.

Thanks for the graphic explaining this. I don't know how to avoid this. If
you expand the total height of the GIS Manager control window, it helps to
some extent, but does not get rid of this issue. Maybe someone else has an
idea???

Re-arrange the widget hierarchy so that the buttons aren't descendents
of the paned window.

--
Glynn Clements <glynn@gclements.plus.com>

On Wed, 15 Feb 2006 16:59:15 -0700
Michael Barton <michael.barton@asu.edu> wrote:

Michael,

Maciek,

I see what you are talking about. But the GIS Manager is NOT doing
this. The zooming in the new GIS Manager does NOT use d.zoom.

I know. I'm not saying it is. But I'm wondering if gis.m could follow
it, as it is doing the good thing (except
https://intevation.de/rt/webrt?serial_num=3961, but this is another
story).

It simply resets the region extents--extents ONLY--by issuing a
g.region n=y1 s=y2 e=x1 w=x2 (no change to resolution)

I tried adding the -a flag and it makes no difference.

When you need to preserve resolution, but the given extents would not
let you to, you need to specify the input resolution explicitely, which
you want to be preserved after g.region:

### The initial region:

$ g.region -p
projection: 1 (UTM)
zone: 33
datum: wgs84
ellipsoid: wgs84
north: 5679546
south: 5678732
west: 598654
east: 599761
nsres: 1
ewres: 1
rows: 814
cols: 1107

### Let's zoom out - not preserving the res, like gis.m does it (bad):

$ g.region n=5680762.10112026 s=5677880.44652981 w=598415.29951403
e=600978.962345 -p projection: 1 (UTM)
zone: 33
datum: wgs84
ellipsoid: wgs84
north: 5680762.10112026
south: 5677880.44652981
west: 598415.29951403
east: 600978.962345
nsres: 0.99988015
ewres: 0.9998685
rows: 2882
cols: 2564

### And now zoom out preserving the res, like d.zoom does it (good):

$ g.region n=5680762.10112026 s=5677880.44652981 w=598415.29951403
e=600978.962345 res=1 -ap projection: 1 (UTM)
zone: 33
datum: wgs84
ellipsoid: wgs84
north: 5680763
south: 5677880
west: 598415
east: 600979
nsres: 1
ewres: 1
rows: 2883
cols: 2564

It looks like it is some kind of a rounding issue in g.region (or
possibly in the OS).

I guess it's not. Simply g.region does exactly what you are telling it
to do. Maybe telling it to preserve the input res then would be all that
we need.

In a working context the change is a tiny fraction of a mm in
your example below. So it wouldn't make any meaningful difference in
most cases.

It's not about millimeters during display or else. It's about preserving
the current resolution when zooming. This is a must I believe. You can't
let your zooming tool to change the working region resolution. Why
should you?

However, it is odd that it happens. Maybe someone who
understands the g.region code can explain it.

I hope so to. I know what I'm seeing only.

Maciek

--------------------
W polskim Internecie s? setki milion?w stron. My przekazujemy Tobie tylko najlepsze z nich!
http://katalog.panoramainternetu.pl/

Maciek,

I fixed this in the version I just released. Thanks for noting and explaing
this.

Michael
______________________________
Michael Barton, Professor of Anthropology
School of Human Evolution and Social Change
Arizona State University
Tempe, AZ 85287-2402
USA

voice: 480-965-6262; fax: 480-965-7671
www: http://www.public.asu.edu/~cmbarton

From: Maciek Sieczka <werchowyna@epf.pl>
Date: Fri, 17 Feb 2006 19:21:32 +0100
To: Michael Barton <michael.barton@asu.edu>
Cc: <grass5@grass.itc.it>, <GRASSLIST@baylor.edu>
Subject: Re: [GRASS5] New release candidate 3 of GIS Manager 2

On Wed, 15 Feb 2006 16:59:15 -0700
Michael Barton <michael.barton@asu.edu> wrote:

Michael,

Maciek,

I see what you are talking about. But the GIS Manager is NOT doing
this. The zooming in the new GIS Manager does NOT use d.zoom.

I know. I'm not saying it is. But I'm wondering if gis.m could follow
it, as it is doing the good thing (except
https://intevation.de/rt/webrt?serial_num=3961, but this is another
story).

It simply resets the region extents--extents ONLY--by issuing a
g.region n=y1 s=y2 e=x1 w=x2 (no change to resolution)

I tried adding the -a flag and it makes no difference.

When you need to preserve resolution, but the given extents would not
let you to, you need to specify the input resolution explicitely, which
you want to be preserved after g.region:

### The initial region:

$ g.region -p
projection: 1 (UTM)
zone: 33
datum: wgs84
ellipsoid: wgs84
north: 5679546
south: 5678732
west: 598654
east: 599761
nsres: 1
ewres: 1
rows: 814
cols: 1107

### Let's zoom out - not preserving the res, like gis.m does it (bad):

$ g.region n=5680762.10112026 s=5677880.44652981 w=598415.29951403
e=600978.962345 -p projection: 1 (UTM)
zone: 33
datum: wgs84
ellipsoid: wgs84
north: 5680762.10112026
south: 5677880.44652981
west: 598415.29951403
east: 600978.962345
nsres: 0.99988015
ewres: 0.9998685
rows: 2882
cols: 2564

### And now zoom out preserving the res, like d.zoom does it (good):

$ g.region n=5680762.10112026 s=5677880.44652981 w=598415.29951403
e=600978.962345 res=1 -ap projection: 1 (UTM)
zone: 33
datum: wgs84
ellipsoid: wgs84
north: 5680763
south: 5677880
west: 598415
east: 600979
nsres: 1
ewres: 1
rows: 2883
cols: 2564

It looks like it is some kind of a rounding issue in g.region (or
possibly in the OS).

I guess it's not. Simply g.region does exactly what you are telling it
to do. Maybe telling it to preserve the input res then would be all that
we need.

In a working context the change is a tiny fraction of a mm in
your example below. So it wouldn't make any meaningful difference in
most cases.

It's not about millimeters during display or else. It's about preserving
the current resolution when zooming. This is a must I believe. You can't
let your zooming tool to change the working region resolution. Why
should you?

However, it is odd that it happens. Maybe someone who
understands the g.region code can explain it.

I hope so to. I know what I'm seeing only.

Maciek

--------------------
W polskim Internecie s? setki milion?w stron. My przekazujemy Tobie tylko
najlepsze z nich!
http://katalog.panoramainternetu.pl/