A short summary of changes: New features in GRASS 7.6


Stable Release

Release Candidate 1 (RC1)

SVN Source Code

  • Milestone: 7.6.0
  • Release branch created in r73210
  • SVN Checkout latest 7.6 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. Importantly, the new version is backward compatible to older 7.x releases.

The GRASS GIS 7.6.0 release provides more than XXX fixes and improvements with respect to the stable release 7.4.4.

New modules

Major module changes

(see also below for closed bugs)

  • G76:grass76 start script: add --tmp-location (based on patch from radeknovotny94 in #3537). Creates a location in program's tmp dir which is deleted at the end; meant for use with --exec, fix confusing message about missing WIND file fixed
  • G76:d.grid: use new GRASS API for coordinate transformation, use new PROJ 5+ API if available
  • G76:d.where: use new GRASS API for coordinate transformation, use new PROJ 5+ API if available
  • G76:g.gui.tplot: added capabilities to export plotted data in CSV file, to set x,y axis labels and title for the plot, added title,xlabel,ylabel support to command line, fixed bug with strds and csv output
  • G76:g.proj: use new GRASS API for coordinate transformation; use new PROJ 5+ API if available
  • G76:g.region: added pixel option, use new GRASS API for coordinate transformation, use new PROJ 5+ API if available
  • G76:g.version: use new PROJ 5+ API if available
  • G76:i.atcorr: fixed numerical instability, added example to process Sentinel bands, added PlanetScope? 0c-0d 0e 0f-10 support
  • G76:i.segment: fix for memory management estimation, avoid integer overflow with extremely large regions, fix writing out goodness of fit
  • G76:nviz: various openGL related fixes, use direct rendering; Indirect rendering disabled by default in modern Xorg (since 1.17?)
  • support for PROJ 5+ API if available
  • G76:r3.out.netcdf: adjust for PROJ 5+ API
  • G76:r.horizon: allow negative angles, use new PROJ 5+ API if available
  • G76:r.latlong: use new GRASS API for coordinate transformation, use new PROJ 5+ API if available
  • G76:r.proj: avoid longitude wrapping by PROJ, this is done by GRASS, use new GRASS API for coordinate transformation, +option for user-defined PROJ 5+ pipeline
  • G76:r.sun: use new GRASS API for coordinate transformation, use new PROJ 5+ API if available
  • G76:r.sunhours: use new GRASS API for coordinate transformation, use new PROJ 5+ API if available
  • G76:r.sunmask: use new GRASS API for coordinate transformation, use new PROJ 5+ API if available
  • G76:v.proj: use new GRASS API for coordinate transformation, +option for user-defined PROJ 5+ pipeline

Minor module changes

(see also below for closed bugs)

Improvements in the Graphical User Interface

  • wxGUI/dbmgr: don't show db info connection by default, it's just occupying space in the dialog
  • wxGUI: add settings to show comp. region extent, see #3519
  • wxGUI: catch also WindowsError? when unable to load GRASS libs
  • wxGUI: correctly delete layertree, see #3505
  • wxGUI/datacatalog: display layer on double click
  • wxGUI/datacatalog: remove map layer from layer tree on delete map
  • wxGUI/datacatalog: remove unused statement
  • wxGUI/datacatalog: simplify g.remove caller
  • wxGUI/datacatalog: zoom to first added map (sync with lmgr behaviour)
  • wxGUI/datatalog: fix standalone double click, see r72370
  • wxGUI/dbmgr: better handling of text values in SQLBuilder
  • wxGUI/dbmgr: fix sorting unicode issue
  • wxGUI/dbmgr: get sample/all values tuning
  • wxGUI/dbmgr: set busy cursor when soring values
  • wxGUI: etree takes only non-keyword arguments for parent and tag in Python 3
  • wxGUI: fix font dialog on mac, #3542
  • wxGUI: fix for wxPython 4, see #3621 (merge from trunk, r73404)
  • wxGUI: fix loading data to ListCtrl? with checkboxes for wxPython 4 (merged from trunk, r73233, r73472)
  • wxGUI: fix m.nviz.image command building
  • wxGUI: fix Phoenix compatibility
  • wxGUI: fix problem with Python addons not showing up on Windows, see #3177
  • wxGUI forms: improve gui dependencies logic, see #3619
  • wxGUI: GetClientSizeTuple?? is not anymore in wx4 (merge from trunk, r73323)
  • wxGUI/gmodeler: delete intermediate data when model finished
  • wxGUI/gmodeler: display data if model done
  • wxGUI/gmodeler: implement display data functionality (work in progress)
  • wxGUI/gmodeler: print command finished message
  • wxGUI/gmodeler: print model computation finished message
  • wxGUI/gmodeler: store display tag in model file
  • wxGUI: implement widget for SQL WHERE params
  • wxGUI/lmgr: add layer selection into giface
  • wxGUI: make wx.BusyInfo? compatible with wxPython 4
  • wxGUI: patch by sanjeet to fix warnings when using attribute manager with wxpython 4 - #3510
  • wxGUI/preferences: add new option for random colors (vector)
  • wxGUI/psmap: backport some wxPython4 changes from trunk
  • wxGUI/psmap: wxPython 4 compatibility (merged from trunk, r73463)
  • wxGUI/rdigit: fix raster digitizer toolbar on mac
  • wxGUI: replace deprecated checkbox event method, see #3570
  • wxGUI: revert accidently commited changes in r72626
  • wxGUI: set up default map display properties when new display is open
  • wxGUI: show computational region by default, see #3519
  • wxGUI/SqlWhereSelect: fix renaming issues
  • wxGUI/startup: file to separate GUI-dependent utils (now only db/loc/mapset setting)
  • wxGUI/startup: get the first possible grassdata match, not last (faster and more expected)
  • wxGUI/startup: lock filename and check in one function
  • wxGUI/startup: mapset and location remames as functions
  • wxGUI/startup: move delete mapset and location to separate functions
  • wxGUI/startup: move mapset creation core to an utils function
  • wxGUI/startup: move search for grassdata to package
  • wxGUI/startup: new mapset dialog as a separate class and reuse create mapset method
  • wxGUI/startup: no parameter for read_gisrc (forgotten self in r73175)
  • wxGUI/startup: obtaining version number as a function
  • wxGUI/startup: read_gisrc as a function
  • wxGUI/startup: read_gisrc as a GUI function (fixes r73175)
  • wxGUI/startup: window titles should use title case (plus doc)
  • wxGUI/timeline: don't use semitransparency
  • wxGUI/timeline: draw grid behind data
  • wxGUI/timeline: specify edgecolor to solve #3609
  • wxGUI: use simpler widget for MapsetSelect? to avoid wxWidgets bug #17771 on mac
  • wxGUI: wx4 doesn't have Image.GetHandlers?, fixes #3617

Python scripting

  • libpython: add tempname() function to grass.script.core, fix #3615
  • libpython added quiet option to write function
  • libpython added option in db_table_in_vector to check by default only vectors in current mapset
  • libpython: by default, no error output is produced even though the output in case of failure reads "Process ended with non-zero return code 1. See errors in the (error) output.", change default to cpature and report error output (backport trunk r73238)
  • pygrass: attempt to access data from a closed raster map now rises IndexError?
  • pygrass: add Module support to underscore in parameter's name
  • pygrass: Avoid to pass unicode to C functions in mapsets and location
  • pygrass: Category.init expects map name to be provided
  • pygrass: grid avoid to add a mapset if already present in the path
  • pygrass: grid: Fix doctest
  • pygrass: number_of() add support for boundaries and centroids (merge r73394 from trunk)
  • pygrass: Provide better error message when raster row index is out of range; Raise IndexError? (instead of fatal exit) when operating on a colsed map. This is a more Pyhtonic way.
  • pygrass: raster PEP8 cleanup
  • pygrass: shortcuts: Fix use of python reserved words
  • pygrass: fix wrongly reports lines for point vector maps, see #3549 (g76: merge r73393 from trunk)
  • python ctypes: add int64 to ctypes_type_map

Projection support

  • Support of PROJ v.5
    • configure: use new PROJ API only with proj-5.1.x or higher, otherwise fall back to old PROJ.4 API

Library changes

  • db driver ogr: fix handling of OFTInteger64
  • dbmibase: fix get/set connection parameters, clarify default and current parameters
  • libgis: update to lz4-1.8.2
  • libgis: use G_vasprintf() to avoid buffer overflow
  • libproj: +new GRASS API for coordinate transformation, use new PROJ 5+ API starting with proj-5.1.0 if available
  • libproj: support user-defined PROJ 5+ pipelines
  • libraster: ZSTD is now the default compression if available
  • libraster: +GRASS virtual raster (VRT)
  • libraster: update documentation for Map type ("raster", "reclass", "GDAL-link", or "virtual")
  • libsegment: + all in memory cache
  • libsegment: do not zero fill, use lseek in Segment_open()
  • libstats: init vars
  • libstats: sum of weights must be DCELL; fix regression t value
  • libogsf: Use framebuffer objects for off-screen GL rendering; Use Core OpenGL (CGL) for the MacOS instead of deprecated 32-bit only AGL (Fix #3600, #2114, #3606)
  • G76:grass-sqlite driver: fix default column length for declared column types
  • Vlib: change topology building messages to verbose messages, use grass_int64 for count of vertices
  • Vlib: fix for self-intersections in Vect_line_intersection2(): snap self-intersection only once
  • Vlib: fix self-intersections in Vect_line_intersection2()
  • Vlib: fix with_z = 0 for Vect_line_check_intersection2() and Vect_line_intersection2(), fixes #3567
  • Vlib: increase buffer to 4096 when copying files (sync to lib/gis/copy_dir.c)
  • Vlib: optimize snapping with box search instead of distance search
  • Vlib: print messages only when needed during topology building
  • Vlib: reduce dynamic fp representation error threshold
  • Vlib, Vect_merge_lines(): use correct line type in messages
  • temporal algebra: Added suffix option for time and granularity based raster map names
  • temporal algebra: Do not create the parsertab file when running the algebra
  • temporal library: eval support for, see #3264
  • temporal modules: Fixed tgis suffix function spell mistake
  • temporal python library: t.rast.algebra output basename is using leading zeros

User Manuals - Documentation


Docker support

  • Dockerfile: dependencies updated, cleanup, added ZSTD, liblas and OpenJPEG/JP2 support
  • Dockerfile: 'set ENV SHELL' to avoid /bin/sh fallback in interactive GRASS GIS sessions in docker

Message Translations

New Addons since GRASS 7.6.0

  • G7A:...
  • TODO

Closed tickets

Closed bugs since the last release

clean_temp: not safe for concurrent use
Drop or fix setting of Location and Mapset using environmental variables
Allow setting environment variables in grass startup script
t.rast.algebra WARNING: Couldn't create 'parsetab'. [Errno 13] Permission denied:
3D view mode not available: Reason: name '__int64' is not defined
g.region grow with negative number limited because of top and bottom
wxpython 4: fix warnings for Attribute Table Manager
i.atcorr: discrepancy in sensor band numbering in the manual
g.gui.timeline does not show granularity of time series
cannot click to check/uncheck accessible mapsets in g.mapsets
Mapset remains locked after switch to it and exit
pygrass GridModule: ERROR: Unable to open element file <windows>
Patch to fix spelling errors

Closed wishes since the last release

Add ceil and floor to r.mapcalc
d.vect with z height colors uses a random polygon point for height - patch to fix attached
r.slope.aspect: add -c option
t.rast.algebra output naming sheme
LZ4 when writing raster rows; better than double I/O bound r.mapcalc speed
r.watershed: better documentation for 'drainage' w/ MFD
r.out.gdal: add AUTHORITY node to the srs info of the exported raster
#3246 patch to support SRTM water bodies import (SWBD)
t.rast.algebra: add support for suffix option in output map names
Perceptual color tables
r.mapcalculator script for QGIS processing
#3466 check if column exists before running
v.rast.stats: avoid multiple rasterization when run on multiple raster maps
g.gui.tplot: add support to export time series values in a text file
Add functionalities –tmp-location and –no-clean
v.rast.stats: addition of null_cells count
Add XY location to grass command interface
Allow users to set the RNG seed in r.random
Two new functions for grass.script python lib
v.rast.stats: add where option

Last modified 7 hours ago Last modified on Jan 17, 2019 1:31:26 AM