3D Raster maps (voxels) in general

GRASS GIS is one of the few GIS software packages with volume data support. Here data are stored as a 3D raster with a unit volume called a voxel (volume pixel). Voxels are designed to support representations of trivariate continuous fields. The vertical dimension supports spatial and temporal units. Hence space time voxel cubes with different temporal resolutions can be created and processed.

GRASS GIS 3D raster maps use the same coordinate system as 2D raster maps (row count from north to south) with an additional z dimension (depth) counting from bottom to top. The upper left corner (NW) is the origin of the voxel. Volumes are stored using a tile cache based approach. This allows abritrary read and write operations in the created volume. The size of the tiles can be specified at import time with r3.in.ascii or the data can be retiled using r3.retile after import or creation.


The volume coordinate system and tile layout of the RASTER3D library

3D Raster (voxel) import

The modules r3.in.ascii and r3.in.bin supports generic x,y,z ASCII and binary array import. Alternatively, volumes can be generated from 3D point vector data (v.to.rast3). Always the full map is imported. Volumes can also be created based on 2D elevation map(s) and value raster map(s) (r.to.rast3elev). Alternatively, a volume can be composed of several 2D raster map slices which are merged into one 3D raster (voxel) map (r.to.rast3).

3D region settings and 3D MASK

GRASS 3D raster map processing is always performed in the current 3D region settings (see g.region, -p3 flags), i.e. the current region extent, vertical extent and current 3D resolution are used. If the 3D resolution differs from that of the input raster map(s), on-the-fly resampling is performed (nearest neighbor resampling). If this is not desired, the input map(s) has/have to be reinterpolated beforehand with one of the dedicated modules. Masks can be set (r3.mask).

Volume operations

Powerful 3D map algebra is implemented in r3.mapcalc. A 3D groundwater flow model is implemented in r3.gwflow.

3D raster conversion to vector or 2D raster maps

3D vector point data can be converted to a GRASS 3D raster map (v.to.rast3). Layers from a 3D raster map can be converted to a 2D raster map (r3.to.rast). Cross sectional 2D raster map can be extracted from 3D raster map based on a 2D elevation map (r3.cross.rast).

3D raster statistics

Volume statistics can be calculated with r3.stats and r3.univar.

3D raster interpolation

From 3D vector points, GRASS 3D raster maps can be interpolated (v.vol.rst). Results are volumes, or 2D raster maps can be also extracted.

3D raster export

The modules r3.out.ascii and r3.out.bin support the export of 3D raster maps as ASCII or binary files. The output of these modules can be imported with the coresponding import modules noted above.

NetCDF export of 3D raster maps can be performed using the module r3.out.netcdf. It supports 3D raster maps with spatial and temporal vertical dimension (Space time voxel cubes).

GRASS 3D raster maps can be exported to VTK (r3.out.vtk). VTK files can be visualized with the VTK Toolkit, Paraview and MayaVi. GRASS 2D raster maps can be exported to VTK with r.out.vtk, GRASS vector maps can be exported to VTK with v.out.vtk.

Alternatively, GRASS 3D raster maps can be imported and exported from/to Vis5D (r3.in.v5d, r3.out.v5d). Note that Vis5D is limited in the number of supported volumes.

See also