Completion of wxGUI Nviz extension for 3D data visualization in GRASS GIS
Abstract
This project continues in the development of GRASS GIS 3D visualizaton tool wxNviz based on wxPython and underlying OGSF library. The goal is to add missing functionality so that wxNviz's predecessor written in Tcl/Tk could be replaced by completed wxNviz in GRASS 7. The plan is to add missing features like animations or cutting planes and additionally implement better view control.
This project continues in the development of wxNviz as 3D
visualization tool for native GRASS GUI (wxGUI). Nviz graphical user
interface is originally written in Tcl/Tk. Tcl/Tk-based nviz is planed
to be removed in GRASS 7 and still waits for its completed successor.
Currently wxNviz lacks many features of original Nviz application. The
goal of this project is to add the missing functionality and in the
result to replace Tcl/Tk-based nviz in GRASS 7 by modern 3D
visualization tool integrated in wxGUI.
Background
GRASS GIS (Geographic Resources Analysis Support System) is one of the
largest open source Geographic Information Systems. GRASS GIS is a
Free Software project released under the GNU General Public License
and it is the part of Open Source Geospatial Foundation. GRASS GIS
consists of more than 400 modules for spatial analysis, image
processing, manipulation and visualization of many types of data. It
is widely used in academic and commercial settings thanks to its
powerful tools providing functionality missing in other geographic
information systems. GRASS works on multiple platforms, including
Linux, Mac OS X and Microsoft Windows.
GRASS was originally controlled via its command line. The first
graphical user interface was written in Tcl/Tk, which later appeared
to be insufficient. Since 2006 new wxGUI is being developed using
wxPython as a GUI toolkit for the Python programming language.
wxNviz is a one of the wxGUI extensions. It enables visualization of
multiple surfaces (raster data) in 3D space, volume data (3D raster
data), overlaying 2D vector data over surfaces and displaying 3D
vector data. wxNviz uses OGSF and Nviz library as an interface for
OpenGL. Completion of wxNviz is essential for GRASS 7 which can be
released only without dependency on Tcl/Tk. This project picks up on
wxNviz development within Google Summer of Code 2008
and 2010 and it
should make wxNviz fully functional.
The idea
At present wxNviz provides only partial functionality of Tcl/Tk-based
nviz so this project focuses on completion of this wxGUI
extension. The plan is to add following missing features: cutting
planes, scaled difference, animations, vector data querying,
decorations (north arrow, legend, labels, scale bar). Implementation
of missing functionality would remove the major obstacle of GRASS 7
release which is the dependency on Tcl/Tk-based Nviz. Additional plan
is to improve view controlling which is not very intuitive
presently. Petr Voldan,
a PhD student of our faculty (FCE CTU in
Prague), was dealing with this issue so new view control could follow
his results.