= List of new features in GRASS GIS 7.8 = GRASS GIS 7.8 is actively developed and maintained with a first 7.8.0 stable release in Sep. 2019. In total, it comes with '''more than [https://github.com/OSGeo/grass/compare/releasebranch_7_6...releasebranch_7_8 840 fixes and improvements]''' with respect to the previous [wiki:Grass7/NewFeatures76 stable releases 7.6.x]. This page summarizes the manifold new features which have been added to GRASS 7.8. [[TOC]] === What's new in a nutshell === After more than 1 year of development the **new stable release GRASS GIS 7.8** 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. **Breaking news: Python 3, PROJ 6 and GDAL 3 compatibility** This re-established compatibility with QGIS and other connected software packages. === Releases === * See list here: * ~~[wiki:Release/7.8.3-News] (xx Apr 2020)~~ * [wiki:Release/7.8.2-News] (11 Dec 2019) * [wiki:Release/7.8.1-News] (9 Nov 2019) * [wiki:Release/7.8.0-News] (6 Sep 2019) * The release development was officially moved to a dedicated release branch on Aug 4, 2019: https://github.com/OSGeo/grass/tree/releasebranch_7_8 == Graphical User Interface == GRASS GIS 7.8 graphical user interface comes with many fixed for Python 3 and wxpython4. == Modules (commands) == A series of relevant improvements has been done (selection): === General modules === * G78:g.search.modules: support for installed addons added === Raster modules === * G78:r.compress: ZLIB is no longer the default compression method but [http://facebook.github.io/zstd/ ZSTD] compression * G78:r.mapcalc.simple: former r.mapcalculator as now as r.mapcalc.simple * G78:r.slope.aspect: fix -e flag to calculate values at edges * G78:r.to.vect: break line when value changes === Vector modules === The following vector modules have been significantly improved with new options, flags, fixes and other enhancements: * G78:v.in.pdal: use PDAL streaming instead of !PointView * G78:v.overlay: speed-up for large, complex input areas * G78:v.patch: automagic cleaning of boundaries if areas have been patched * G78:v.digit: fix digitizing on MS Windows === Imagery modules === * G78:i.pansharpen: updated i.pansharpen to handle pixel depths from 2-30 bits, and quashed some bugs * G78:i.zc: avoid integer overflow with large maps === Temporal GIS modules === * G78:t.vect.export: GPKG support added === Graphical user interface === * wxGUI: numerous fixes for Python3 and wxpython4 === Scripting === Major efforts have been done to port all Python scripts to Python 3. === Python 3 support === The deprecated shebang `#!/usr/bin/env python` has been changed to `#!/usr/bin/env python3` == User Manuals - Documentation == === Translations === Translations are managed in Transifex (please join and translate messages): https://www.transifex.com/grass-gis/grass7 === User manual pages improvements === Many user manual pages have received major or minor improvements. == GRASS GIS 7 Library changes == * libsegment: the all-in-memory cache has been improved == PROJ support == In addition to PROJ 4 and PROJ 5 now also PROJ 6 compatibility implemented. * convert lowercase epsg to uppercase EPSG * axis order of a CRS is no longer always easting, northing, it can also be northing, easting, e.g. EPSG:4326. If source and target CRS are available, axis order is adjusted using proj_normalize_for_visualization() to easting, northing if needed. * previously, GRASS GIS did conversions of degress to/from radians and meters from/to map units. Now PROJ6+ might do these conversions itself, or not. GRASS GIS is now doing the conversions only if needed. * in PROJ6+, there can be several different operations to transform coordinates from one CRS to another CRS. If more than one operation is available, information is provided about these different operations. The current region is used by PROJ to select an appropriate operation. == GDAL support == GDAL 3 compatibility added. == Source Code Portability == * Python-3 support implemented across the tree * OSGeo4W: build fixes, rewrite of package.sh, GDAL3/PROJ6 support added ==== JSON / REST support ==== * json parser: change + to @ for URLs: Since `+` is used in algebraic expressions, this char is unsuitable for the indication of external URL resourcs as used by the importer of actinia (https://github.com/mundialis/actinia_core/) ==== Docker support ==== * Various docker images listed at: https://grass.osgeo.org/download/software/docker-images/ == GRASS GIS 7.8 Addons == There are numerous new addons which enlarge the already impressive list of addons available (see http://grass.osgeo.org/grass7/manuals/addons/): * G7A:i.sar.speckle - Remove speckle from SAR image * G7A:r.fill.category - Replaces the values of pixels of a given category with values of the surrounding pixels * G7A:r.mapcalc.tiled - Runs r.mapcalc in parallel over tiles * G7A:r.object.thickness - Evaluates minimum, maximum and mean thickness of objects of a given category on a raster map * G7A:r.out.kde - Exports raster with variable transparency into an image file * G7A:r.out.legend - Create an image file showing the legend of a raster map * G7A:r.random.weight - Generates a binary raster layer with a random selection of raster cells depending on the weight of each cell in the input weight layer. * G7A:r.sample.category - Create sampling points from each category in a raster map * G7A:r.series.diversity - Compute diversity indici over input layers * G7A:r.slope.direction - Calculates slope following a direction raster * G7A:r.zonal.classes - Calculates zonal classes proportion describing raster areas's composition, e.g., in terms of land-cover classes == Migrating from GRASS GIS 6 to version 7.x == If you are still using GRASS GIS 6, here details upgrade instructions for own scripts: * see [wiki:Grass7/NewFeatures#Optionschanges here] for changes in parameter names and changed flags * see [wiki:Grass7/NewFeatures#Replacedandremovedmodules here] for removed modules and renamed modules * see [wiki:Grass7/NewFeatures#Optionschanges here] for renamed options