After almost 1 year of development the new stable release GRASS GIS 7.6 is available. Efforts have concentrated on making the user experience even better, providing many new useful additional functionalities to modules and further improving the graphical user interface. Furthermore, ZSTD has been added a new raster
method which is an improvement over ZLIB's deflate method, providing both faster and higher compression than ZLIB. Also a new raster map type has been added: GRASS virtual raster (VRT) which is a virtual mosaic of the list of input raster maps. In addition, support for PROJ v. 5 has been implemented. For details, see below.
Graphical User Interface:
- GRASS GIS 7.6 graphical user interface now displays the computational region extent by default in the Map Display window. This simple new feature allows to always visualize such an important basic concept in GRASS GIS and makes it a lot easier for newcomers. Moreover, a new widget has been implemented for commands including an SQL WHERE parameter to ease selection of features/data.
- A series of new modules has been added and many improved as outlined below.
- The core G7:g.region module comes with a new grow option that allows to increase or decrease by a certain number of pixels the region extent in all directions.
- This new GRASS GIS release comes with 3 new dedicated raster modules. The first one, G76:r.path, can be used to trace paths from different starting points following input directions, such as the outputs of G76:r.cost, G76:r.walk or G76:r.watershed, among others. The second one, G76:r.buildvrt, provides the very useful functionality of creating virtual raster (VRT) mosaics from a list of input raster maps. This is very useful when the original data are available in tiles which can now be virtually mosaiked to a single map without overhead for easier analysis. G76:r.buildvrt hence allows processing big areas while avoiding the creation of physical maps, especially useful when space is limited. Finally, there is now G76:r.mapcalc.simple, a tool to calculate a new raster map from a simple r.mapcalc expression.
- Several other raster modules have been improved with new options or flags:
- G76:r.proj offers a new pipeline option for high-accuracy re-projection provided by PROJ v. 5
- G76:r.info recognizes different types of raster maps, i.e., "raster" (GRASS native), "reclass" (reclassification of another raster map), "GDAL-link" (GRASS link to a GDAL raster band), "virtual" (virtual mosaic of raster maps)
- G76:r.mapcalc comes with new functions floor() and ceil()
- G76:r.slope.aspect has a new -n flag to create aspect as degrees clockwise from North (azimuth) and a new -e flag to compute values at edges
- G76:r.in.srtm now also supports the import of SRTM Water Body Data products (SWBD)
- G76:r.random has a new seed option to set the seed of the RNG, making it possible to reproduce the same random pixels in different runs
- G76:r.cost has a new solver option to control which direction is used in case of multiple directions with equal costs
- G76:r.colors includes inferno, magma and plasma color tables as well as a new flag -d to list available rules with description (e.g. "srtm: color palette for Shuttle Radar Topography Mission elevation [range: -11000 to 8850]")
- Several vector modules have been significantly improved with new options, flags, fixes and other enhancements. Here are the most significant ones:
- G7:v.proj comes now with a new pipeline option for high-accuracy re-projection provided by PROJ v. 5
- G7:v.in.ogr now also converts OpenStreetMap line topology to GRASS GIS topology, inserting nodes where appropriate (further details can be found in this dedicated wiki page OSM vs GRASS topology)
- G7:v.extract can now dissolve areas not only by category number, but also by attributes, while preserving category values and attribute tables. This is a significant improvement over G76:v.dissolve
- G76:v.overlay has been improved significantly to speedup large and complex input areas processing
- G76:v.rast.stats now also reports the number of NULL cells and it has a new 'where' option. In addition, multiple raster maps can now be passed as input to the module to collect statistics
- G76:v.to.rast now also supports conversion of centroids
- G76:v.buffer now offers to also build squared buffers around points when the -s flag is set
- Various imagery modules received fixes and enhancements. A lot of work has been put into G76:i.atcorr to fix numerical instability in the 6S method for atmospheric correction. The module now also supports PlanetScope 0c-0d, 0e, and 0f-10 images. A detailed example to process Copernicus Sentinel 2 bands was added to the manual page to make it easier to use for newcomers. G76:i.segment was improved as well for memory management estimation and avoidance of integer overflow when processing extremely large regions. The writing out of goodness of fit and segment ids was also fixed.
Temporal GIS modules:
- The most important change in the temporal modules was the long awaited suffix option in G7:t.rast.algebra. This allows to get time and granularity based raster map names out of G76:t.rast.algebra calls. G76:t.info includes support to print history and to use its output in combination with eval. A very nice improvement in the temporal plot tool (G76:g.gui.tplot) now allows to set labels for title, x and y axes, and to export the plotted time series data in a CSV file.
- The Python scripting library has been improved (note: Python3 support will be available in GRASS GIS 7.8.0, it is under development in grass77).