Context Navigation

List of new features in GRASS GIS 7.0

GRASS GIS 7 is the version of active development with a first 7.0.0 stable release in February 2015. In total, more than 10,500 changes have been implemented so far with respect to GRASS GIS 6.4. The development was started in April 2008 (r31142). This page summarizes the manifold new features which have been added to GRASS 7.

The graphical user interface based on wxPython (introduced in GRASS GIS 6.4) has been enriched with many new features in order to make complex GIS operations available as simple as possible. The old Tcl/Tk based GUI has been dropped. Relevant new features are available in the core system, among the most important the new Python interface to the C library. This new feature permits Python developers to create new modules in a simple way while at the same time creating powerful and fast modules. Furthermore, the vector library was particularly improved to make it faster and more efficient with support of huge files. This required a easy to manage topology format update including a new spatial index. Finally, there are a series of new modules to analyse raster and vector data; some of the already existing modules were improved and made faster (some even 1000 x faster). For more details see below.

G7:i.fft and G7:i.ifft: In GRASS 6.x, the only operation which can be performed upon the FFT data is a binary mask; a given component can be included or excluded, but not scaled. In GRASS 7.0, the frequency coefficients are saved as raster maps, so they can be manipulated with e.g. G7:r.mapcalc. The main constraint is that both i.fft and i.ifft require the data to fit into memory. Eliminating this requirement boils down to transposing a large array efficiently.

G7:r.watershed improved from G6.3 to G6.4 to G6.5 to G7: faster, less memory, floating point DEM support, MFD, clean stream extraction from MFD, segmented mode in G7 faster than in G6 by orders of magnitude.

Raster3D modules

New:

G7:r3.colors: new - Creates/modifies the color table associated with a 3D raster map.

G7:r3.colors.out: new - Exports the color table associated with a 3D raster map.

G7:v.net.distance: improved - Computes shortest distance via the network between the given sets of features. Finds the shortest paths from each 'from' point to the nearest 'to' feature and various information about this relation are uploaded to the attribute table.

G7:v.net.flow: improved - Computes the maximum flow between two sets of nodes in the network

G7:v.net.salesman: optional tour optimization added. The standard algorithm to find the shortest tour is heuristic and often does not find the optimal tour for more than 10 nodes to visit. The optimization methods available are bootstrapping and a genetic algorithm

Temporal GIS modules

The new temporal GRASS GIS 7 framework has been developed to manage, process and analyse large scale, spatio-temporal environmental data. In detail, the framework supports querying and map calculation of spatio-temporal data, aggregation, statistics and gap filling, and data export, import, and conversion. A spatio-temporal topology builder is available to build spatio-temporal topology connections between map objects for 1D, 3D and 4D extents. The topology creation is based on the R*Tree implementation in the vector library which supports even 4D extents.

New spatial index: faster queries (>10x for large vectors), less memory for opening an existing vector

New option added to use a file-based version of the spatial index which can be activated by setting the new shell environment variable GRASS_VECTOR_LOWMEM (e.g., in bash: 'export GRASS_VECTOR_LOWMEM=1' and deactivated with 'unset GRASS_VECTOR_LOWMEM')

Cleaning function 'snap lines' faster and modifications are minimized: a vertex is snapped to the closest anchor vertex, not to the first anchor vertex found which might not be the closest anchor vertex.

Simple Features API/OGR read/write support (ongoing)

Support for color tables (see lib/vector/Vlib/color_*.c files), see also v.colors

Vector network analysis for large datasets (as other vector operations) should require much less memory in GRASS GIS 7 because of substantial vector library improvements

the meaning of the -c flag has been reverted in GRASS 7 because the default must be to export only features with categories in the selected layer (the user needs to select a GRASS vector layer for v.out.ogr which will be translated to an OGR layer). If features without category are exported, the logic of matching a GRASS vector layer to a OGR layer is violated. This is particularly true for areas with islands which are in simple feature terminology polygons with holes.