Version 12 (modified by 5 years ago) ( diff ) | ,
---|
GRASS GIS 7.8.0
Table of Contents
A short summary of changes: 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:
Git Source Code
- Milestone: 7.8.0
- Release branch created in rXXXXX
- 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:...
Major module changes
(see also below for closed bugs)
- G78:...
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 asversion
andsvn_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:grass: major code refactoring
- G78:g.search.modules: support for installed addons added
- 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.py: added new channel stretch option; fixed rare possible bug in histogram matching algorithm and made all output maps integer CELL maps
- G78:i.pansharpen: updated i.pansharpen to handle pixel depths from 2-30 bits, and quashed some bugs
- 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.buildvrt: new virtual raster
- G78:r.compress: print which compression method is actually applied
- G78:r.compress: ZLIB is no longer the default compression method
- 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)
- G78:r.import: try to avoid failure after v.proj (see PR #24)
- G78:r.info -s: always report total number of cells
- G78:r.in.gdal: added info on subdatasets (relevant for MODIS, Sentinel, ... datasets)
- 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.mapcalc.simple: r.mapcalculator as r.mapcalc.simple
- 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: fix OGR extents
- G78:v.in.ogr: set spatial filter to correct geometry field if geom option is given
- G78:v.in.pdal: use PDAL streaming instead of PointView
- 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.overlay: speedup for large, complex input areas
- G78:v.patch: automagic cleaning of boundaries if areas have been patched
- G78:v.rast.stats: add where option
- G78:v.report: Add -d flag for geometries with no database recrods
- 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 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
- #2708
- Run GRASS with Python3
- #2751
- G_progress() does not support GRASS_MESSAGE_FORMAT=gui
- #3170
- GRASS_BATCH_JOB does not tolerate path with spaces
- #3339
- postgis topology: missing relations
- #3446
- GRASS python library is not working with python 3
- #3478
- g.extension does not work with bitbucket repo
- #3587
- Call to deprecated item in wxGUI
- #3635
- Suspicious use and cleanup of the mapset tempoary directory
- #3641
- python3/ctypes: ctypes.ArgumentError: argument 2: <type 'exceptions.TypeError'>: expected LP_struct_Cell_head instance instead of LP_struct_Cell_head
- #3644
- winGRASS7.7.svn: displaying raster causes: TypeError: environment can only contain strings
- #3649
- Cartographic composer: OK, pointer and pan buttons do not work
- #3662
- pygrass open vector fails in python3
- #3666
- wxGUI: Save to file in 3D mode fails with Unicode error
- #3673
- wxGUI: UnicodeEncodeError when querying vector map
- #3675
- g.gui.rlisetup: cannot create the configuration file
- #3681
- g.gui.tplot does not open
- #3682
- t.rast.algebra: Error wrong type of input
- #3704
- ctypes compilation error with Python-3.7
- #3720
- temporal modules fail with python 3
- #3723
- winGRASS7.7.svn - core.py - python 3 issues
- #3725
- all temporal modules produce WARNING:root:Needed to restart the libgis server
- #3727
- t.rast.aggregate fails with python3
- #3731
- winGRASS7.7.svn python3 build issues
- #3733
- winGRASS 7.7svn execute command fails
- #3734
- Location wizard on python 3 seems to be broken
- #3739
- lib/python/ctypes/ctypesgencore/parser/lextab.py changes after compilation.
- #3746
- Quouting of strings with white space in t.info breaks tests for temporal modules
- #3752
- g.gui.animation: TypeError: 'zip' object is not subscriptable
- #3753
- g.gui.tplot and g.gui.timeline: AttributeError: 'itertools.cycle' object has no attribute 'next'
- #3755
- error when saving workspace in python 3
- #3757
- Python3: range vs xrange
- #3777
- vector digitizer crashes with python 3
- #3797
- r.horizon suffix gets messed up in multi-direction mode
- #3798
- Python 3: gunittest multirunner.py crashes
- #3802
- grass77: g.proj compilation fails with proj 5.2.0
- #3803
- g.extension: Import requests for python3, too
- #3805
- Export vector map (table with column name, which is reserved PostgreSQL keyword) into the PostGIS database
- #3808
- "Next" button inactive in EPSG selection page of Location wizard
- #3814
- v.buffer: segfault in LL
- #3825
- Fix tests stalling with Python 3
- #3837
- OSGeo4W winGRASS77svn - startup error: TypeError: endswith first arg must be bytes or a tuple of bytes, not str
- #3861
- winGRASS master (git) - g.proj not found at startup
- #3872
- winGRASS Version: 7.7.dev - wrong german Umlaut in wxGUI
- #3894
- g.gui.animation fails to export animation with python3 error
- #3897
- d.mon errors when closing
- #3899
- g.gui.gmodeler: loading of modeller file broken with TypeError
Closed wishes since the last release
- #3491
- i.group cannot read from other mapsets
- #3669
- graphical modeler: export UI definitions into Python script
- #3719
- prepare OSGeo4W environment for winGRASS 7.8 with python 3
- #3738
- Make python version configurable on compilation time
- #3741
- t.rast.series: allow multiple methods/output
- #3792
- Use unique names on test modules
- #3844
- Make Region importable from pygrass.gis
- #3849
- Do we need to clear the screen when entering/exiting GRASS?