GRASS and VTK: Difference between revisions
(→Links) |
mNo edit summary |
||
(2 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
* See also the [[GRASS and Paraview]] wiki page | |||
== Export for VTK == | |||
; Modules: | |||
* {{Cmd|r.out.vtk}} - export raster data for VTK | |||
* {{Cmd|r3.out.vtk}} - export 3D raster (voxel) data for VTK | |||
* {{Cmd|v.out.vtk}} - export vector maps for VTK | |||
* {{AddonCmd|r.colors.out_vtk}} addon script - export GRASS color rules for use with VTK | |||
== Workflows == | |||
# Load 3D model data into GRASS with {{Cmd|r3.in.ascii}}. (see [[Help with 3D]]) | |||
# Split 3D raster map into individual layers, and stack them all into one map. (see the {{AddonCmd|r.stack}} addon module) | |||
# Run {{Cmd|r.colors}} with the '''-e''' equalize histogram flag to balance the colors nicely over the entire 3D dataset. | |||
# Export the new color rules with {{AddonCmd|r.colors.out_vtk}}. | |||
# Load in [[GRASS_and_Paraview|Paraview]] or similar, create a movie. ([http://stormy.msrc.sunysb.edu/diecast/DieCAST_GoM_yr43_July16-30.gif animated screenshot]) | |||
== vtkGRASSBridge == | |||
vtkGRASSBrige provides a VTK/C++ interface to most of the GRASS GIS raster and vector C library functions. Its using an intuitive class structure to hide the complexity of the GRASS libraries. | vtkGRASSBrige provides a VTK/C++ interface to most of the GRASS GIS raster and vector C library functions. Its using an intuitive class structure to hide the complexity of the GRASS libraries. | ||
Line 51: | Line 75: | ||
[[Category:Development]] | [[Category:Development]] | ||
[[Category:Linking to other languages]] | [[Category:Linking to other languages]] | ||
[[Category:VTK]] | [[Category:VTK]] | ||
[[Category:3D]] | [[Category:3D]] | ||
[[Category:Python]] |
Latest revision as of 00:37, 19 June 2013
- See also the GRASS and Paraview wiki page
Export for VTK
- Modules
- r.out.vtk - export raster data for VTK
- r3.out.vtk - export 3D raster (voxel) data for VTK
- v.out.vtk - export vector maps for VTK
- r.colors.out_vtk addon script - export GRASS color rules for use with VTK
Workflows
- Load 3D model data into GRASS with r3.in.ascii. (see Help with 3D)
- Split 3D raster map into individual layers, and stack them all into one map. (see the r.stack addon module)
- Run r.colors with the -e equalize histogram flag to balance the colors nicely over the entire 3D dataset.
- Export the new color rules with r.colors.out_vtk.
- Load in Paraview or similar, create a movie. (animated screenshot)
vtkGRASSBridge
vtkGRASSBrige provides a VTK/C++ interface to most of the GRASS GIS raster and vector C library functions. Its using an intuitive class structure to hide the complexity of the GRASS libraries.
Additionally, the vtkGRASSBridge provides access to GRASS C library functions for Python and Java, using the VTK wrapper.
Reader to convert GRASS datasets (raster, vector) into VTK datasets are provided for raster and vector data. All vtkImage- and vtkPolyDataAlgorithms can be used to process GRASS raster and vector data. vtkImages can be directly written as GRASS raster maps into a GRASS location.
This library can be used to build comprehensive 3D visualisation of GRASS GIS data with Java, Python and C++, as well as base for complex multithreaded image and vector filter to process GRASS GIS datasets i.e: as backend for WPS server.
Using vtkGRASSBridge in Python
Here a small Python example to triangulate vector points from the North Carolina demo data set with the VTK delaunay filter class:
# The purpose of this example is
# to read a grass vector map without topology information
# into the VTK poly data format and processing that map with vtkDelaunay2D.
# The processed data is written as VTK XML file to the file system
# Init grass variables
init = vtkGRASSInit()
# Now build the pipeline
# read the vector map without creating topology
reader = vtkGRASSVectorPolyDataReader() # The reader does not need topology information
reader.SetVectorName("elev_lid792_randpts")
# Setup the delaunay triangulation
delaunay = vtkDelaunay2D()
delaunay.SetInputConnection(reader.GetOutputPort())
# write the data as XML with base64 encoding
writer = vtkXMLPolyDataWriter()
writer.SetFileName("/tmp/test.vtk")
writer.SetInputConnection(delaunay.GetOutputPort())
writer.Write()
Import of VTK data into GRASS
Implemented in the VTK-GRASS-Bridge:
- http://code.google.com/p/vtk-grass-bridge/source/browse/trunk/IO/vtkGRASSRasterImageWriter.h
- http://code.google.com/p/vtk-grass-bridge/source/browse/trunk/IO/vtkGRASSVectorPolyDataWriter.h
- http://code.google.com/p/vtk-grass-bridge/source/browse/trunk/IO/vtkGRASSRaster3dImageWriter.h