GRASS GSoC 2012 WxGUI front end for vector analysis modules
(See also other GRASS GSoC 2012 projects)
|Student Name:||Stepan Turek, Czech University in Prague|
|Organization:||OSGeo - Open Source Geospatial Foundation|
|Mentor Name:||Martin Landa Backup mentor: Markus Metz|
|Title:||WxGUI front end for vector network analysis modules|
GRASS GIS provides various modules for vector network analysis. It is difficult to use these powerful modules for beginners in GRASS because these modules can be used only in command line. Main goal of the project is to make user-friendly WxGUi front end for vector network analyses. Additional goal is to improve functionality of Attribute Table Manager.
GRASS GIS provides various modules for vector network analysis. It is difficult to use these powerful modules for beginners in GRASS because these modules can be used only in command line. Main goal of the project is to make user-friendly WxGUI front end for vector network analysis tools. Additional goal is to improve functionality of Attribute Table Manager.
Purpose of network analysis is finding optimal solution of the problem on graph. All GRASS vector network analysis modules have prefix v.net plus interactive module Directed Graph Library as engine for network analysis. Currently, module does not work in GRASS 7 because of X monitors dependency which GRASS 7 does not support.. The modules use
Vector network analysis WxGUI front end will use v.net.* + d.path modules for computations.
The WxGUI front end will work that way: User will just choose type of analysis from menu, set parameters for analysis (vector map, layers, costs...), insert some points into map by mouse or by their coordinates, then will run the analysis and see the result. Then user will be able to easily change configuration of points and run analysis again. Results of analyses will be implicitly saved as temporary maps and user will have option to save it permanently. There will be undo redo features for history browsing therefore maps created few steps in history will be temporary saved. Before running of analysis points will be inserted as nodes into vector layer, becausemodule will be automatically called.
Second part of the project will deal with improving of Attribute Table Manager, because important part of vector network analysis includes work with the attribute table. Important feature related to vector network analysis, which Attribute Table Manager misses, is a field calculator. The field calculator would be very useful for calculating cost values for network segments. It will be front end ofmodule. During development I will make effort to re-use already written code in GRASS or modify the code in order to make it re-usable. Interactive input of points is already implemented in WxGUI, it will be used for vector analysis front end.
|Period||Task||Status / Notes|
|April 23 - May 20||Bonding period||√|
|May 21||design of front end, studying code||√|
|May 28||design of front end, studying code||√|
|June 4||dialog for front end||√|
|June 11||v.net.path implementation to front end, dialog||points list - map win connection, ( √ in July 2 - 9 week)|
|June 18||v.net.path + other v.net* modules implementation to front end||improved map win API for mouse event handlers and for drawing|
|June 25||other v.net* modules implementation to front end||the map win API - testing, commit|
|July 2||adaptation of front end behavior for different v.net modules||v.net.path implemented into front end|
|July 9||continue with adaptation, bug fixing|
|July 13||Mid-term evaluations deadline|
|July 16||undo/redo functionality|
|July 23||undo/redo functionality|
|July 30||Attribute Table Manager|
|August 6||Attribute Table Manager|
|August 13||Attribute Table Manager|
|August 20||testing, documentation|
|August 24||Final evaluation|
Code is available from GRASS AddOns SVN repository
- How to install & test
1. Install wx.vnet extension via
g.extension -s extension=wx.vnet
2. Go to Map Display Window and choose 'Vector network analysis' from 'Analyze' menu
Week 1 (May 21)
- took part in GRASS Community Sprint Prague 2012. I did most of work for GSoC at this event, see the report.
Week 2 (May 28)
- implemented interactive inserting of coordinates from map window to module parameter field
Week 3 (June 4)
- created first version of dialog for vector network analysis
- separation of points list code from GCP Manager to new class which is shared with the dialog and the manager
Week 4 (June 11)
- connected points list with map window
Week 5 (June 18)
- worked on improving registration of event handlers to MapWindow (connection with toolbars)
- worked on registration and drawing of graphics in MapWindow
- GCP rewritten to use the registration of graphics
Week 6 (June 25)
- most of time I tested and tuned the changes in trunk
- Improved event handlers registration API (
- possible to unregister concrete handler from event (with help of Vaclav Petras and Anna Kratochvilova)
- imroved toggling and untoggling buttons in map window toolbars
- the toolbars reacts on registration and unregistration
- implemented button for interactive inserting of coordinates
- Implemented API for drawing lines and points in map window ( ).
- GCP rewritten to use this registration for drawing ground control points ( ).
Week 7 (July 2)
- Integrated module into dialog ( ):