[GRASS5] Initial window state

Roger Miller rgrmill at rt66.com
Thu Jul 18 19:02:26 EDT 2002


Thanks for responding, Glynn.

Glynn Clements wrote:

> Why only d.* commands? Many commands use the region settings.

This is a start-up problem that has (to my knowledge) only been reported 
for the display.

> If some kind of automatic region setting is necessary, it might be
> better to do it from within e.g. G_open_cell_old(). But then, what if
> a program queries the region before opening any maps? At least one
> program (I forget which) queries the region before even calling
> G_parser(), in order to initialise some defaults.

With the changes I described the region is still initialized as it is now 
based on the contents of the WIND file, but the initialization flag is unset. 
Any module that accesses the region setting (which I think covers most user 
modules) will set the initialization flag.  Once the flag is set GRASS will 
work exactly as it does now.

The region is set from the file header data only if the region data have 
not been accessed before a file is displayed.  In most cases that means 
that the region is set from the file data only if the map display is the 
first operation performed in a session.

> Also, the "region ... read by the user" test would have to be
> implemented in g.region etc. Many programs call G_get_region() before
> opening maps, so having the test in G_get_region() would nullify the
> behaviour.

The behavior *should* be nullified in that case.  If any analysis is 
performed using the initial region then the display modules should not 
automatically reset the region from the file header.  If the region were 
reset it could produce misleading results.  The analysis would have been 
performed for a region different from the region that is displayed.

> Personally, I think that this "solution" is going in the wrong
> direction. I feel that GRASS needs less "magic" behaviour rather than
> more. For interactive use, GRASS *needs* a UI, not lots of "useful for
> interactive use" behaviour wedged into various places.

This helps solve a widespread complaint.  I don't think that fixing 
complaints is the wrong way to go.  

GRASS has a UI and that UI that requires frequent, repetitive execution of 
several user commands.  I would hope to reduce the amount of annoying and 
cumbersome repetition.  None of this is "magic".  It's an attempt to 
create a more evolved system behavior.

I agree that this isn't the best way to do things.  Unless GRASS has a 
persistent central manager then the system behavior has to be built up 
bit by bit in a fairly disorganized fashion.  I don't think that's a good 
way to do it, and that's why I use a manager program.  The manager 
centralizes the system and makes a lot of further developments look 
relatively easy.

> AFAICT, the main situation where users are tripped up by the region
> mechanism is in importing rasters which lack georeferencing
> information.

I get blank screen behavior in a number of different ways, but that 
behavior is a fairly minor problem to an experienced user.  I think the 
main case where the blank screen result is a problem is when a new user is 
forced to set the map region when they first start GRASS.  Most people 
probably don't know the area they need to cover and they don't have any basis 
for understanding the significance of the initial region settings.  Often the 
user's initial window settings are incorrect or just useless and the first 
map they try to display produces a blank screen.  When that happens 
GRASS looks broken; in fact one could say that GRASS *is* broken because 
it lets that happen.

If the region can be set from a map, then the startup procedure can be 
rewritten so that a new user doesn't have to provide useful settings.  
Reasonable defaults can be used instead.


Roger Miller



More information about the grass-dev mailing list