wiki:Release/7.6.0-News

Version 16 (modified by neteler, 5 years ago) ( diff )

GRASS GIS 7.6.0RC1 released

GRASS GIS 7.6.0

NOTE: PLANNED RELEASE

A short summary of changes: New features in GRASS 7.6

Releases

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 https://svn.osgeo.org/grass/grass/branches/releasebranch_7_6
    

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.6.0 release provides more than XXX fixes and improvements with respect to the stable release 7.4.2.

New modules

  • G76:r.buildvrt: Build a VRT (Virtual Raster) from the list of input raster maps

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?)
  • G76:ps.map: 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)

  • doc/v.example: use std vector and db error handlers
  • G76:db.connect: use GRASS default, not current parameters as default answer, fix setting from default and from user options (see #3601)
  • G76:db.droptable: fatal -> warning if table not found, as for g.remove
  • G76:db.execute: check return code of db_execute_immediate() also for sql option
  • G76:d.vect with z height colors uses a random polygon point for height
  • G76:g.extension: fix debug message syntax
  • G76:g.mkfontcap: fix qsort callback (partial fix for #3564)
  • G76:i.colors.enhance: check for not existing maps
  • G76:i.group: add file option for a file with a list of raster maps
  • G76:i.maxlik: Correctly handle fully qualified output raster map names
  • G76:i.ortho.transform: do not overwrite transformed coordinates
  • G76:i.spectral: Add subgroup option
  • G76:i.vi: corrected MSAVI2 equation according to https://doi.org/10.1016/0034-4257(94)90134-1, see #3385
  • G76:r.buffer: fix integer overflow (fixes #3620)
  • G76:r.colors: add inferno, magma and plasma color tables
  • G76:r.colors and G76:r3.colors: new flag -d to list available rules with description (e.g. "srtm: color palette for Shuttle Radar Topography Mission elevation [range: -11000 to 8850]")
  • G76:r.contour: avoid tracing back of contour lines
  • G76:r.cost: fix direction output when using a solver and directions are degree
  • G76:r.cost: add option to control which direction is used in case of multiple directions with equal costs, avoid circular paths when using solver
  • G76:r.cross: code clean-up, explain NULL handling; create categories for output value 0, it is a valid result
  • G76:r.drain: Add a rule to avoid an exception from r.path, ignore values option if raster values are not used (no -c or -a flag)
  • G76:r.external: get real stats, not approximations for each band, write more metadata
  • G76:r.external.out, G76:r.out.gdal: add CRS EPSG code if available
  • G76:r.fillnulls: RST segmax/npmin logic is fixed to avoid segmentation on small holes
  • G76:r.import: remove hardcoded memory limit (r.in.gdal will take care), use auto-adjustment for lat/lon
  • G76:r.info: report Type of Map (raster, reclass, GDAL-link, virtual) also with -e flag
  • G76:r.info -s: always report total number of cells (backport trunk r73497)
  • G76:r.info: use grass_int64 and j length modifier for total cells and number of non-null cells
  • G76:r.in.gdal: fix column offset and column mapping when limiting import to the current region
  • G76:r.in.gdal, G76:r.external: add test if OGR spatial reference is NULL
  • G76:r.in.gdal, G76:v.in.ogr: +GDAL config and dataset open options (#3413)
  • G76:r.in.gdal: print only proj comparison when -j flag is given (r.in.gdal -j is mostly used in scripts)
  • G76:r.in.lidar: Trim option affects only trimmean method, fail if user atempts to use it with other metods.
  • G76:r.in.srtm: added support to SRTM SWBD, removed unzip dependencies, now it uses zipfile library
  • G76:r.li.shannon: fix segfault
  • G76:r.mapcalc: +ceil, +floor
  • G76:r.out.gdal: improve range checks for float and double
  • G76:r.path: avoid infinite loop for invalid start point
  • G76:r.path, G76:r.drain: accept multiple start coordinates
  • G76:r.random: add seed option to set the seed of the RNG
  • G76:r.random.surface: rename variable Surface to RSurface to avoid variable clash with GDAL on EPEL7 compilation
  • G76:r.series: allow weight = 0, preserve input type if possible
  • G76:r.slope.aspect: add -n flag to create aspect as degrees clockwise from North (azimuth), with flat = -9999 (like gdaldem); new -e flag to compute values at edges (like gdaldem -compute_edges)
  • G76:r.texture: Fatal error if one of the requested output maps exists
  • G76:r.tile: adjust cellhd of output tiles
  • G76:r.walk: add option to control which direction is used in case of multiple directions with equal costs, avoid circular paths when using solver
  • G76:r.watershed: prepare for multiple bitmask encoded directions, retention support for flow distribution
  • G76:r.what: fix if coords are just outside current region
  • G76:t.info: activate history printing
  • G76:t.rast.univar: added non-null cells
  • G76:v.buffer: use squared buffers around points when -s flag is set
  • G76:v.category: explain option=report (fixes #3643)
  • G76:v.colors: +flag to output color table type and value range (see #3077), add inferno, magma and plasma color tables
  • G76:v.db.addtable: create unique index
  • G76:v.db.dropcolumn: preserve field length for field type CHARACTER
  • G76:v.decimate: add attribute table to output (fixes #3541)
  • G76:v.distance: do not clear existing records if no nearest feature found, use default db connection of current mapset for new vector db connection
  • G76:v.external: disable GRASS-PostGIS driver
  • G76:v.external.out: add CRS EPSG code if available
  • G76:v.extract: add option to dissolve by attribute, preserving categories and attribute values
  • G76:v.in.ogr: avoid buffer overflow with long attributes (text), convert OSM line topology to GRASS topology for line crossings, fix segfault with wrong array index, improve OSM line topology conversion, use column type 'text' when appropriate
  • G76:v.in.ogr, G76:v.external: OGR dsn and GRASS db connections are independent of each other
  • G76:v.in.pdal: change API calls to PDAL 1.6.0, see #3496 and #2732
  • G76:v.lidar.correction: turn percent-related messages to be important (cosmetics)
  • G76:v.lidar.growing: uppercase message (sync with v.lidar.edgedetection)
  • G76:v.out.ogr: create and write a new feature only once to avoid duplicate fid's, check return of OGR_L_CreateFeature(), do not modify OGR dsn, add CRS EPSG code if available
  • G76:v.patch: ignore order of columns and only check name + type (fixes #3566)
  • G76:v.profile: Use GEOS for buffer generation due to errors in native buffering functions
  • G76:v.random: fix comparison between signed and unsigned integer expressions warnings (TODO: replace long with int64), restrict join attributes, see #3528, restrict wrong categories assigned, see #3524
  • G76:v.rast.stats: add number of NULL cells to method option, check for existence of attribute table before launching v.to.rast
  • G76:v.select: correct class/non-class methods, ws, naming (runs python -tt, full pep8, some pylint), improve processing speed, make it clear that 'overlap' is 'intersects' in GEOS, not 'overlaps', re-organize code to select features from vector map A by features from other vector map B (fixes #3361)
  • G76:v.to.db: check if column(s) exist before updating, includes check for correct column type, create column(s) of not existing, see #3466 (backport trunk r73236), double-quote strings to protect single quotes, as in v.in.ogr, fix compactness and fractal dimension (fixes #3102), +unit conversion for compactness
  • G76:v.to.rast: add support for centroids
  • G76:v.vect.stats: map label/description UI fix
  • G76:v.what.rast3: fix v.what.rast author's name
  • G76:v.what.vect: distance units are meters for ll

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 array.py: added quiet option to write function
  • libpython db.py: 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 t.info, 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

Portability

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

#613
clean_temp: not safe for concurrent use
#2251
highlight selected features and zoom - display not centered over the highlighted feature
#2679
Drop or fix setting of Location and Mapset using environmental variables
#2693
Error with SQLite path update after moving grass data
#3462
Allow setting environment variables in grass startup script
#3501
t.rast.algebra WARNING: Couldn't create 'parsetab'. [Errno 13] Permission denied:
#3506
3D view mode not available: Reason: name '__int64' is not defined
#3509
g.region grow with negative number limited because of top and bottom
#3510
wxpython 4: fix warnings for Attribute Table Manager
#3527
i.atcorr: discrepancy in sensor band numbering in the manual
#3609
g.gui.timeline does not show granularity of time series
#3629
cannot click to check/uncheck accessible mapsets in g.mapsets
#3631
Mapset remains locked after switch to it and exit
#3685
pygrass GridModule: ERROR: Unable to open element file <windows>
#3717
Patch to fix spelling errors

Closed wishes since the last release

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

Note: See TracWiki for help on using the wiki.