GRASS GSoC 2012 WxGUI front end for vector analysis modules

From GRASS-Wiki
Revision as of 10:12, 7 July 2012 by Turek (talk | contribs) (Project plan updated)
Jump to navigation Jump to search

(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
Abstract

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.

Application

Introduction

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.

Background

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 d.path. The modules use Directed Graph Library as engine for network analysis. Currently, module d.path does not work in GRASS 7 because of X monitors dependency which GRASS 7 does not support.

The idea

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, because v.net module 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 of v.db.update module. 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.

Project plan

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

Testing

Code is available from GRASS AddOns SVN repository

svn co http://svn.osgeo.org/grass/grass-addons/grass7/gui/wxpython/wx.vnet
How to install & test

1. Install wx.vnet extension via g.extension

g.extension -s extension=wx.vnet

2. Go to Map Display Window and choose 'Vector network analysis' from 'Analyze' menu

Launch 'Vector network analysis' tool from Map Display Window toolbar

Roadmap

Week 1 (May 21)

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
Dialog - Points list tab (2012-6-08)
Dialog - Settings tab (2012-6-08)

Week 4 (June 11)

  • connected points list with map window
Points from list showed in map window (2012-6-15)

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

Committed changes:

  • Improved event handlers registration API (r52255):
    • 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
Button for interactive inserting of coordinates from map window. (2012-7-01)
  • Implemented API for drawing lines and points in map window (r52256).
  • GCP rewritten to use this registration for drawing ground control points (r52257).

Week 7 (July 2)

Dialog - v.net.path analysis (2012-7-06)

Weekly Reports