Wx.stream GSoC 2011

From GRASS-Wiki
Jump to navigation Jump to search


Author: Madi

Aim of the project

In GRASS GIS new modules suitable for hydrological analysis have been developed, r.stream*. My idea is to develop a wxpython GUI for r.stream* that allows to see the preview of the hydrological analysis over a part of a map and then decide if apply the analysis or not. It will include "multiple previews". Every result can be saved as an image and set of parameters for future use in additional "preview windows", next choose from group of possible parameters that which is most suitable.


r.stream.* modules

Bulletin Board

  • Draft of main r.stream GUI

I thought to add in Map display a button that allows to select a point on the DEM that will be the center of the preview. So the region is determined by the script and not by the user. This can avoid the warning message for the user if the region selected is too big.

Selecting the point on DEM raises a window with different tabs. Each tab corresponds to a r.stream command. In each tab there are text boxes in which user inserts parameters required to run the command. Below them, there are the following buttons:

  • "Preview" Button : it generates the preview. The previews are visible on the right side of the panel. Passing the mouse over the previews shows the command line and so the parameters' values, just like menu items in main GUI.
  • "Change Point" Button : it switches on the map display and allows the user to change the center of the preview window.
  • "Apply" Button : it applies the analysis over the map on basis of the selected preview. If no preview is selected it applies the last generated. If no preview has been generated it simply applies the command as it is.
  • "Close" Button : it closes the window.

Please feel free to discuss and comment my idea.

Draft of r.stream wxGUI

  • Ideas to discuss

I thought hydrological analysis by GUI has to be organized in two steps:

  • In the first step, a simple GUI pops up, asking for the main maps that user should provide. First of all, DEM on which analysis should be carried out. Also, it asks for flow direction and flow accumulation, that are the basis of further hydrological analysis. In fact user can either provide them already done by for instance another software, or create them using GRASS. In the latter case, user should indicate the name of new maps to be created and also he can choose the flow routing algorithm (default is MFD i.e. multiple flow direction). It is also possible to add Mask map (optional). This latter is useful to weight accumulation map in order to improve stream extraction.

IMHO this previous step is necessary in order to generate the preview fastly and also because stream extraction preview needs the accumulation map generated on the whole area and not only on the small region selected (stream network may vary). The "hello world" of this first step GUI is available on my brand new github repository [0]

First step GUI (preliminary to main GUI)
  • Once the user has provided these information, the elaboration starts if user asked to calculate flow direction and flow accumulation and the main GUI pops up, asking for further detailed analysis, for which the preview tool should be available. (see above "Draft of main r.stream GUI")

[0] https://github.com/madi/wxpython-GUI-for-r.stream-modules-in-GRASS-GIS--GSoC-2011-/blob/master/hello_world_1.py


Planned Timeline

  • 23 May - 5 Jun : design interface based on other similar software
  • 6 Jun - 15 Jul : midterm goal: get a preview widget working in grass7
  • 16 Jul - 31 Jul: add functionality and documentation
  • 1 Aug - 15 Aug : testing
  • final goal: working GUI for grass7

Weekly Reports, from SoC mailing list