[GRASS5] Proposal for GRASS UI roadmap

Bob Covill bcovill at tekmap.ns.ca
Sun Nov 6 12:17:43 EST 2005


Michael,

Good timing!

These past couple of weeks I have been digging into the existing display 
driver and now have a working GTK based display interface. I am now 
working on adding internal display options, etc. The UI is still quite 
early in development.

Once I have the basic bones of it working I will make it available for 
testing and improving.

--
Bob

Michael Barton wrote:
> Colleagues
> 
> A couple months back I suggested a discussion on the specifications for 
> the next generation user interface for GRASS. Perhaps because it was 
> summer--or perhaps because everyone is just so happy with what I’ve done 
> so far ;-)--there were few takers. However the comments were useful. 
> I’ve included all of them in the attached text file as I promised to do.
> 
> Now that we are thinking about GRASS 6.2 and 7, we need to actively 
> consider the way in which GRASS presents itself to users. GRASS is a 
> great program and current development is making it an outstanding piece 
> of software for managing, visualizing, analyzing, and modeling very 
> diverse spatial data. But this tremendous capability will go 
> unrecognized if potential users become frustrated in trying to make it 
> work. Because of its power and versatility, and because GIS is a complex 
> subject, it is a challenge to make GRASS accessible to users—even ones 
> with considerable experience with computer graphics, CAD, and other 
> GIS’s. This same challenge is faced by other high-end GIS systems. To 
> some extent, we are still trying to work out appropriate display and 
> control metaphors for GIS, and a large part of the existing UI’s are 
> still a lot like word processors and drawing programs, although GIS is 
> neither. An automobile may have a great engine and suspension system, 
> but if it lacks a steering wheel or comprehensible gauges its 
> performance will be underutilized. So the UI is important.
> 
> In order to make discussion easier, I want to float a proposal for the 
> next generation UI for GRASS. This will give people a concrete target to 
> take shots at, say they like, or offer modifications or additions. This 
> is perhaps a more effective way to do this than simply asking for input, 
> and I think I’ve got a thick enough skin to offer my proposal for 
> critiquing—of course it is pretty close to perfect so I shouldn’t have 
> to worry much ;-) In any case, it is a start on which we can begin to build.
> 
> I’ve tried to build on what works well now, to think out of the box a 
> bit to envision how a GIS can be easier to use, and to be realistic 
> about what can be accomplished in an open source project like this one. 
> GRASS has some excellent features that set it apart from other GIS 
> systems. Ones that always impresses people I show it to are the 
> visualization capabilities. It is extraordinarily flexible and fast at 
> visualizing complex spatial data. I think we should build on that, along 
> with GRASS’s excellent  analytical abilities for raster data as unique 
> and distinguishing features of the GRASS system. (I’d like to suggest 
> that we think of beefing up the already strong modeling capabilities of 
> GRASS by adding predictive and agent modeling, but that’s another issue).
> 
> Some of the items in the proposal could be implemented pretty soon, 
> using the TclTk tools we use now. Other parts will require more 
> sophisticated use of TclTk or a different GUI development system. Yet 
> other parts will require new C-programming. Because a next generation 
> GUI will require skills beyond my own and team effort, your input is 
> essential.
> 
> One thing to note is that I am not recommending a platform for 
> implementing this at this point. I’m pretty sure it could be implemented 
> in TclTk if we get more sophisticated in using that platform. However, 
> it might be better to implement it in another platform like QT or GTK. 
> As I said last summer, however, I think it is better to decide what kind 
> of UI we want and THEN decide which available platform is the best way 
> to implement it.
> 
> I guess that is enough preamble. The proposed roadmap is below. Please 
> let me know what you think over the next few weeks. At some point, it 
> might be good to send it to the larger GRASS user list for input from 
> the people who will have to make it work.
> 
> Thanks to all of you for your support over the past two years.
> 
> 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
> 
> 
> ==================================
> 
> 
> PROPOSAL FOR A USER INTERFACE ROADMAP FOR GRASS 6.X AND 7
> 
> DISPLAYS
> 
> ***Display windows:
> Keep ability to have multiple display windows. Display should have the 
> potential to display both 2D and 3D graphics. Display windows should get 
> focus by clicking with mouse. It should be necessary to run a module 
> like d.mon select simply shift the focus to a different display window.
> 
> ***2D and 3D visualization:
> 2D and nD visualization should be seamlessly integrated. The "normal" 
> view would be 2D like current x displays and standard GIS. Clicking a 3D 
> (nviz) button would open a floating window with 3D controls (like in 
> nviz now) but not a new display window. This would allow user to tilt, 
> rotate, change z, visually separate layers, etc. It would work with the 
> same layers shown in 2D mode, but would simply display them in 2.5D or 
> 3D. Nviz would not be a separate module, opening a separate display 
> window and separate layer control panel; it would simply display any 
> active layers in 3D "mode".
> 
> DISPLAY CONTROL GUI AKA GIS MANAGER
> 
> We should keep single display control (like current GIS Manager). 
> distinct from the  display window(s). This allows for multiple display 
> windows to be controlled from single interface. Display "commands" 
> should be integrated into display control interface; there would be no 
> separate d.* command modules. That is, the display control system should 
> be able to directly draw graphics to a display window, without going 
> through intermediate, stand alone programs. We need to rethink how these 
> would best be implemented (e.g., should we combine thematic vector and 
> chart display functions?) Display functions should still be scriptable 
> as in nviz and d.m, just not independent "commands". It should be 
> possible to run a display script from the command line to automate mapping.
> 
> ***Buttons:
> There should be 1 row of buttons for display controls (zoom, pan, erase, 
> 3D, query, layer management, open display window, save, print, etc). We 
> should change current display in region buttons to simply region setting 
> buttons (default, select saved region). We will no longer need a display 
> button (see layers specs below)
> 
> There should be a 2nd row of buttons for adding layers. This could be 
> space-optimized by making pull-down groups (e.g., vector group would 
> include vector, 3D vector, chart, thematic, etc) with last-used 
> layer-type showing up in the button bar.
> 
> ***Layers:
> Any function than can be thought of as a layer should be implemented as 
> one. It is a nice and pretty intuitive metaphor. It is easy to work with 
> conceptually and comparable to graphic and CAD programs. Layers should 
> include 3D vectors and volumes (see below) along with the kinds of 
> layers now in the GIS manager.
> 
> We should keep layer-tree metaphor. The hierarchical arrangement is 
> intuitive and easy to work with. Nested groups are an especially nice 
> touch. We may want to switch from arranging the layer in the order they 
> will be displayed (first at the top, last at the bottom), to a stacked 
> metaphor (last displayed at the "top" of the stack). This is more in 
> line with other GIS programs and most graphics programs, and would make 
> GRASS less confusing to a new user.
> 
> Adding a layer to the layer tree should automatically display it when 
> the 'active' box is checked. There should be no need for display button. 
> Checking or unchecking the 'active' box should automatically display  or 
> undisplay the layer. Should layers be added in an non-activated state by 
> default so that the user can choose to display the newly added layer 
> when ready?
> 
> There should be an independent layer tree for each display window open. 
> Selecting display window with the mouse displays the associated layer 
> tree. This permits multiple displays of different information controlled 
> from same interface. User should be able to copy existing layer tree to 
> a new or open display window.
> 
> ***Option panes:
> Option panes should open in a separate window when an entry in the layer 
> tree is double clicked. This will optimize space in the display control 
> GUI. There should be "apply" and "save and close" buttons so that an 
> option pane can be kept open if desired.
> 
> We should add a "layer name" field to the option pane rather than adding 
> a layer name by typing it into the layer tree. This makes it more 
> "permanent" so that it is not erased when a new map is chosen to be 
> displayed in that layer. If it is empty, the name of the map will go in 
> by default; if something has been typed in it, it will stay and not be 
> overwritten (make this a question when opening a file?)
> 
> ***Pull-down menus:
> Keep menus as we have now for file, configuration, GIS function (raster, 
> vector, 3D), database, extensions (I'm assuming that the GRASS Extension 
> Manager will be default soon). Do we need a separate menu for help or 
> can it go into configure or something like that? Menus should call 
> independent modules that can also be run from the command line. GRASS 
> needs to remain scriptable for complex tasks and functions should be 
> useable from command line for "power users".
> 
> RELATED UI ISSUES
> 
> ***Attribute data management:
> Now that GRASS has vectors with linked attribute data, there needs to be 
> a reasonably decent UI for attribute data management and queries. 
> Perhaps this could be developed along with the switch to a default 
> attribute dbms based on SQLite.
> 
> ***Printing:
> There should be integrated WYSIWYG printing to multiple devices from the 
> GUI, including PDF files. ps.map functions should be integrated into GUI 
> and be accessible without creating complex text file scripts.
> 
> ***Display output:
> Users should be able to save WYSIWYG display output to multiple graphic 
> formats without scripting through a png driver or using gdal_translate. 
> Formats supported should at least include tif, png, pnm, gif, jpg, svg, 
> and xcf.
> 
> ***Exiting:
> It should be possible to exit GRASS from the GUI rather than having to 
> separately type "exit" on the command line.
> 
> 
> 
> 




More information about the grass-dev mailing list