[GRASS-user] Grass70 wxgui vs. command line d.*

Michael Barton michael.barton at asu.edu
Wed Dec 9 11:32:19 EST 2009


Hopefully the following will clarify this issue further.

************** GRASS 7 ************************

GRASS commands work in GRASS 7 including all display commands that  
actually display something.

Scripting works in GRASS 7. It works considerably better than it did  
in prior versions.

Remote access works in GRASS 7.

Command line changes to GRASS 7 are the following:

1) Commands that optionally used or **required** textual prompt and  
response are replaced by commands where you type the argument and  
value when entering the command. This is a considerable improvement  
for scripts, which can hang while waiting for user input that can  
never happen.

2) Display commands that **required** user interaction via mouse and  
prompt/response and **required** the existence of old display/GUI  
technology emulated in XWindows environments no longer are supported.  
These GUI environments (these are primitive GUI's, not command line  
interfaces) relied on very old (pre XWindows) display and interface  
technology, and in some cases badly hacked code. These only worked on  
a subset of the platforms that GRASS runs on.

3) Display commands are no longer supported that **assume** or  
**require** when rendering the **guaranteed** existence of a specific,  
very old display technology that is currently emulated under XWindows  
and not available on some of the platforms that GRASS runs on. Display  
commands can render to a variety of widely used, current formats that  
anyone who so chooses can make use of.

In other words, the main change has been to make the command line  
interface a purely **command line interface** instead of a mixed CLI  
and primitive GUI. That is, you type a command and something happens-- 
a file is modified, a map is rendered, etc. Commands no longer start  
persistent processes. You no longer type a command to start an  
interactive, command-specific, GUI session that varies in the kind of  
interface and kind of underlying code from command to command. An  
important benefit of this is that it makes scripting much easier and  
allows scripts to access a wider variety of GRASS functions more  
easily than was possible in GRASS 5.

Integrated display services, including user interaction with the  
display using a mouse, are provided in GRASS 7 using the wxPython  
interface development platform. This uses current technology that is  
available on ALL platforms on which GRASS is run. wxPython is  
powerful, versatile, and comparatively easy to work with as GUI  
platforms go. It also strengthen ties between GRASS code and the  
Python language for scripting and custom development.

GRASS display services can also be provided with QGIS, which uses the  
QT interface development platform.

The emulated display technology that was used by GRASS 4-6 still  
exists in XWindows AFAIK. Since all GRASS display commands now render  
cleanly to common graphic formats, there is no reason that someone  
could not use this retro code to display what GRASS display commands  
render. This approach is different than requiring the existence of  
this technology to even run the GRASS command.

****************** opinion *************************

Anyone who so desires can write and maintain another set of display  
services, and even interactive mouse display, using another interface  
development platform if they so desire. If this takes significant  
coding and maintenance effort (and IMHO, this does when it involves  
GUI development), I personally think it is a waste of scarce developer  
resources. But this is a volunteer project and relies on people  
working on what inspires them. YAG (yet another GUI) that is different  
from the one that two of us code and maintain (a third person  
maintains the TclTk GUI for GRASS 6) might be appreciated by a subset  
of the GRASS community. But if it is developed with modern GUI tools,  
it will look like a modern GUI, not an old GRASS 4/5 GUI. I'm not sure  
if that is or is not a problem.

Michael

On Dec 9, 2009, at 8:02 AM, grass-user-request at lists.osgeo.org wrote:

> Date: Wed, 09 Dec 2009 07:01:47 -0500
> From: Doc Robinson <doc.robinson at utoronto.ca>
> Subject: [GRASS-user] Grass70 wxgui vs. command line d.*
> To: grass-user at lists.osgeo.org
> Message-ID: <4B1F91AB.6030505 at utoronto.ca>
> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>
> I agree with most all of what John Stevenson says..especially
>
> Advantages of command line:
> - it is VERY quick once learned
> - easy to write scripts
> - can work remotely from slow computer over ssh -X connection
> - interaction with operating system commands and other software e.g.
> imagemagick, GMT
> - full history of what has been done
> - easy to repeat previous commands
>
> It is distressing to think that I might have to stick with GRASS 6.x  
> if
> they dont take into consideration all of us using ssh  
> connections...this
> is really a huge advantage GRASS has over other packages
>
>
> --
> Regards,
>          Doc
>



More information about the grass-user mailing list