= GRASS GIS 7.4.0 = [[TOC]] A short summary of changes: '''[wiki:Grass7/NewFeatures74 New features in GRASS 7.4]''' === Releases === ==== Stable Release ==== * Release date: ''26 Jan 2018'' * Announcement: https://grass.osgeo.org/news/71/15/GRASS-GIS-7-4-0-released/ * Changelog: https://grass.osgeo.org/grass74/source/ChangeLog_7.4.0.gz * Binaries: ​https://grass.osgeo.org/download/software/#g74x * Source code: https://grass.osgeo.org/grass74/source/grass-7.4.0.tar.gz ([https://grass.osgeo.org/grass74/source/grass-7.4.0.md5sum md5sum]) * SVN Source Code Checkout 7.4.0: {{{ svn checkout https://svn.osgeo.org/grass/grass/tags/release_20180126_grass_7_4_0 }}} ==== Release Candidate 2 (RC2) ==== * Release date: ''8 Jan 2018'' * Changelog: https://grass.osgeo.org/grass74/source/ChangeLog_7.4.0RC2.gz * Binaries: ​https://grass.osgeo.org/download/software/#g74x * Source code: https://grass.osgeo.org/grass74/source/grass-7.4.0RC2.tar.gz ([https://grass.osgeo.org/grass74/source/grass-7.4.0RC2.md5sum md5sum]) * SVN Source Code Checkout 7.4.0RC2: {{{ svn checkout https://svn.osgeo.org/grass/grass/tags/release_20180108_grass_7_4_0RC2 }}} ==== Release Candidate 1 (RC1) ==== * Release date: ''17 Nov 2017'' * Changelog: https://grass.osgeo.org/grass74/source/ChangeLog_7.4.0RC1.gz * Binaries: ​https://grass.osgeo.org/download/software/#g74x * Source code: https://grass.osgeo.org/grass74/source/grass-7.4.0RC1.tar.gz ([https://grass.osgeo.org/grass74/source/grass-7.4.0RC1.md5sum md5sum]) * SVN Source Code Checkout 7.4.0RC1: {{{ svn checkout https://svn.osgeo.org/grass/grass/tags/release_20171117_grass_7_4_0RC1 }}} === SVN Source Code === * Milestone: [milestone:"7.4.0"] * SVN Checkout latest 7.4 release branch (including yet unpublished bugfixes): {{{ svn checkout https://svn.osgeo.org/grass/grass/branches/releasebranch_7_4 }}} === 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.4.0 release provides '''more than 710 fixes and improvements''' with respect to the stable release 7.2.0. ==== New modules ==== * G74:r.fill.stats: Rapidly fills 'no data' cells (NULLs) of a raster map with interpolated values (IDW). * G74:r.geomorphon: calculate geomorphons (terrain forms) and associated geometry using machine vision approach (moved from addons) * G74:g.gui.image2target: managing Ground Control Points for 3D correction. * G74:g.gui.photo2image: correct scanning distortions of a scanned aerial photo * G74:v.clip: extract features of input map which overlay features of clip map (moved from addons) * G74:v.profile: new vector map profiling tool (moved from addons) ==== Major module changes ==== (see also below for closed bugs) * G74:g.proj: When a new location is created from vector data, use the default region s=0 n=1 w=0 e=1 res=1 to avoid potentially invalid region settings * G74:i.atcorr: added support for Pleiades1a, Pleiades1b, Spot6, Spot7, Sentinel-2A, Rapideye, Worldview3. Fixed band order for WorldView2 * G74:i.modis.qc: Added mod09GA QA definitions * G74:i.segment: new mean shift algorithm * G74:r.out.gdal: now creates overviews to enhance compatibility with other GIS software packages * G74:r.regression.multi: added RMSE and MAE estimation * ​G74:r.sim.water: Parallelized with OpenMP for multi core systems (integration of r.sim.water.mp addon) * G74:r.sun: Parallelized with OpenMP for multi core systems (integration of r.sun.mp addon) * G74:r.what: added new -v flag to return also vector category * G74:v.edit: tool=merge has an improved iteration over list of lines, improved skip invalid lines and zero length lines; added Vedit_extend_lines, improved intersection check; better handling of Vedit_connect_lines by extending both lines; fixed snapping to background map. * G74:v.external: new where option * G74:v.net.alloc and G74:v.net.iso: added flag for unique and original categories (#517) * G74:v.out.ogr: Default format changed from Esri Shapefile to [http://www.gdal.org/drv_geopackage.html OGC GeoPackage] (#3428) * G74:v.out.ogr: New -l flag to list supported formats (r71552) * G74:v.surf.bspline: Parallelized with OpenMP for multi core systems * G74:v.surf.rst: Parallelized with OpenMP for multi core systems * G74:v.vect.stats: New cat and where options for area and point vector maps to perform counts or estimate statistics only with selected points over selected areas (r71543) * lat/lon locations: automatically fix floating point precision errors in the grid geometry of imported raster maps created with GIS software that uses limited floating point precision (common problem). * support import of raster maps exceeding 90N or 90S or with an EW extent larger than 360 degrees * various commands: unit tests added ==== Minor module changes ==== (see also below for closed bugs) * G74:i.atcorr: fix loading spectral responses * G74:r.clump: fuzzy clumping, multispectral clumping, minimum clump size * G74:r.external.out: export also coordinate reference system (CRS) * G74:r.sim.water: added parallelization support * G74:r.sim.sediment: added parallelization support * G74:r.in.lidar: added -d flag to use base raster resolution instead of computational region * G74:r.in.gdal: new -r flag to optionally limit import to the current region * G74:r.import: added support to subset to region boundaries when importing (extent=region) * G74:r.mapcalc: implemented computational region settings based on disjoint union and intersection computation from all input raster maps in an expression * G74:r.mapcalc: added area() function to calculate area of pixels * G74:r.mapcalc: introduced new functions to access current region dimensions in number of cells * G74:r.reclass: it is possible to use more than 100 rules now * G74:r.resamp.stats: range, count and diversity methods introduced * G74:v.in.ogr: Fix import of OSM data (r71464) * G74:v.in.ogr: When a new location is created, use the default region s=0 n=1 w=0 e=1 res=1 to avoid potentially invalid region settings (r71490) * G74:v.in.ogr: Support new curve geometry types starting with GDAL 2.0 (r71508, r71514) * G74:v.in.ogr: code restructuring (r71550) * projection checks are now performed for all input layers, not only the first layer * projection checks are a bit more strict and more verbose in case of trouble * the new GDAL 2.2 API is used where possible, avoiding deprecated functions * OSM import is properly working, also with spatial filters and with GDAL < 2.2 * attribute import and table creation is finished before cleaning to avoid lengthy cleaning if tables can not be created, and to avoid a rare segfault when opening a GRASS database driver * the code has been restructured to make it a bit less unreadable and to fix the logic of steps (e.g. check output only if output is created) * G74:v.rast.stats: added new -d flag for line densification (as in G74:v.to.rast) and corresponding tests * G74:v.what: new -m flag to query overlapping features * G74:v.what: reset lists for each input map * G74:v.patch: build topology after appending * G74:v.surf.rst: new parallel implementation and testsuite * G74:t.rast.series: added quantile option with test * G74:t.rast.mapcalc: added warning before removing empty (null) maps * G74:t.rast.export: added GDAL options to support GeoTiff compression * G74:t.info: Add test to verify the support of non ASCII-code * G74:t.rast.what: * Fixed null value bug, null value definitions are now passed to G74:r.what correctly * added function to convert granularity to a smaller granularity ==== Improvements in the Graphical User Interface ==== * Data Catalog (available in the Data tab) can now **move and copy data between mapsets and locations, reproject rasters and vectors**. This can be performed using right mouse click or drag and drop * Metadata of the listed maps in the Data Catalog are now available in the context menu (internally calling G7:v.info, G7:r.info) * Show **computational region** function is now available also from menu ''Settings > Computational region > Show current region extent in Map Display'' * **Help** and Advanced **search** buttons in Modules tab to show documentation (manual pages) for modules * Selected **sample locations** can be now downloaded from the Startup windows using a Download button next to location selection * The GRASS GIS Spatial Database Directory is now automatically filled (if available on disk) when user starts GRASS GIS for the first time * Access errors for creating location are now shown in the GUI instead of a traceback in the command line * Map Display title is now more readable and says GRASS GIS Map Display: name - location/mapset * Map Display new web browser-like shortcuts for re-rendering * **Simple Python Editor** is now available from the File menu * Font can be selected interactively in module dialogs and there are some new symbols for vectors * G74:g.gui.gcp: vector map rectification has been improved (#3066) ==== Scripting ==== * PyGRASS: * Implemented [https://grass.osgeo.org/grass73/manuals/libpython/pygrass.modules.interface.html?highlight=multimodule#pygrass.modules.interface.module.MultiModule MultiModule] class and enabled temporary region environment for multi module runs. This class allows to put multiple modules into the parallel module queue, for example coupled g.region and r.mapcalc calls, that must be run in a specific order but many of these combined calls should run in parallel * fix _check function to not raise an Error when iterating over available mapsets in a location if a non valid mapset exists ==== Projection support ==== * Regarding EPSG:3857 which uses spherical development of ellipsoidal coordinates: Relative to WGS 84 / World Mercator (EPSG:3395) errors of 0.7 percent in scale and differences in northing of up to 43km in the map (equivalent to 21km on the ground) may arise. This has been fixed in recent GRASS 7.4.0+, providing same results like GDAL. ==== Library changes ==== * Temporal framework: * Implemented temporal algebra complement tests that show the current condition bugs * Added spatial topological operators to the temporal algebra (r71369) * Tests regarding implicit temporal aggregation * improved gran_to_gran function to return correctly years and second values * added function to convert granularity to a smaller granularity * Enabled raster region specific parallel processing by using the MultiModule class * diglib: fix bug caused by compiler optimizations * libproj: * improved integration of GDAL and streamlining of spatial reference system handling * added GPJ_grass_to_wkt2() and GPJ_grass_to_osr2() * python vector scripting library: * added layer variable to vector_info and vector_info_topo functions * libgis: * support global datasets which slightly exceed -180..+180, -90..+90 * G_window_percentage_overlap() now accounts for N == S or E == W * new G_adjust_window_ll() to automatically fix lat/lon errors * relax ll restrictions when reading DMS coords * support for HTML/CSS hash hexadecimal colors in G_str_to_color() * libraster: * fix/improve Rast_align_window() * NULL file compression by default * support range of categories for CELL type * eliminate RPC/XDR dependency from raster library * libsim: * more control over seeding for random number generator ==== User Manuals - Documentation ==== * Various manual pages: new screenshots added, thanks to [https://grasswiki.osgeo.org/wiki/GRASS_GCI_Ideas_2017 Google Code-in] * G74:i.ortho.photo: new manual page ==== Message Translations ==== * Translations now managed in Transifex (please join and translate messages): https://www.transifex.com/grass-gis/grass72 ==== Dockerfile ==== * Updated, docker image e.g. available at https://hub.docker.com/r/neteler/grassgis7/ === New Addons since GRASS 7.2.0 === * G7A:d.explanation.plot: Draws a plot of multiple rasters to explain a raster operation for example a + b = c * G7A:i.in.probav: Imports PROBA-V NDVI data into a raster map with real NDVI data range * G7A:i.sentinel.download: Downloads Sentinel data from Copernicus Open Access Hub using sentinelsat library * G7A:i.sentinel.import: Imports Sentinel data downloaded from Copernicus Open Access Hub using G7A:i.sentinel.download * G7A:i.variance: Analyze variation of variance with variation of resolution * G7A:r.accumulate: Calculates weighted flow accumulation, stream networks, and the longest flow path using a flow direction map * G7A:r.clip: Extracts portion of the input map which overlaps with current region * G7A:r.colors.contrastbrightness: Changes the contrast/brightness of a raster * G7A:r.fill.gaps: Rapidly fills 'no data' cells (NULLs) of a raster map with interpolated values (IDW) (ported from GRASS6) * G7A:r.green.gshp.technical: Calculates the Ground Source Heat Pump technical potential using the ASHRAE method * G7A:r.green.gshp.theoretical: Calculates the Ground Source Heat Pump potential * G7A:r.green.hydro.planning: Calculates hydropower energy potential with user's recommendations (renamed from r.green.hydro) * G7A:r.gsflow.hydrodem: Creates hydrologically correct MODFLOW DEM from higher-res DEM * G7A:r.learn.ml: Supervised classification and regression of GRASS rasters using the python scikit-learn package (renamed from r.randomforest) * G7A:r.mblend: Blends two rasters of different spatial resolution * G7A:r.object.activelearning: Performs active learning for OBIA classification * G7A:r.object.spatialautocor: Calculates spatial autocorrelation of raster objects * ~~G7A:r.sim.water.mp: r.sim.water with openmp support~~ --> integrated in core GRASS GIS * G7A:r.spread.sod: Stochastic landscape spread model of forest pathogen - Sudden Oak Death (SOD) * ~~G7A:r.sun.mp: r.sun with openmp support~~ --> integrated in core GRASS GIS * G7A:t.rast.kappa: Calculates kappa parameter in a space time raster dataset * G7A:t.rast.what.aggr: Samples a space time raster dataset at specific vector point map returning aggregated values and writes the output to stdout or to attribute table * G7A:v.gsflow.export: Exports databse tables and pour point for GSFLOW input and control files * G7A:v.gsflow.gravres: Sets parameters for GSFLOW Hydrologic Response Units (HRUs) * G7A:v.gsflow.grid: Builds grid for the MODFLOW component of GSFLOW * G7A:v.gsflow.hruparams: Sets parameters for GSFLOW Hydrologic Response Units (HRUs) * G7A:v.gsflow.reaches: Builds stream "reaches" that link PRMS segments to MODFLOW cells * G7A:v.gsflow.segments: Prepares stream segments for PRMS and GSFLOW * G7A:v.net.curvedarcs: Draws curved arcs between points (e.g. flows) * G7A:v.stream.inbasin: Subsets a stream network into just one of its basins * G7A:v.stream.network: Builds a linked stream network: each link knows its downstream link * G7A:v.what.rast.multi: Uploads values of multiple rasters at positions of vector === Closed tickets === ==== Closed bugs since the last release ==== [[TicketQuery(status=closed&milestone=7.4.0&type=defect&resolution=fixed&order=priority)]] ==== Closed wishes since the last release ==== [[TicketQuery(status=closed&milestone=7.4.0&type=enhancement&resolution=fixed&order=priority)]]