WxNviz GSoC 2010
See wxNviz page.
Accepted Google Summer of Code 2010 project, see also related GSoC 2008 page.
Student Name: | Martin Landa, Czech University in Prague, PhD. |
Organization: | OSGeo - Open Source Geospatial Foundation |
Mentor Name: | Helena Mitasova |
Title: | wxNviz development for enhanced 3/4D visualization and analysis |
- Abstract
-
- The aim of this project is to design fully-featured 3D/4D visualization tool for GRASS GIS and to replace current old-fashioned TCL/TK Nviz. This project continues in Google Summer Of Code project from 2008 ("2.5/3D visualization tool for wxPython GRASS GUI"). The main goal of the project is implement (1) all missing features from wxNviz's predecessor TCL/TK-based Nviz; (2) new functionality including e.g. fog visualization; and finally (3) text displaying and styling in OGSF library.
Application
Introduction
The aim of this project is to continue in wxNviz development and as a result to develop fully-featured 3D/4D vizualization tool for GRASS GIS. In detail, it meas to implement all missing features from wxNviz's predecessor TCL/TK-based nviz and moreover to implement new functionality including e.g. fog vizualization in underlying GRASS OGSF library and it's wxPython front-end wxNviz and command-line tool nviz_cmd.
Background
Geographic Resources Analysis Support System, commonly referred to as GRASS GIS, is a Geographic Information System (GIS) used for data management, image processing, graphics production, spatial modeling, and visualization of many types of data. It is Free Software/Open Source released under GNU General Public License (GPL). GRASS is one the projects under OSGeo umbrella.
wxGUI is a new generation of graphical user interface for GRASS GIS.
wxNviz is a wxGUI extension which allows users to visualize surfaces (raster data) in a 3D space, optionally using thematic coloring, draping 2D vector data over the surfaces, displaying 3D vector data in the space, and visualization of volume data (3D raster data). wxNviz is a wxPython front-end to the underlying OGSF library which reads GRASS datasets and interfaces with OpenGL at a C API level. Initial version of wxNviz has been developed within Google Summer of Code 2008 project. The idea came from the effort to develop fully-featured 3D/4D vizualization tool for GRASS which would be integral part of wxGUI environment. It makes wxGUI to be complete UI which will be shipped as default GUI in GRASS 7.
The idea
The main goal of this project is to implement all missing features from wxNviz's predecessor - TCL/TK-based nviz and to replace Nviz by wxNviz in GRASS 7. The features which are going to be implemented are e.g. lighting, decoration (labels, north arrow, scale bar, legend, fringe), data querying (rasters, vectors, volumes), cutting planes, scaled difference, animations, scripting, including replacement for tool to generate images for dynamic surfaces, and point symbols sized and colored based on attributes. Also some new features including fog support or vertical labels are planned be implemented. Another issue is to update and improve command-line tool nviz_cmd to support all wxNviz functionality.
Additionally design and implementation of text displaying and styling in OGSF library (and it's front-end wxNVIZ) is planned.
Project plan
April 26 - May 23 | Bonding period |
May 24 | Start to code, wxNviz & nviz_cmd bug-fixing period, save display to a graphic file |
May 31 | Implement lighting |
June 7 | Lighting continued |
June 14 | Implement fringe |
June 21 | Implement data querying (rasters, vectors, volumes) |
June 28 | Implement cutting planes, scaled difference |
July 5 | Implement animations |
July 12 | Implement scripting, including replacement for tool to generate images for dynamic surfaces |
July 16 | Mid-term evaluations deadline |
July 19 | Better view settings controlling |
July 26 | Fog support & vertical labels |
August 2 | Final code & functionality review |
August 9 | Write documentation, tutorials, etc. |
August 16 | Final evaluation |
Roadmap
Week 0 (May 24)
- initial code clean up, bug-fixing
- recover settings notebook page
- save display to a graphic file - r42359
Week 1 (May 31)
- 3D view tools window integrated into Layer Manager (see screenshots bellow) - r42403
![]() |
![]() |
Week 2 (June 7)
- wxNviz GUI maintainance, bug-fixing period
Week 3 (June 14)
- Simple lighting control panel implemented
![](/w/images/Wxnviz-light.png)
Week 4 (June 21)
- Fringe implemented in wxNviz and nviz_cmd
![](/w/images/Wxnviz-fringe.png)
Week 5 (June 28)
- Basic raster (surface) querying implemented
Weekly Reports
Source code
Note: Development of wxNviz is done in trunk (GRASS 7.0) and devbr6 (GRASS 6.5). wxNviz in GRASS 6.4 is frozen due to RC stage.
GRASS 7.0
- gui/wxpython/gui_modules/wxnviz.py
- gui/wxpython/gui_modules/nviz_tools.py
- gui/wxpython/gui_modules/nviz_mapdisp.py
- visualization/nviz2/cmd
- lib/nviz