A short summary of changes: New features in GRASS 7.2


Stable Release

Release Candidate 2 (RC2)

Release Candidate 1 (RC1)

SVN Source Code

  • Milestone: 7.2.0
  • SVN Checkout latest 7.2 release branch (including yet unpublished bugfixes):
      svn checkout

Overview of changes

A series of new features and stability fixes, manual improvements, and a few language translations have been added.

The GRASS GIS 7.2.0 release provides more than 1900 fixes and improvements with respect to to the stable releases 7.0.x.

New modules

  • G72:d.frame - Manages display frames on the user's graphics monitor
  • G72:d.legend.vect - Displays a vector legend in the active graphics frame
  • G72:g.gui.datacatalog - The Data Catalog is a wxGUI component for browsing, modifying and managing GRASS maps
  • - Search for a GRASS GIS module based on keywords (searches descriptions or manuals)
  • G72:r3.flow - Computes 3D flow lines and 3D flow accumulation
  • G72:r3.gradient - Computes gradient of a 3D raster map and outputs gradient components as three 3D raster maps
  • G72:t.rast3d.algebra - Apply temporal and spatial operations on space time 3D raster datasets using temporal 3D raster algebra
  • G72:t.rast.algebra - Apply temporal and spatial operations on space time raster datasets using temporal raster algebra
  • G72:t.rast.contour - Produces a space time vector dataset of specified contours from a space time raster dataset
  • - Converts a space time raster dataset into a space time vector dataset
  • G72:t.rast.what - Sample a space time raster dataset at specific vector point coordinates and write the output to stdout using different layouts
  • G72:t.vect.algebra - Apply temporal and spatial operations on space time vector datasets using temporal vector algebra
  • G72:v.decimate - Decimates a point cloud
  • G72:v.out.lidar - Export point vector map as a point cloud

New experimental modules:

  • - perform 3D binning and statistics on a point cloud (lacks some standard GRASS GIS module features)
  • - import point clouds as vector points using PDAL library and its filters such as ground classification (not included in binaries and distributions)

Removed modules

  • v.krige removed from core distribution and moved to addons G7A:v.krige (see #3136 for details) due to instabilities (). Will be reintroduced in future with a better implementation - contributors are welcome!

Major module changes

  • G72:d.barscale - new option to specify length and units, custom label possible (done within GSoC 2016)
  • G72:d.legend - added option to show background, show ticks, more control over labels, added title, possible to switch to logarithmic (done within GSoC 2016)
  • G72:d.northarrow - added rotation option, more symbols available (done within GSoC 2016)
  • G72:d.vect - Legend tab with number of legend-related options (icon_area to represent areas in legend, icon_line to represent lines in legend, legend_label for label to be displayed in legend, -l flag to do not show anything in the legend)
  • G72:d.vect.thematic - Legend tab with number of legend-related options (icon_area to represent areas in legend, icon_line to represent lines in legend, legend_title for heading of the section in the legend)
  • G72:g.extension - downloads, compiles and installs modules using simplified URLs to GitHub, GitLab and similar repository services, local directories, remote and local ZIP and TAR files and GRASS GIS Trac, does not require Subversion (svn) anymore for standard GRASS GIS addons (applies to Linux, Mac OS X and other systems with build environment), svnurl option renamed to url (svnurl can still be used)
    • base_raster option which allows for the conversion to LAS file Z values to height above ground using an existing elevation raster. Additionally, with -d a base_raster is used in its native resolution to enable performing statistics on with coarse resolution while reducing the heights of point using the base_raster in its full resolution.
    • -j option which allows the use of Z values for filtering of points, yet performs statistical analysis on the intensity values
    • intensity_range and intensity_scale to filter and modify intensity values
    • file option to specify list of files (file paths) in a text file (merges multiple LAS files on input as if it would be one file)
  • G72:r.mapcalc - fixed bug when some uses of neighborhood modifier gave wrong result (#3067)
  • - new -i flag to include no data values
  • G72:r.texture - major rewrite fixing many bugs and making the results much more useful (#3210)
    • point cloud decimation (skip, preserve) and subset import (offset, limit)
    • vector mask to limit import to given areas (mask, mask_layer, -i for mask inversion)

All display modules for vector maps, namely G72:d.vect and G72:d.vect.thematic, now produce a legend file with instructions for G72:d.legend.vect if GRASS_LEGEND_FILE environmental variable is specified (applied in GUI in the background, can be used directly in the command line or scripts).

slightly bigger file

Minor module changes

  • G72:d.northarrow - describe arrows in the same way as barscales
  • fixed
  • G72:i.landsat.toar: avoid endless loop and exit if approximation of atmospheric transmittance coefficients is unstable (DOS4 method)
  • G72:r.fillnulls - add lambda parameter of G7:r.resamp.bspline
    • -n flag to set region according to the newly created raster (useful with -e flag)
    • bug fix for low memory processing option
    • bug fix for extremely large rasters
    • -v to import use only valid points. This is a change of behavior. Previously, invalid points were always ignored. The behavior was removed because of unclear definition of invalid point in libLAS library. No invalid points are filtered out only when requested which makes it consistent with other filters. However, if invalid points are present, user gets a warning message.
  • G72:r.patch - speed optimization (approximately 10% faster than previous version)
  • G72:r.random.cells - ncells to generate only limited number of cells
  • G72:r.rgb - better error message when none of the required options is provided
  • G72:r.stats.quantile: use correct min
    • id_layer, return_layer, class_layer, rgb_layer to store point attributes as layers and categories
    • -c flag to not add unique IDs as category to each point. More points than the category number limit can be imported. This also requires less space on disk and time during import.
    • general improvements to handle large amounts of points
    • zrange option to filter out points based on height
    • -v to use only valid points. This is a change of behavior. Previously, invalid points were always ignored. The behavior was removed because of unclear definition of invalid point in libLAS library. No invalid points are filtered out only when requested which makes it consistent with other filters. However, if invalid points are present, user gets a warning message.
  • G72:v.patch - -z and -n flags to work without topology but with z coordinate
  • G72:v.random - now accepts much larger numbers as the number of requested points
  • G72:v.distance - fix bug when 3D point inside a 2D area was classified as being outside
  • G72:v.outlier - added missing 6.4 compatibility option for lambda (lambda_i in 6.4)

GUI changes

GRASS 7.2 Data Catalog

  • G7:wxGUI + G7:d.mon: new multi-threaded implementation
  • new Data tab in Layer Manager for browsing and editing locations and mapsets
    • delete, rename and copy raster, 3D raster and vector maps
    • add map to display if it is from current mapset
    • switch mapset
    • search by name with regular expressions
  • new Raster digitizer - draw points, lines, polygons, you can launch it from Map Display drop down selection
  • shorter names for Layer Manager tabs
    • Map layers -> Layers, Command console -> Console, Search modules -> Modules, Python shell -> Shell
  • GRASS GIS Simple Python editor (accessible from Python tab or toolbar)
  • Python editor in modeler has monospaced font and shows white space
  • font selection in settings has now preview
  • updates to cartography in Map Display:
    • add multiple overlays (legends, scale bars, north arrows, text)
    • new vector legend
    • text is now rendered with G7:d.text instead of wxpython text
    • new color tables which are perceptually uniform: viridis and grass
    • viridis color table is the new default replacing rainbow (manage with G7:r.colors)
  • keyboard shortcuts and mouse actions for font size in Console tab
  • shorter toolbar for Map Display to better support small displays

Simple Python editor in GRASS GIS wxGUI with v.buffer example

PyGRASS changes

  • pygrass: documentation updates

Library changes

  • libraster: support for new raster data compression methods: NONE, ZLIB, LZ4, BZIP2. Overview:
    • Raster map compression set by export GRASS_COMPRESSOR=XXX, with XXX be
      • NONE (uncompressed)
      • RLE (generic Run-Length Encoding of single bytes)
      • ZLIB (DEFLATE, good speed and compression)
        • with zlib compression levels (export GRASS_ZLIB_LEVEL=X): -1..9 (-1 is default which is level 6)
        • Notes: ZLIB level = 0 tells ZLIB to copy the data as-is from source to destination. In case of CELL maps, the rasterlib itself will then still trim high zero bytes with trim_bytes() which can already reduce the data size considerably, but ZLIB will not compress the data.
      • LZ4 (fastest, low compression)
      • BZIP2 (slowest, high compression)
    • NULL file compression: At time it must be explicitly turned on with export GRASS_COMPRESS_NULLS=1
  • vlib: 2D version of Vect_point_in_box() function called Vect_point_in_box_2d()
  • color table changes:
    • DEFAULT_COLOR_TABLE macro which is a string literal with the name of default color table
    • added viridis and grass color tables to lib/gis/colors (visible in G72:r.colors, G72:r3.colors and G72:v.colors)
    • default color table changed from rainbow to viridis
  • improvements for standard options and flags description (English in examples, more details about topology and layers)

Map projection changes

  • libproj: outdated CSV files removed (GDAL's CSV files are used)
  • libproj: recognise NAD83(HARN) for NC; fix SIRGAS2000 datum; add explanations about datum management
  • libgis/libproj: +datum related to SIRGAS 2000/EPSG:4674
  • libgis/libproj: +S_JTSK datum
  • libproj: fix mixing of projection name and coordinate system name

Portability changes

  • libiostream uses exception specifiers only for C++ versions older than C++11, so it compiles with C++98, C++11 and C++14 (version dependent exception specifier macros)
  • G72:r.viewshed, G72:r.terraflow and G72:i.atcorr now compile with C++11 and C++14 as well as C++98 strict setting thanks to libiostream changes
  • G72:r.terraflow now complies with clang++ and strict C++11 syntax (string literal and macro combination syntax)
MS Windows

Manual pages

Graphical Index

Message translation updates

  • Message catalogue updated
  • Latvian translation updated
  • Polish translation updated

New Addons

New addons since GRASS GIS 7.0.0 (for a total of over 230 GRASS GIS 7 addons by this date !):

Closed tickets

Closed bugs since the last release

wxModeler: r.mapcalc action should allow to insert maps
error in r.walk help page
g.parser does call the with full path
Unicode unequal comparison in location wizard when title contains non-ascii letters
GRASS 7: -d produces empty raster when used on areas
g.mlist warnings for layers found in other mapsets
failed pygrass doctest
#2298 hack= generates order 1 single pixels
Problems with add category to all features workflow
PyGRASS points read from map are always 2D although they have z coordinate
browse button in import vector/raster wrapper for and crashes entire GUI
G7: t.* modules unclear -s flag
r.diversity = Illegal areas disposition
wxGUI.Nviz flickering
GRASS 7: "inf" values break insert statements in v.rast.stats
#2357 segfaults or reports incorrect values on Windows
#2359 with a large map
Error in gunittest get_svn_info()
gunittest test local input file failure
d.legend "use" argument makes legend disappear
lighting/shading for vector objects backward in nviz
#2385 doesn't use information from dblogin file about external PostgreSQL server
Python ScriptError
t.vect.export using no compression argument results in creation of an archive
r.series.interp missing in wxGUI menu
g.gui.iclass crashes
np.float128 does not always exist
#2443 add-on updates for 7.1svn
r.mask -r removal not working in GRASS 7.1 svn r.62210
#2472 gives negative point count on large las files
query raster/vector map(s) does not work with vector layers
yet another problem with GUI toolbox menu
Dotted line guiding digitization tool disappeared
g.gui.metadata not functioning
#2574 - not working with the last version of grass7
i.segment threshold error message should be updated
osx - wxpython 3 64 bit - v.digit gui freeze when digitizing new vector
mac OSX - wxpython 3 (64 bit) profile surface map fails to start
mac OSX - wxpython 3 (64 bit) create histogram of raster map fails to start
mac OSX - wxpython 3 (64 bit) - fails to generate map preiew
#2650 - dropdown menu - gui components doesn't get update
#2671 won't make interpolation
mapswipe add raster map doesn't work with wxPython 3
d.mon: input file has incorrect dimensions
#2687 picks map from current Mapset instead of PERMANENT
Rendering failed: Error reading PPM file
rendering command layer and adding 3d raster layer broken
data catalog does not show all raster layers, while showing some non-existing
WARNING: Unable to rename null file
GUI hangs when adding vector map from cli
t.rast.aggregate: ValueError: too many values to unpack
#2741 fails
#2743 core dump
g.gui.vdigit fails to start with "PyAssertionError: C++ assertion "GetEventHandler() == this" failed at ../src/common/wincmn.cpp(478) in ~wxWindowBase(): any pushed event handlers must have been removed"
i.gensigset error G_calloc: unable to allocate 115671215 * 8 bytes of memory at lib/imagery/sigset.c:24
added "_1" to attribute table's name when working with v.overlay
#2771 gives error for multiple pass processing
v.rast.stats: ERROR: Input window changed while maps are open for read.
wxplot tools fails with wxPython 3
g.gui fails to import set_gui_path
Default locale not found
lib/iostream/mm.cpp:Fails to build with GCC 6: declaration of ... has a different exception specifier
grass.script.array cannot read raster on Windows
r.external wizzard shows "projection match: no" although location was created by one of the dataset
d.histogram launched from map display toolbar doesn't work
"query raster/vector map(s)" tool does not work for raster maps
query tool does not work in wx display
z values read instead of intensity in
Absolute path in TGIS connection can make db inaccessible in a (mixed) multi-user environment
MD5sum for WinGRASS-7.1.svn-r67975-87-Setup-x86_64.exe does not match md5sum file
db.login port parameter
Patch for spelling errors
python editor refuses to run script with UI after closing GUI dialog
i.gensig overwrites signature file without warning
PyGRASS fails to write vector map with attributes
OSGeo4W-winGRASS71 r68376: starting wxgui fails
Make N with arrow optional in d.barscale styles
d.polar ends with ValueError: could not convert string to float: dimensions:
#3035 sets wrong map title
d.northarrow: transparent color does not work
unexpected behavior/error message in r.diversity?
wxGUI: error when profiling a raster map
problems with legend with categorical data and smooth gradient option
Transparent legend background does not work with categorical legend
Some modules fail to compile
d.barscale and northarrow positioning problem when off-screen rendering
d.legend.vect: wrong handling of spaces in legend_label
d.vect: Accents in legend_label cause encoding error
d.legend.vect workspace file flag problem
d.mon + d.vect: ERROR: Option <map> does not accept multiple answers
g.gui.animation issues with stvds and list of vector maps
r.watershed: PredictorSetup:Horizontal differencing "Predictor" not supported with 64-bit samples
different results by --ui and vector import wizzard (data shift)
Behavior of t.register when r.timestamp was used
v.what: does not take into account layer information
g.gui.tplot AttributeError: 'module' object has no attribute 'EVT_COMBOBOX_CLOSEUP'
i.segment watershed method available but not implemented
v.vect.stats: errors in counts and statistics
Maps display differently 7.0.x vs 7.2.svn and 7.3.svn
workspace - layers are in inverted order after loading saved workspace file
wxGUI nviz: resolution settings widget broken in wxPython 3
Create histogram of raster map fails
Create bivariare scatterplot of raster maps fails
#3212 crashes if server does not exist
#3213 - Segmentation fault
t.rast.mapcalc: TypeError: object of type 'NoneType' has no len()

Closed wishes since the last release

g.version: new flag for citation info
layertree to be compatible with DataCatalog
explain command mapping to wxGUI menus
MapSwipe query maps
Command functions in grass.script.core miss a correct error reporting
parallelize r.horizon
change r.horizon output names from "angle index" to "angle"
CELL raster format: make ZLIB level 3 standard compression instead of RLE
v.univar says type not supported instead of column does not exist
g.mlist add parameter to check region
Force reading of VAR and GISRC files in libgis
testsuite: cosmetics for percentage output
store map elements in workspace file
add parameter for transformation of input data to
#2507 accepts multiple bands in band option
Enhancement request - i.segment handle large images above 2 billion pixels
r.grow.distance: define max distance
Specify command to be exectued as parameter of grass command
r.mapcalc: add -l flag
add stream power index to GRASS GIS
option in context menu to export vector attribute table
#2638 ignore Null cells
Increase maximum number of vector points available
Add test for r.watershed module
"Browse" button v.external
wish: logarithmic legend for raster maps
availability of and without compiling
t.rast.what: allow stdin and add to GRASS 7.0
Add link to source code in the documentation pages.
Let r.import specify "title"
First r.grow.distance test
r.neighbors explain count in manual
support background and border for d.legend
Add ticks to continuous raster legend
Add legend title
Add option to set scalebar length
Specify custom label for d.northarrow
Add other existing symbols to d.northarrow
correction and enhancement of description
Rotate symbol for north arrow in d.northarrow
Add images to the d.northarrow manual page
Change default color table
]PATCH] r.patch: disable creation of support files
#3078 unicode support
d.correlate: add plotting of axes
r.out.gdal: add alpha channel support

Closed tasks since the last release

standardize DEG2RAD() etc
Missing guidelines for testing
Change the layer options in to flag or flags with predefined categories
Decide if validity check in should be an additional filter or a filter enabled by default
move v.krige to addons

Last modified 8 weeks ago Last modified on Feb 1, 2017 12:51:00 AM

Attachments (5)

Download all attachments as: .zip