[GRASS5] The status of 5.0

Glynn Clements glynn.clements at virgin.net
Mon Mar 25 06:24:09 EST 2002


rgrmill at rt66.com wrote:

> 2)  As I wrote a couple months ago, I have a "resource manager" that 
> associates each monitor with a different geographic window and different 
> gis environment, including mapset and location.  There is associated 
> with that capability a module that allows the user to change the current 
> mapset and location without leaving grass and (hopefully) without 
> bothering anyone else working at the same time.  This allows one user to 
> work in multiple locations/mapsets at the same time.  The manager also 
> specifies certain types of system behavior; monitors are automatically 
> erased when their region is changed and removed when the user exits 
> grass.  The manager offers the kind of persistence and event-driven 
> behavior that we sometimes talk about needing for future development.  
> The manager, in one form or another, provides a lot of opportunities for 
> future development.
> 
> I still have one bug left to work out.  When it's done I'll submit a 
> description of the program and the working source code as a proposal.
> 
> It requires changes to put_window.c, get_window.c, env.c and d.mon.  

One of the main obstacles to switching location/mapset on the fly is
the number of scripts[1] which reference $GISDBASE, $LOCATION_NAME,
$MAPSET and/or $LOCATION directly.

Currently, these are set in Init.sh using "eval `g.gisenv`". There
isn't any way to subsequently change them using an external command;
using "eval" is inconvenient, and shell aliases/functions are messy
(non-portable, aren't inherited by scripts).

Shell scripts ought to be calling e.g. "eval `g.gisenv`" themselves to
obtain the current settings from $GISRC.

[1] AFAICT, I've fixed all of the C programs which accessed these
variables via getenv().

-- 
Glynn Clements <glynn.clements at virgin.net>



More information about the grass-dev mailing list