Version 141 (modified by neteler, 7 years ago) (diff)

+teaser text (based on LD & MN's GRASS 7 presentation at Genova 2013)

List of new features in GRASS 7

GRASS GIS 7 is the current development version of GRASS GIS. In total, more than 10,000 changes have been implemented so far with respect to GRASS GIS 6.4. The development of GRASS GIS 7 was started in April 2008 (r31142). Since then a lot of new features have been added to GRASS 7; until the official release becomes available, it is already possible to use GRASS GIS 7 through nightly snapshots.

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 details see below.

Graphical User Interface

Display modules

  • old display architecture removed including related modules
  • new display architecture based on CAIRO and wxPython
  • G7:ximgview: new

General modules

Image processing

Raster modules

Vector modules

3D raster modules


  • All Bash scripts converted to Python, especially for portability reasons and speed.
  • Initialization scripts also based on Python

GRASS 7 Library changes


  • new library for numerical functions


  • SQLite is now default database driver
  • Added support for OFTDate, OFTTime, OFTDateTime


  • WPS support implemented in parser (c, c++, python, shell)
  • Libraster separated out into own library
  • Store metadata in $HOME/.grass7 directory


  • Implementation of BLAS level 1,2 and 3 functions which are in use by all gmath solver, the gpde library and many modules.
  • ATLAS wrapper for BLAS level 1 functions (level 2, and 3 are work in progress)


  • WIP in OGSF - feature styling rewrite that will allow to assign custom (e.g. attribute based) style to points AND lines in NVIZ (might be extended to polys and any 3D vectors too).



  • Large File Support (LFS) added
  • New topology, requires rebuilding topology with ( when switching between GRASS 6.x and GRASS 7
    • 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')
    • New main topology: reduced memory and disk space requirements, generally faster processing
  • Cleaning function 'break polygons' faster, less memory
  • 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)
  • Vector network analysis for large datasets (as other vector operations) should require much less memory in GRASS 7 because of substantial vector library changes

User Manual - Documentation

API improvements

Source Code Portability

  • All shell scripts have been rewritten in Python
  • MS-Windows portability improved, new spawn functions (backported to 6.5 and 6.4), global LFS available by default
  • MacOSX portability improved

Removed modules

Some modules present in GRASS 6 have been removed due to architecture changes or replacements:

  • d.ask, d.colors, d.extend, d.extract, d.frame, d.mapgraph, d.measure,,, d.what.rast, d.what.vect, d.zoom (old display architecture decommissioned)
  • d.histogram: integrated in wxGUI
  • g.ask: use g.findfile
  • g.setproj: use Location Wizard or 'g.proj -c' (state plane by county selection needs to be ported)
  • i.points: new graphical version in wxGUI
  • i.class,, i.vpoints (need to be ported; old display architecture decommissioned)
  • raster:
  • v.digit (new wxPython digitizer)

Renamed modules

Renamed options

Some parameter names (options) have been renamed to achieve greater consistency. User scripts from GRASS 6 may need minor updates to run with GRASS 7 according to the changes listed below:

Global module changes

  • fs= (field separator) -> separator=

Display module changes

  • G7:d.correlate
    • layers -> map
  • G7:d.erase
    • color -> bgcolor
    • background -> bgcolor
  • G7:d.rast
    • catlist and vallist options merged into new values option
    • overlay flag inverted to new opaque flag
  • G7:d.rast.leg
    • rast -> raster
  • G7:d.vect
    • wcolumn -> width_column
    • wscale -> width_scale
    • rot_column -> rotation_column

Database management module changes

General map management module changes

  • G7:g.mapsets
    • addmapset,removemapset -> operation
    • measure -> method
  • G7:g.pnmcomp
    • background -> bgcolor
  • G7:g.region
    • n -> north
    • s -> south
    • e -> east
    • w -> west
    • t -> top
    • b -> bottom

Image processing module changes

Raster module changes

Vector module changes

  • G7:v.edit
    • t -> b
    • measure -> method
    • layer=integer -> layer=string
    • file -> input
    • vect -> output
    • wfs -> url
    • input -> map
  • G7:v.out.ogr: 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.
  • G7:v.rast.stats
    • colprefix -> column_prefix
    • input -> map
  • G7:v.what.vect
    • vector -> map
    • qvector -> qmap
    • maskmap -> mask
    • treefile -> treeseg
    • overfile -> overwin
    • elev -> elevation

Attachments (10)

Download all attachments as: .zip