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

Benjamin Ducke benjamin.ducke at oxfordarch.co.uk
Fri Aug 28 06:20:48 EDT 2009


Wow, yes, a lot on your plate there!
I did not realize that vtkGeo was still alive. Good to know.
Good luck with all this!

Ben

Soeren Gebbert wrote:
> Hi Benjamin,
> 
> 2009/8/28 Benjamin Ducke <benjamin.ducke at oxfordarch.co.uk 
> <mailto: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 <mailto: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 <mailto: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.
> 
> 


-- 
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.



More information about the grass-dev mailing list