= GRASS GIS 7.8.0 = [[TOC]] A short summary of changes: '''[wiki:Grass7/NewFeatures78 New features in GRASS 7.8]''' === Releases === ==== Stable Release ==== * tbd ==== Release Candidate 1 (RC1) ==== * Release date: ''14 Aug 2019'' * Changelog: https://grass.osgeo.org/grass78/source/ChangeLog_7.8.0RC1.gz * Binaries: ​https://grass.osgeo.org/download/software/#g78x * Source code: * https://github.com/OSGeo/grass/releases/tag/7.8.0RC1 * https://grass.osgeo.org/grass78/source/grass-7.8.0RC1.tar.gz ([https://grass.osgeo.org/grass78/source/grass-7.8.0RC1.md5sum md5sum]) === Git Source Code === * Milestone: [milestone:"7.8.0"] * Release branch created on 4 Aug 2019 (GH d4879d4) * Git clone of latest 7.8 release branch (including yet unpublished bugfixes): {{{ git clone https://github.com/OSGeo/grass.git cd grass git checkout releasebranch_7_8 }}} === Overview of changes === The most important change is the new Python-3 support. Also new PROJ 6 and GDAL 2.5 with substantial changes in the API and CRS handling are supported. A series of new features and stability fixes, manual improvements, and a more language translations have been added. Importantly, the new version is backward compatible with older 7.x releases. The GRASS GIS 7.8.0 release provides '''more than XXX fixes and improvements''' with respect to the stable release 7.6.x. **Breaking news: Python 3 compatibility!** ==== New modules ==== * G78:... * parser: added --json output, useful for REST API output (needed e.g. for ​actinia) ==== Major module changes ==== (see also below for closed bugs) * G78:grass7: major code refactoring * G78:g.search.modules: support for installed addons added * G78:i.pansharpen: updated i.pansharpen to handle pixel depths from 2-30 bits, and quashed some bugs * G78:r.compress: ZLIB is no longer the default compression method but ZSTD * G78:r.in.gdal: added info on subdatasets (relevant for MODIS, Sentinel, ... datasets) * G78:r.mapcalc.simple: r.mapcalculator as r.mapcalc.simple * 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 ==== Minor module changes ==== (see also below for closed bugs) Start script: * G78:grass: stop clearing the terminal upon closing; shorten GRASS prompt; do not require dev pkg to be installed for path `grass --config path` as well as `version` and `svn_revision`. Note that revision is currently broken due to Subversion to Git migration. Modules: * G78:d.barscale: font support added (PR #72) * G78:d.northarrow: font, path and charset parameters added * G78:g.extension: enforce change to python3 during installation of Addon * G78:g.extension: fix bitbucket download, assumes master branch; fixed incomplete updating addon metadata file * G78:g.extension: update base_url to current winGRASS server layout (PR #68) * G78:g.parser: added --json output, useful for REST API * G78:g.proj: error handling with PROJ 6 added * G78:g.proj: list_codes to list codes for given authority, compatible with PROJ 4, 5, 6 * G78:g.proj: need GRASS_PROJSHARE to list codes with PROJ 4 * G78:grass: added --config svn_revision * G78:grass: add powershell shell support * G78:grass: browser = xdg-open as fallback; no browser message spam in batch jobs * G78:grass: clean up sqlite DB if existing upon session closing * G78:i.atcorr: Worldview4 filter functions added * G78:i.gensig: skip NULL cells when calculating variance * G78:i.group: Allow listing group and subgroup contents also for groups from other mapsets * G78:i.pansharpen: added new channel stretch option; fixed rare possible bug in histogram matching algorithm and made all output maps integer CELL maps * G78:i.segment: avoid integer overflow with extremely large regions * G78:i.tasscap: add support for Sentinel-2 * G78:i.vi: NDWI index added (Normalized Difference Water Index) * G78:m.nviz.script: fix memory leaks,fix compiler warnings + coverity scan * G78:r3.out.vtk: improved error message when output cannot be written * G78:r.compress: print which compression method is actually applied * G78:r.contour: fix broken contour lines; clean contour lines tracing back on themselves * G78:r.fillnulls: added memory parameter for internal r.resamp.bspline call (speed-up); do not fail hard if input map has no holes * G78:r.horizon: check if coordinates are within the current region * G78:r.import: remove hardcoded memory limit (r.in.gdal will take care); try to avoid failure after v.proj (see PR #24) * G78:r.info -s: always report total number of cells * G78:r.in.wms: add proxy for GDAL driver; catch incorrect WMS url input; new -b flag to keep original bands * G78:r.li: fix segfault in r.li.shannon * G78:r.out.mpeg: fix fail because the output file name is empty * G78:r.plane: added function float_or_dms * G78:r.random.cells: use G_drand48() * G78:r.random.surface: use G_drand48() * G78:r.slope.aspect: fix window alignment to input raster * G78:r.sun: fix error when using both lat and lon raster * G78:r.thin: avoid integer overflow * G78:r.univar: report stats with nan if a given zone has only NULL values * G78:r.walk: add option nearest from r.cost * G78:r.watershed: multiple flow direction output * G78:v.buffer: added test for zero distance * G78:v.distance: improve iterative search; speed improvement for small dmax * G78:v.external: enable GRASS-internal PostGIS driver again * G78:v.generalize: preserve boundary categories * G78:v.in.geonames: read as UTF8 * G78:v.in.ogr: disable unreliable OGR extents for spatial filter * G78:v.in.ogr: set spatial filter to correct geometry field if geom option is given * G78:v.mkgrid: new -d flag to add diagonals to rectangular lines * G78:v.out.postgis: document a bug, output option is ignored for attributes * G78:v.rast.stats: add where option * G78:v.report: Add -d flag for geometries with no database records * G78:v.report: added -c flag to avoid column names in output * G78:v.to.points: new option use=start/end * G78:v.to.rast: do not create raster categories if vector categories are used as cell values because 1. Rast_set_cat() is terribly slow for many categories, 2. this information is redundant (1: 1 etc is not informative) * G78:v.voronoi: fix for area skeletons and voronoi diagrams for areas. Numerical stability of v.voronoi has been improved but is not perfect. ==== Improvements in the Graphical User Interface ==== * wxGUI data catalog: allow to perform actions on multiple layers (e.g. deleting, moving, reprojection, display, metadata) * wxGUI/digitizer: fixes for Python 3 * wxGUI: add function to LM interface to programmatically change layer * wxGUI: add !GeoPackage as known raster/vector format * wxGUI: fix setting non-ascii display name * wxGUI/psmap: wxPython 4 compatibility * wxGUI: use g.proj list_codes=EPSG to read EPSG codes ==== Python scripting ==== * all python scripts: change Python shebang to python3 (PR #75, #82) * pygrass: fixing doctests (only for Python 3) * pygrass.gis: make region importable from grass.pygrass.gis * pythonlib: fix encoding ==== Projection support ==== * libproj: code clean-up; PROJ5: EPSG must lowercase epsg, PROJ6+: EPSG must uppercase EPSG ==== Database support ==== * postgres driver: create index if not exists for PG server versions 9.5+ ==== Library changes ==== * configure, configure.in: configure with ZSTD by default, can be disabled with --with-zstd=no * ctypes: delete lib/python/ctypes/ctypesgencore/parser/lextab.py (#95)- since lextab.py is auto-generated * libpython: float_or_dms accept E,W,N,S * libraster: add support for GDAL 2.4 on MS Windows * libraster: fsync data files before closing, and capture any errors; sync_and_close() null file; no fsync check for corrupt raster data on Windows * libsegment: fix for all-in-memory cache * libvector: support reserved PostgreSQL keywords as column name by quoting when exporting vector map to PostGIS database; Vect_cidx_find_all() should not allow mixing GV_AREA with other geometries * parser: added --json output, useful for REST API output (needed e.g. for [https://github.com/mundialis/actinia_core/ actinia]) * Vlib: adjust dynamic floating point representation error for squared distances * Vlib: fix fp error in Vect_segment_intersection() ==== Unit tests / CI ==== * testsuite/examples/test_framework_GRASS_GIS_with_NC.sh: major cleanup * various modules: test added and respective testsuites cleaned up * Travis-CI: enable ccache for faster builds * Codecov: Attempt to add Codecov support for automated source code quality checks (https://codecov.io/gh/OSGeo/grass) ==== User Manuals - Documentation ==== * various manual pages: examples added/updated ==== Portability ==== * Python-3 support implemented across the tree ==== Docker support ==== * Various docker images listed at: https://grass.osgeo.org/download/software/docker-images/ * Dockerfile: updated to Python 3 ==== Message Translations ==== * i18N: added new translations from Transifex (https://www.transifex.com/grass-gis/grass7/dashboard/) * i18N: cleanup gettext usage for Python code === New Addons since GRASS 7.6.0 === * G7A:... === Closed tickets === ==== Closed bugs since the last release ==== [[TicketQuery(status=closed&milestone=7.8.0&type=defect&resolution=fixed&order=priority)]] ==== Closed wishes since the last release ==== [[TicketQuery(status=closed&milestone=7.8.0&type=enhancement&resolution=fixed&order=priority)]]