[GRASS-dev] Native GRASS support in VTK + Python and Java

Soeren Gebbert soerengebbert at googlemail.com
Fri Aug 28 06:17:36 EDT 2009


Hi Benjamin,

2009/8/28 Benjamin Ducke <benjamin.ducke at oxfordarch.co.uk>

> This is great! Did you consider writing a little plug-on for one
> of the VTK viewers, like ParaView or VisIt, to allow direct access
> to GRASS data from there?


No.I do not consider to implement plug-ins for ParaView or Visit for now.
This may change in the far future.
First i need to validate the library concept and then i will implement full
raster,
vector, volume and grass sql database support ..  and this will take a
while.

Then i need to understand the vtkGeo and projection concept in VTK 5.4+ .

So the plugin development does not have a high priority on my todo list. :)

Cheers
Soeren


>
> Cheers,
>
> Ben
>
> Soeren Gebbert wrote:
> > Hi,
> > JFYI i have implemented a small demo library which connects parts of the
> > grass gis library
> > with the Visual-Tool-Kit VTK.
> > It is called vtkGRASSBridge.
> >
> > Additionally the VTK Python and Java wrapping mechanism have been
> > enabled. So the user can use the
> > library from C++, Python and Java.
> >
> > Features:
> > * The library can read and write raster maps row by row, as well as
> > regions and the raster history.
> > * It can list files of the grass database.
> > * It can convert grass raster maps into the vtkImageData format and the
> > other way round.
> > Missing Features:
> > * Full raster support (categories, colors, ..)
> > * Imagery support (groups, ...)
> > * Full vector support ....
> > * ....
> >
> > You can use every vtkDataSet processing algorithm available in VTK (more
> > than 50 i think)
> > to process the converted raster map and write it back to the grass
> > raster database.
> >
> > You can use the VTK render functionality to display the raster map.
> >
> > There are examples and tests in the library showing this functionality
> > in Python.
> >
> > The documentation of the library can be found here:
> >
> http://www-pool.math.tu-berlin.de/~soeren/grass/files/vtkGRASSBridge/doc/html/index.html<http://www-pool.math.tu-berlin.de/%7Esoeren/grass/files/vtkGRASSBridge/doc/html/index.html>
> >
> > The GPL source code is located here:
> >
> http://www-pool.math.tu-berlin.de/~soeren/grass/files/vtkGRASSBridge/vtkGRASSBridge_0.1.tar.gz<http://www-pool.math.tu-berlin.de/%7Esoeren/grass/files/vtkGRASSBridge/vtkGRASSBridge_0.1.tar.gz>
> >
> > Here is a small Python code example to read and write grass raster maps
> > in Python (within a grass session):
> >
> > ##############################################
> > #include the VTK and vtkGRASSBridge Python libraries
> > from libvtkCommonPython import *
> > from libvtkFilteringPython import *
> > from libvtkGraphicsPython import *
> > from libvtkRenderingPython import *
> > from libvtkIOPython import *
> > from libvtkImagingPython import *
> > from libvtkGRASSBridgeIOPython import *
> > from libvtkGRASSBridgeCommonPython import *
> >
> > #Initiate grass
> > init = vtkGRASSInit()
> >
> > #The region settings
> > region = vtkGRASSRegion()
> > region.ReadCurrentRegion()
> > region.SetCols(10)
> > region.SetRows(10)
> > region.AdjustRegion()
> >
> > #Create a new map and write some data into it
> > writer = vtkGRASSRasterMapWriter()
> > writer.SetMapTypeToCELL()
> > writer.SetRegion(region)
> > writer.UseUserDefinedRegion()
> > writer.OpenMap("test_cell")
> >
> > #this is the row buffer
> > data = vtkIntArray()
> > data.SetNumberOfTuples(writer.GetNumberOfCols())
> >
> > #iterate over each raster cell
> > for i in range(writer.GetNumberOfRows()):
> >     for j in range(writer.GetNumberOfCols()):
> >         data.SetTuple1(j, i + j + 100)
> >     writer.PutNextRow(data)
> >
> > #close the map
> > writer.CloseMap()
> >
> > #now reopen the map for reading
> > reader = vtkGRASSRasterMapReader()
> > reader.OpenMap("test_cell")
> >
> > #print the cells to stdout
> > print " "
> > for i in range(reader.GetNumberOfRows()):
> >     data = reader.GetRow(i)
> >     for j in range(reader.GetNumberOfCols()):
> >         print data.GetTuple1(j),
> >     print " "
> >
> > #print the range of the raster map
> > val = [0,0]
> > reader.GetRange(val);
> > print "Range ", val
> >
> > #print the history
> > print reader.GetHistory()
> > reader.CloseMap()
> >
> > #############################################
> >
> >
> > Have fun
> > Soeren
> >
> >
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > grass-dev mailing list
> > grass-dev at lists.osgeo.org
> > http://lists.osgeo.org/mailman/listinfo/grass-dev
>
>
> --
> Benjamin Ducke
> Senior Applications Support and Development Officer
>
> Oxford Archaeological Unit Limited
> Janus House
> Osney Mead
> OX2 0ES
> Oxford, U.K.
>
> Tel: +44 (0)1865 263 800 (switchboard)
> Tel: +44 (0)1865 980 758 (direct)
> Fax :+44 (0)1865 793 496
> benjamin.ducke at oxfordarch.co.uk
>
>
>
>
> ------
> Files attached to this email may be in ISO 26300 format (OASIS Open
> Document Format). If you have difficulty opening them, please visit
> http://iso26300.info for more information.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/grass-dev/attachments/20090828/c70c7083/attachment-0001.html


More information about the grass-dev mailing list