GRASS and VTK
Export for VTK
- - export raster data for VTK
- - export 3D raster (voxel) data for VTK
- - export vector maps for VTK
- addon script - export GRASS color rules for use with VTK
- Load 3D model data into GRASS with Help with 3D) . (see
- Split 3D raster map into individual layers, and stack them all into one map. (see the addon module)
- Run with the -e equalize histogram flag to balance the colors nicely over the entire 3D dataset.
- Export the new color rules with .
- Load in Paraview or similar, create a movie. (animated screenshot)
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: