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

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@oxfordarch.co.uk
<mailto:benjamin.ducke@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. :slight_smile:

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/~soeren/grass/files/vtkGRASSBridge/doc/html/index.html&gt;
     >
     > 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/~soeren/grass/files/vtkGRASSBridge/vtkGRASSBridge_0.1.tar.gz&gt;
     >
     > 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@lists.osgeo.org <mailto:grass-dev@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@oxfordarch.co.uk <mailto:benjamin.ducke@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@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.