[GRASS5] Summary: Proposal for improved GRASS init/import support

Hi all,

although we shall concentrate on GRASS 5 stable, it will
be a good idea to discuss future perspectives (GRASS 5.1dev).

From recent mails and personal discussion with Justin during

my Bangkok visit, I want to summarize a few issues here.

The GRASS init concept needs to be updated, Justin is already
heavily working on that. For those not knowing too much about
the ideas yet, I want to explain them here (and add a few further
ideas):

When (new) users start GRASS, they will be surprised that no
"empty" session will come up. Immediately they either have to define
a location (here the first problems for newbies will arise) or
select an existing session.

I could already peek at the new session manager developed by
Justin (idea from XGRASS) which is looking very promising.
It allows graphical selection of existing sessions. Additionally
a graphical location definition window is on the way.
By introducing the new session manager, locations can be changed
without leaving GRASS.
The "old" script style will be kept, of course.

My proposal is to add a "zero mode" (do you have a better name for
this?) where GRASS starts up with a logo, but without any
session. This is common behaviour of other (commercial) GIS
software and usually expected by users.

Now a menu would appear with following items:

(1) Open existing session (using Justins forthcoming session manager)
(2) Define new location (using Justins forthcoming definition manager)
(3) Import data from file/cdrom... (using Frank Warmerdams GDAL import
       module and others) and define location on-the-fly from data
       settings

As (1) and (2) are generally nothing new (except the new graphical
layout), (3) would be very welcome. Here a general change in GRASS
import modules (raster, vector and sites) would be required. Like
commercial GIS software GRASS should be capable of defining a location
while importing external data *without* additional user input.
Technically it's possible in my opinion. The import module would
read the projection/coordinates parameters from the spatial data file,
generate the DEFAULT_WIND and other files (look into "testgrass.sh" how
this can be done by script), create the location and import the data.
Especially for new users this is much more convenient.

As Justin is writing the new "init" concept in an open way, other
GUIs like "GTK" or whatever can be added lated.

Another related improvement in import modules should be the
automated enlargment of the default location, if data are imported
which don't fit into current settings. Now it's a hassle to
modify the DEFAULT_WIND file manually (why do we use computers?).
As the import modules have to read the coordinates etc., they could
also modify the DEFAULT_WIND if not sufficient.

Hoping for a positive response (as most of it is almost done by Justin)
:slight_smile:

  Markus

--
Dipl.-Geogr. Markus Neteler * University of Hannover
Institute of Physical Geography and Landscape Ecology
Schneiderberg 50 * D-30167 Hannover * Germany
Tel: ++49-(0)511-762-4494 Fax: -3984

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

Markus Neteler wrote:

(1) Open existing session (using Justins forthcoming session manager)
(2) Define new location (using Justins forthcoming definition
     manager)
(3) Import data from file/cdrom... (using Frank Warmerdams GDAL
     import module and others) and define location on-the-fly from
     data settings

Sounds good to me!

--
Sincerely,

Jazzman (a.k.a. Justin Hickey) e-mail: jhickey@hpcc.nectec.or.th
High Performance Computing Center
National Electronics and Computer Technology Center (NECTEC)
Bangkok, Thailand

People who think they know everything are very irritating to those
of us who do. ---Anonymous

Jazz and Trek Rule!!!

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

Markus Neteler a écrit :
[...]

Now a menu would appear with following items:

(1) Open existing session (using Justins forthcoming session manager)
(2) Define new location (using Justins forthcoming definition manager)
(3) Import data from file/cdrom... (using Frank Warmerdams GDAL import
       module and others) and define location on-the-fly from data
       settings

As (1) and (2) are generally nothing new (except the new graphical
layout), (3) would be very welcome. Here a general change in GRASS
import modules (raster, vector and sites) would be required. Like
commercial GIS software GRASS should be capable of defining a location
while importing external data *without* additional user input.
Technically it's possible in my opinion. The import module would
read the projection/coordinates parameters from the spatial data file,
generate the DEFAULT_WIND and other files (look into "testgrass.sh" how
this can be done by script), create the location and import the data.
Especially for new users this is much more convenient.

It's seems a good idea, and I will probably try to extend m.in.e00 to do
that (e00 files contain everything needed for creating a new region), but how
to do this the first time : G_gisinit() is the first call used, and it will
probably not agree with the lack of WIND_DEFAULT file !

--
Michel WURTZ - DIG - Maison de la télédétection
               500, rue J.F. Breton
               34093 MONTPELLIER Cedex 5

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

Markus Neteler wrote:

(3) Import data from file/cdrom... (using Frank Warmerdams GDAL import
       module and others) and define location on-the-fly from data
       settings

As (1) and (2) are generally nothing new (except the new graphical
layout), (3) would be very welcome. Here a general change in GRASS
import modules (raster, vector and sites) would be required. Like
commercial GIS software GRASS should be capable of defining a location
while importing external data *without* additional user input.
Technically it's possible in my opinion. The import module would
read the projection/coordinates parameters from the spatial data file,
generate the DEFAULT_WIND and other files (look into "testgrass.sh" how
this can be done by script), create the location and import the data.
Especially for new users this is much more convenient.

Markus,

I do have a version of r.in.gdal now working that includes an optional
location parameter. If provided it will initialize a new location on
the basis of the extents, projection and units of the dataset being
read. However, this only works with GDAL supported datasets, so it
isn't entirely general.

However, current r.in.gdal uses G_gisinit() like most other commands,
and so it can't be initialized without a valid existing database,
location and mapset. It also current assumes the new location is
being created within an existing database.

Another related improvement in import modules should be the
automated enlargment of the default location, if data are imported
which don't fit into current settings. Now it's a hassle to
modify the DEFAULT_WIND file manually (why do we use computers?).
As the import modules have to read the coordinates etc., they could
also modify the DEFAULT_WIND if not sufficient.

Perhaps g.region could have an additional option to extend the current
region bounds based on a scan of all raster, and vector extents in the
mapset (or location)?

Best regards,

---------------------------------------+--------------------------------------
I set the clouds in motion - turn up | Frank Warmerdam, warmerda@home.com
light and sound - activate the windows | http://members.home.com/warmerda
and watch the world go round - Rush | Geospatial Programmer for Rent

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'