2022 article

OSGeo/grass: GRASS GIS 8.2.0

Landa, M., Neteler, M., Metz, M., Petrasova, A., Glynnc, HamishB, … Tawalika, C. (2022, June 3).

By: M. Landa*, M. Neteler*, M. Metz, A. Petrasova*, Glynnc, HamishB, V. Petras n, Huhabla ...

topics (OpenAlex):
Source: ORCID
Added: February 2, 2023

The GRASS GIS 8.2.0 release provides more than 225 improvements and fixes with respect to the release 8.0.0. <strong>What's Changed</strong><br> <em><strong>Highlights</strong></em> Parallel processing in r.series, r.patch, r.mfilter, and r.slope.aspect by @aaronsms<br> Single window graphical user interface from Settings &gt; Preferences &gt; General by @lindakladivova<br> A new map display settings dialog and status bar context menu by @lindakladivova<br> A new grass.jupyter package for interacting with Jupyter notebooks by @chaedri Binder<br> GridModule from grass.pygrass is easier and safer to use by @petrasovaa and @wenzeslaus<br> init from grass.script.setup now returns a context manager by @albertoparadisllop and @wenzeslaus<br> A JSON file with latest commit info is available for packaging and reproducibility purposes by @tmszi <strong><em>Modules</em></strong><br> Raster r.buildvrt: check if all input maps are NULL-only by @neteler in #2220<br> r.clump: fix clumping of FCELL/DCELL maps with threshold=0 by @metzm in #1792<br> r.colors: fix order of rules by @metzm in #2167<br> r.external: testsuite added by @neteler in #2291<br> r.geomorphon: combine profile parser rules to allow usage as pygrass module by @ninsbl in #2154<br> r.in.pdal: pass LasHeader::header by const ref by @nilason in #2277<br> r.mfilter: implement parallelization with OpenMP by @aaronsms in #1708<br> r.neighbors: implement parallelization with OpenMP by @aaronsms in #1724<br> r.object.geometry: Explicitly specify CELL type in r.in.ascii in test by @petrasovaa in #2265<br> r.object.geometry: fix msg typo and test script by @neteler in #1994<br> r.out.gdal: add offset/scale options by @landam in #1992<br> r.patch: implement parallelization with OpenMP by @aaronsms in #1782<br> r.quantile/r.stats.quantile/libstats: fix quantile algorithm by @metzm in #2108<br> r.random.cells: treat distance as minimum distance by @metzm in #1797<br> r.series: implement parallelization with OpenMP by @aaronsms in #1776<br> r.slope.aspect: implement parallelization with OpenMP by @aaronsms in #1767<br> r.stats.quantile: sync to r.quantile by @metzm in #2323<br> r.surf.random: double min max for DCELL and r.mapcalc-style random numbers by @wenzeslaus in #322<br> r.watershed: Keep 0 accumulation with -a as 0 as opposed to null by @HuidaeCho in #2169<br> r.watershed: Null accumulation outside elevation, 0 flow from null flow by @HuidaeCho in #2221 Vector v.distance: relax parser rules by @ninsbl in #2127<br> v.import: Fix wrong module mentioned in documentation by @agiudiceandrea in #2142<br> v.in.ogr: testsuite added by @neteler in #2292<br> v.out.ogr: Fix a typo and remove -z flag mention from warning messages by @agiudiceandrea in #1694<br> v.perturb: If vector map is 3D, preserve the z coordinate by @wenzeslaus in #1660<br> v.rast.stats: note about vector overlap limitation by @jfbourdon in #1730<br> v.to.db: fix option=query by @metzm in #2085 Imagery i.atcorr: Replace CRLF by LF in sensor CSVs by @wenzeslaus in #2149<br> i.spectral: show error message if one of the supported monitor isn't running by @tmszi in #1991<br> i.vi: Add Crust Index algorithm to i.vi by @YannChemin in #1997<br> i.vi: fix PVI formula by @pesekon2 in #1985<br> i.vi: fix formatting by @neteler in #2007<br> Rename g.bands to i.band.library and i.band to r.semantic.label by @marisn in #1983 Temporal and 3D raster r3.showdspf: Fix resource leak by @lbartoletti in #2295<br> t.rast.list: Add CSV, JSON, YAML outputs by @wenzeslaus in #2258<br> t.rast.mapcalc: transfer semantic label by @metzm in #2219<br> t.rast.neighbors: transfer semantic label by @metzm in #2218 Display d.background: Add module for setting display background color by @wenzeslaus in #2282<br> d.linegraph: Fix generate graph image if 'x_title', 'y_title' param arg isn't defined by @tmszi in #1978 General Add keyword parallel for parallelized modules by @petrasovaa in #2322<br> g.extension.all: Fix reinstall of multi-addons by @tmszi in #2082<br> g.extension: Disable multi-addon addon metadata check for addons which install only man page by @tmszi in #2090<br> g.extension: Fix get_addons_paths function json_file attribute by @tmszi in #2094<br> g.extension: Fix link generation in multi-addon man page for addons by @tmszi in #2097<br> g.extension: catch missing modules.xml error by @neteler in #2058<br> g.extension: fix make command on FreeBSD by @lbartoletti in #2075<br> g.extension: remove build_platform (only 64bit provided on MS Windows) by @landam in #2102<br> g.gisenv: Describe where the variables are stored in manual by @jidanni in #232<br> g.gui.timeline: fix annotation box by @petrasovaa in #2107<br> g.region: Add more detail into LL error messages by @wenzeslaus in #1988<br> g.region: Apply -a flag for n=, s=, w=, e= by @HuidaeCho in #1884<br> g.region: Fix setting from default region by @petrasovaa in #2397 <em><strong>Graphical User Interface</strong></em> wxGUI Single-Window: Focus the Console pane when console content has been changed by @lindakladivova in #2121<br> wxGUI Single-Window: Make Tools pane wider after startup by @lindakladivova in #2216<br> wxGUI/data: use watchdog to update tree when mapset is switched externally (cmdline) by @petrasovaa in #1174<br> wxGUI/digitizer: don't attempt to draw zero-length lines by @petrasovaa in #1989<br> wxGUI/gui_core: fix change opacity level dialog min/max size, widgets expand horizontally by @tmszi in #2067<br> wxGUI/gui_core: fix open map display overlay settings dialog by @tmszi in #2065<br> wxGUI/gui_core: fix right mouse click on the root tree node to invoke menu by @tmszi in #2119<br> wxGUI/location_wizard: make TextCtrl widgets horizontally growable by @tmszi in #2026<br> wxGUI/main_window: fix close map notebook page by @tmszi in #2072<br> wxGUI/mapdisp: it is also possible to remove the MASK interactively by @tmszi in #1176<br> wxGUI/preferences.py: fix loading default user settings by @tmszi in #2041<br> wxGUI/psmap: remove setpdfwrite on Windows by @ninsbl in #1961<br> wxGUI/toolbars: fix toolbar tools labels by @tmszi in #1147<br> wxGUI/xml/toolboxes.xml: add missing 'r.fill.stats' module item inside 'InterpolateSurfaces' toolbox by @tmszi in #1977<br> wxGUI/xml: add Raster digitizer tool among GUI tools toolbox items by @tmszi in #2125<br> wxGUI: Fix Location Wizard titles being cut off. by @ocsmit in #1774<br> wxGUI: Fix statusbar mode index for GetMode method by @lindakladivova in #2190<br> wxGUI: Fix the error when statusbar does know statusbarItem property "region" by @lindakladivova in #2106<br> wxGUI: Map display object has no attribute iconsize by @lindakladivova in #2021<br> wxGUI: Move SbMask widget to main window statusbar by @lindakladivova in #2089<br> wxGUI: Move statusbar checkboxes related to Map Display to a new Map Display Settings dialog by @lindakladivova in #2031<br> wxGUI: New toolbar icon for accessing Map Display settings dialog by @lindakladivova in #2214<br> wxGUI: Projection checkbox from Map Display statusbar moved to Map Display Settings by @lindakladivova in #2087<br> wxGUI: Statusbar settings as a part of Map Display Settings by @lindakladivova in #2153<br> wxGUI: Thread.setDaemon deprecated with Python 3.10 by @petrasovaa in #2145<br> wxGUI: Use Map Display settings in other Map Display applications by @lindakladivova in #2155<br> wxGUI: add single window to settings by @petrasovaa in #1810<br> wxGUI: do not import from pygrass on gui startup by @petrasovaa in #2202<br> wxGUI: fix 'SpinCtrl' widget size by @tmszi in #1339<br> wxGUI: fix saving and setting display position in workspace for multiple window layout by @petrasovaa in #2321<br> wxGUI: fix unexpected type float error with Python 3.10 by @petrasovaa in #2030<br> wxGUI: font size Python 3.10 fix by @petrasovaa in #2036<br> wxGUI: get rid of gradient in map display notebook tabs by @petrasovaa in #2071<br> wxGUI: lazy loading of C imagery functions in SignatureSelect by @petrasovaa in #2120<br> wxGUI: more Python 3.10 fixes by @petrasovaa in #2050<br> wxGUI: move datacatalog search below toolbar, make it stretch by @petrasovaa in #2207<br> wxGUI: new context menu for statusbar settings by @lindakladivova in #2251<br> wxGUI: refactoring: Map Display inheriting from wx.Panel by @lindakladivova in #1675<br> wxGUI: remove unnecessary printing of invalid map size by @petrasovaa in #2146<br> wxGUI: rename Modules tab to Tools tab, and Display tab to Layers tab by @lindakladivova in #1927<br> wxGUI: update statusbar when projection settings checkbox has been toggled by @lindakladivova in #2178<br> wxGUI: use basic top module notebook style on all platforms as default by @petrasovaa in #2063 <em><strong>Python</strong></em> Python: Increase minimum Python version to 3.7 by @wenzeslaus in #2241<br> grass.gunittest: Add config, timeout, more unique naming, update to new Python versions by @wenzeslaus in #2182 #2180 #2172 #2006 #2181 #2014<br> grass.jupyter: All grass.jupyter functionality unofficially included in from 8.0.0 is now released by @chaedri<br> grass.jupyter: Rename and restructure rendering classes @chaedri in #2208 #2015 #2305 #2306 #2312<br> grass.jupyter: Add time series visualizations by @chaedri in #2010<br> grass.jupyter: Generate API doc for Jupyter package by @wenzeslaus in #2284 #2200 #2307<br> grass.jupyter: Manage sessions and temporary data by @wenzeslaus in #1834 #2206 #2247<br> grass.jupyter: Add play widget for animation by @petrasovaa in #2318<br> grass.jupyter: Automatically determine render image dimensions based on region by @petrasovaa in #2285 #2301<br> grass.pygrass: Improve exception handling in Info.open (#1555) by @Viech in #1559<br> grass.pygrass: Make GridModule tile size optional by @petrasovaa in #2294<br> grass.pygrass: Use parallel r.patch in GridModule when overlap=0 to speed up patching tiles by @petrasovaa in #2249<br> grass.pygrass: Use unique tmp mapset names GridModule by @wenzeslaus in #1967<br> grass.script.array: rem