WxPython-based GUI for GRASS: Difference between revisions

From GRASS-Wiki
Jump to navigation Jump to search
Line 90: Line 90:
[[Image:Wxgrass-startup.png|center|400px]]
[[Image:Wxgrass-startup.png|center|400px]]


== New location wizard ==
== Location wizard ==


Wizard for creating new location. Basic prototype is ready.
Wizard for creating new location. Basic prototype is ready.


[[Image:Wxgui-location-wizard.png|center|thumb|Location wizard]]
[[Image:Wxgui-location-wizard.png|center|thumb|600px|Location wizard]]


== Cartography: GUI front end for ps.map ==
== Cartography: GUI front end for ps.map ==

Revision as of 11:11, 19 December 2007

See also GRASS GUI and GRASS and Python.

Overview

Requirements

Screenshots

Development

Do you want to help with the development?

  • basic Python programming ability required
  • GUI programming experience welcomed (especially wxPython)
  • GRASS user (or better developer) experience

Write access to the GRASS-Addons SVN is managed by Markus Neteler.


Components

Layer Manager

The GRASS GIS Layer Manager provides an interactive graphical interface to GRASS commands. The Layer Manager includes a set of pull-down menus for all GRASS GIS functions (analysis, file I/O, GIS configuration and management), toolbar that manage display map layers in map display windows, layer tree in which map layers to display are organized, command output window and integrated command line prompt.

Roadmap

  • Implement fully-featured command prompt (search engine based on keywords, module groups, automated adding for module names, map names, etc.)

Map display window

Each Map display window has a unique set of layers to display and region setting (zoom). The map display window includes main toolbar with basic tools including zooming, panning, data querying, simple analyse functions (measure, profile, histogram, etc.), overlay management, etc. From main toolbar are accessible additional toolbars, currently only Digitization tool is available. Under development is Georectification tool.

Roadmap

  • 3D map display window based on PyOpenGL, integrate NVIZ features to the current map display map windows structure

Module GUIs

Generated from XML using --interface-description.

E.g. for d.rgb

Description:
 Displays three user-specified raster map layers as red, green, and blue overlays in the active graphics frame.

Keywords:
 display

Usage:
 d.rgb [-ox] red=name green=name blue=name [--verbose] [--quiet]

Flags:
  -o   Overlay (non-null values only)
  -x   Don't add to list of commands in monitor
 --v   Verbose module output
 --q   Quiet module output

Parameters:
    red   Name of raster map to be used for <red>
  green   Name of raster map to be used for <green>
   blue   Name of raster map to be used for <blue>

Startup GUI

Location wizard

Wizard for creating new location. Basic prototype is ready.

Location wizard

Cartography: GUI front end for ps.map

Development has not stared yet.

  • This is a cartographic composer, intended to be a stand alone hardcopy plot generator. It is not meant to be a Print button for the maps currently displayed in the GIS manager, that will need it own controls.
  • The GUI will prepare a semi-WYSIWYG + tree menu controls which can write a ps.map control file, and then run ps.map to create PostScript and PDF output directly. Loading a ps.map control file is harder and can happen later.
  • For a start at a Tcl/Tk composer see gui/tcltk/d.m/print.tcl
see also these discussions and pyGTK prototype by Jachym Cepicky
  • Start with most important mapping instructions
    • paper
    • scale
    • maploc
    • rast
    • vects
    • grids
    • scalebar
    • mapinfo
    • text labels

Outputs

  • ps.map instructions file
  • PostScript file [ps.map instructions tmp file]
  • lpr [PostScript tmp file]
  • PDF File (pstopdf? ps2pdf? GNU Ghostscript?) [PostScript tmp file]

Inputs

  • Ability to load in saved ps.map scripts. I consider this to be a low priority, deal with it after map creation is fully functional. Start with scripts saved using the GUI, after that is working expand to load any ps.map instructions file.

Prototype g-ps.map

Georectifier

Currently under developement (Michael Barton)

Digitizer

Vector map layers

Replacement of v.digit module integrated to Map display window (Screenshots).

Roadmap

  • Implement all features available in v.digit
  • Back-end
    • v.edit (slow)
    • digit library
      • under development
  • Implement new requested features
    • display vertices
    • animate moving vector objects by mouse
    • snap to vertex (v.edit tool=add/move/vertexmove snap=vertex)
    • snap to vector objects of background map(s) (v.edit tool=add/move/vertexmove snap=node/vertex bgmap=map)
    • unsplit (remove pseudo nodes, v.build.polylines functionality) (v.edit tool=merge) v.edit tool=merge)
    • copy features from background map (v.edit tool=copy bgmap=map)
    • query tool
      • select lines according their length (v.edit tool=select query=length thresh=value)
      • select dangles (v.edit tool=select query=dangle thresh=value)
    • z bulk-labeling (automated assignment of z coordinate to 3D lines) (v.edit tool=bulk)
    • undo
    • personalized menu
    • exit without save

Raster map layers

  • r.digit (merge with v.digit?)
  • d.rast.edit
Idea: get cell center coords and new values from GUI interaction, then pass those through r.in.xyz, and r.patch the new values over the top of the old map.
  • merge with Georectifier? (i.points, i.vpoints)

Category Labels

  • write with new r.category import tool
  • read with one of r.category, r.describe, r.report, r.stats, ???
    • probably need to add a new flag to one of those to print flat "%d %s", cat, label
    • how to deal with FP maps & cats?

Ortho photos

  • To replace i.ortho.photo and friends

Attribute table manager

Under development ...

General GUI Design

Layout

See also

Useful links

References