|
@@ -2,7 +2,7 @@
|
|
|
|
|
|
<h2>SYNOPSIS</h2>
|
|
<h2>SYNOPSIS</h2>
|
|
|
|
|
|
-<b>grass79</b> [<b>-h</b> | <b>-help</b> | <b>--help</b>] [<b>-v</b> | <b>--version</b>] |
|
|
|
|
|
|
+<b>grass</b> [<b>-h</b> | <b>-help</b> | <b>--help</b>] [<b>-v</b> | <b>--version</b>] |
|
|
[<b>-c</b> | <b>-c geofile</b> | <b>-c EPSG:code[:datum_trans]</b>] | <b>-e</b> | <b>-f</b> |
|
|
[<b>-c</b> | <b>-c geofile</b> | <b>-c EPSG:code[:datum_trans]</b>] | <b>-e</b> | <b>-f</b> |
|
|
[<b>--text</b> | <b>--gtext</b> | <b>--gui</b>] | <b>--config</b> |
|
|
[<b>--text</b> | <b>--gtext</b> | <b>--gui</b>] | <b>--config</b> |
|
|
[<b>--tmp-location</b> | <b>--tmp-mapset</b>]
|
|
[<b>--tmp-location</b> | <b>--tmp-mapset</b>]
|
|
@@ -101,13 +101,13 @@ user interface, as well as the desired mapset to work on.
|
|
|
|
|
|
<p>The startup program will remember both the desired user interface
|
|
<p>The startup program will remember both the desired user interface
|
|
and mapset. Thus, the next time the user runs GRASS, typing
|
|
and mapset. Thus, the next time the user runs GRASS, typing
|
|
-<em>grass79</em> (without any options) will start GRASS with the
|
|
|
|
|
|
+<em>grass</em> (without any options) will start GRASS with the
|
|
previous settings for the user interface and mapset selected.
|
|
previous settings for the user interface and mapset selected.
|
|
|
|
|
|
<p>If you specify a graphical user interface (<b>--gui</b>)
|
|
<p>If you specify a graphical user interface (<b>--gui</b>)
|
|
-the <em>grass79</em> program will try to verify that the system you
|
|
|
|
|
|
+the <em>grass</em> program will try to verify that the system you
|
|
specified exists and that you can access it successfully. If any of
|
|
specified exists and that you can access it successfully. If any of
|
|
-these checks fail then <em>grass79</em> will automatically switch back
|
|
|
|
|
|
+these checks fail then <em>grass</em> will automatically switch back
|
|
to the text user interface mode.
|
|
to the text user interface mode.
|
|
|
|
|
|
<h2>FLAGS</h2>
|
|
<h2>FLAGS</h2>
|
|
@@ -120,10 +120,10 @@ version parameters, with the options:
|
|
<li><b>build</b>: (e.g., <tt>./configure --with-cxx --enable-largefile --with-proj [...]</tt>)</li>
|
|
<li><b>build</b>: (e.g., <tt>./configure --with-cxx --enable-largefile --with-proj [...]</tt>)</li>
|
|
<li><b>compiler</b>: (e.g., <tt>gcc</tt>)</li>
|
|
<li><b>compiler</b>: (e.g., <tt>gcc</tt>)</li>
|
|
<li><b>date</b>: (e.g., <tt>Tue Mar 31 20:34:57 2020 +0200</tt>)</li>
|
|
<li><b>date</b>: (e.g., <tt>Tue Mar 31 20:34:57 2020 +0200</tt>)</li>
|
|
-<li><b>path</b>: (e.g., <tt>/usr/lib64/grass79</tt>)</li>
|
|
|
|
|
|
+<li><b>path</b>: (e.g., <tt>/usr/lib64/grass</tt>)</li>
|
|
<li><b>revision</b>: (e.g., <tt>745ee7ec9</tt>)</li>
|
|
<li><b>revision</b>: (e.g., <tt>745ee7ec9</tt>)</li>
|
|
<li><b>svn_revision</b>: (e.g., <tt>062bffc8</tt>)</li>
|
|
<li><b>svn_revision</b>: (e.g., <tt>062bffc8</tt>)</li>
|
|
-<li><b>version</b>: (e.g., <tt>7.9.dev</tt>)</li>
|
|
|
|
|
|
+<li><b>version</b>: (e.g., <tt>8.0.0dev</tt>)</li>
|
|
</ul>
|
|
</ul>
|
|
|
|
|
|
|
|
|
|
@@ -145,7 +145,7 @@ assist with automation and customization. Most users will not need to
|
|
bother with these.
|
|
bother with these.
|
|
|
|
|
|
<p>In addition to these shell environment variables GRASS maintains a
|
|
<p>In addition to these shell environment variables GRASS maintains a
|
|
-number of GIS environment variables in the <tt>$HOME/.grass7/rc</tt>
|
|
|
|
|
|
+number of GIS environment variables in the <tt>$HOME/.grass8/rc</tt>
|
|
file. User changes to this file will be read during the next startup
|
|
file. User changes to this file will be read during the next startup
|
|
of GRASS. If this file becomes corrupted the user may edit it by hand
|
|
of GRASS. If this file becomes corrupted the user may edit it by hand
|
|
or remove it to start afresh. See the list
|
|
or remove it to start afresh. See the list
|
|
@@ -160,20 +160,20 @@ propagate).
|
|
|
|
|
|
<h3>User Interface Environment Variable</h3>
|
|
<h3>User Interface Environment Variable</h3>
|
|
|
|
|
|
-<p>The <em>grass79</em> program will check for the existence of an
|
|
|
|
|
|
+<p>The <em>grass</em> program will check for the existence of an
|
|
environment variable called GRASS_GUI which indicates the type of user
|
|
environment variable called GRASS_GUI which indicates the type of user
|
|
interface for GRASS to use. If this variable is not set
|
|
interface for GRASS to use. If this variable is not set
|
|
-when <em>grass79</em> is run, then it will be created and then saved
|
|
|
|
-in the <tt>$HOME/.grass7/rc</tt> file for the next time GRASS is
|
|
|
|
|
|
+when <em>grass</em> is run, then it will be created and then saved
|
|
|
|
+in the <tt>$HOME/.grass8/rc</tt> file for the next time GRASS is
|
|
run. It can be set to <tt>text</tt>, <tt>gtext</tt> or <tt>gui</tt>.
|
|
run. It can be set to <tt>text</tt>, <tt>gtext</tt> or <tt>gui</tt>.
|
|
|
|
|
|
-<p>There is an order of precedence in the way <em>grass79</em>
|
|
|
|
|
|
+<p>There is an order of precedence in the way <em>grass</em>
|
|
determines the user interface to use. The following is the hierarchy
|
|
determines the user interface to use. The following is the hierarchy
|
|
from highest precedence to lowest.
|
|
from highest precedence to lowest.
|
|
<ol>
|
|
<ol>
|
|
<li>Command line argument
|
|
<li>Command line argument
|
|
<li>Environment variable GRASS_GUI
|
|
<li>Environment variable GRASS_GUI
|
|
- <li>Value set in <tt>$HOME/.grass7/rc</tt> (GUI)
|
|
|
|
|
|
+ <li>Value set in <tt>$HOME/.grass8/rc</tt> (GUI)
|
|
<li>Default value - <tt>gui</tt>
|
|
<li>Default value - <tt>gui</tt>
|
|
</ol>
|
|
</ol>
|
|
|
|
|
|
@@ -184,12 +184,12 @@ interface, then the GRASS_PYTHON environment variable can be used to
|
|
override your system default <tt>python</tt> command.
|
|
override your system default <tt>python</tt> command.
|
|
|
|
|
|
<p>Suppose for example your system has Python 3.6 installed and you
|
|
<p>Suppose for example your system has Python 3.6 installed and you
|
|
-install a personal version of the Python 3.7 binaries
|
|
|
|
|
|
+install a personal version of the Python 3.8 binaries
|
|
under <tt>$HOME/bin</tt>. You can use the above variables to have
|
|
under <tt>$HOME/bin</tt>. You can use the above variables to have
|
|
-GRASS use the Python 3.7 binaries instead.
|
|
|
|
|
|
+GRASS use the Python 3.8 binaries instead.
|
|
|
|
|
|
<div class="code"><pre>
|
|
<div class="code"><pre>
|
|
- GRASS_PYTHON=python3.7
|
|
|
|
|
|
+ GRASS_PYTHON=python3.8
|
|
</pre></div>
|
|
</pre></div>
|
|
|
|
|
|
<h3>Addon Path to Extra User Scripts</h3>
|
|
<h3>Addon Path to Extra User Scripts</h3>
|
|
@@ -221,8 +221,8 @@ modules which are not distributed with the standard GRASS release.
|
|
path environment.
|
|
path environment.
|
|
|
|
|
|
<p>If not defined by user, this variable is set by GRASS startup program
|
|
<p>If not defined by user, this variable is set by GRASS startup program
|
|
-to <tt>$HOME/.grass7/addons</tt> on GNU/Linux
|
|
|
|
-and <tt>$APPDATA\GRASS7\addons</tt> on MS Windows.
|
|
|
|
|
|
+to <tt>$HOME/.grass8/addons</tt> on GNU/Linux
|
|
|
|
+and <tt>%APPDATA%\Roaming\GRASS8\addons</tt> on MS Windows.
|
|
|
|
|
|
<h3>HTML Browser Variable</h3>
|
|
<h3>HTML Browser Variable</h3>
|
|
|
|
|
|
@@ -243,49 +243,49 @@ script. The script file must have its executable bit set.
|
|
<p>The following are some examples of how you could start GRASS
|
|
<p>The following are some examples of how you could start GRASS
|
|
|
|
|
|
<dl>
|
|
<dl>
|
|
-<dt><b>grass79</b>
|
|
|
|
|
|
+<dt><b>grass</b>
|
|
<dd> Start GRASS using the default user interface. The user will be
|
|
<dd> Start GRASS using the default user interface. The user will be
|
|
prompted to choose the appropriate location and mapset.
|
|
prompted to choose the appropriate location and mapset.
|
|
|
|
|
|
-<dt><b>grass79 --gui</b>
|
|
|
|
|
|
+<dt><b>grass --gui</b>
|
|
<dd> Start GRASS using the graphical user interface. The user will be
|
|
<dd> Start GRASS using the graphical user interface. The user will be
|
|
prompted to choose the appropriate location and mapset.
|
|
prompted to choose the appropriate location and mapset.
|
|
|
|
|
|
-<dt><b>grass79 --text</b>
|
|
|
|
|
|
+<dt><b>grass --text</b>
|
|
<dd> Start GRASS using the text-based user interface. Appropriate
|
|
<dd> Start GRASS using the text-based user interface. Appropriate
|
|
location and mapset must be set by environmental variables (see
|
|
location and mapset must be set by environmental variables (see
|
|
examples below) otherwise taken from the last GRASS session.</dd>
|
|
examples below) otherwise taken from the last GRASS session.</dd>
|
|
|
|
|
|
-<dt><b>grass79 --gtext</b>
|
|
|
|
|
|
+<dt><b>grass --gtext</b>
|
|
<dd> Start GRASS using the text-based user interface. The user will be
|
|
<dd> Start GRASS using the text-based user interface. The user will be
|
|
prompted to choose the appropriate location and mapset.
|
|
prompted to choose the appropriate location and mapset.
|
|
|
|
|
|
-<dt><b>grass79 $HOME/grassdata/spearfish70/user1</b>
|
|
|
|
|
|
+<dt><b>grass $HOME/grassdata/spearfish70/user1</b>
|
|
<dd> Start GRASS using the default user interface and automatically
|
|
<dd> Start GRASS using the default user interface and automatically
|
|
launch into the given mapset, bypassing the mapset selection menu.
|
|
launch into the given mapset, bypassing the mapset selection menu.
|
|
|
|
|
|
-<dt><b>grass79 --gui -</b>
|
|
|
|
|
|
+<dt><b>grass --gui -</b>
|
|
<dd> Start GRASS using the graphical user interface and try to
|
|
<dd> Start GRASS using the graphical user interface and try to
|
|
obtain the location and mapset from environment variables.
|
|
obtain the location and mapset from environment variables.
|
|
|
|
|
|
-<dt><b>grass79 -c EPSG:4326 $HOME/grassdata/mylocation</b>
|
|
|
|
|
|
+<dt><b>grass -c EPSG:4326 $HOME/grassdata/mylocation</b>
|
|
<dd> Creates a new GRASS location with EPSG code 4326 (latitude-longitude, WGS84)
|
|
<dd> Creates a new GRASS location with EPSG code 4326 (latitude-longitude, WGS84)
|
|
in the specified GISDBASE
|
|
in the specified GISDBASE
|
|
|
|
|
|
-<dt><b>grass79 -c EPSG:5514:3 $HOME/grassdata/mylocation</b>
|
|
|
|
|
|
+<dt><b>grass -c EPSG:5514:3 $HOME/grassdata/mylocation</b>
|
|
<dd> Creates a new GRASS location with EPSG code 5514 (S-JTSK / Krovak
|
|
<dd> Creates a new GRASS location with EPSG code 5514 (S-JTSK / Krovak
|
|
East North - SJTSK) with datum transformation parameters used in
|
|
East North - SJTSK) with datum transformation parameters used in
|
|
Czech Republic in the specified GISDBASE
|
|
Czech Republic in the specified GISDBASE
|
|
|
|
|
|
-<dt><b>grass79 -c XY $HOME/grassdata/gnomonic --exec g.proj -c proj4='+proj=gnom +lat_0=90 +lon_0=-50'</b>
|
|
|
|
|
|
+<dt><b>grass -c XY $HOME/grassdata/gnomonic --exec g.proj -c proj4='+proj=gnom +lat_0=90 +lon_0=-50'</b>
|
|
<dd> Creates a new GRASS location from PROJ definition string
|
|
<dd> Creates a new GRASS location from PROJ definition string
|
|
(here: <a href="https://proj4.org/operations/projections/gnom.html">gnomonic</a>)
|
|
(here: <a href="https://proj4.org/operations/projections/gnom.html">gnomonic</a>)
|
|
in the specified GISDBASE
|
|
in the specified GISDBASE
|
|
|
|
|
|
-<dt><b>grass79 -c myvector.shp $HOME/grassdata/mylocation</b>
|
|
|
|
|
|
+<dt><b>grass -c myvector.shp $HOME/grassdata/mylocation</b>
|
|
<dd> Creates a new GRASS location based on georeferenced Shapefile
|
|
<dd> Creates a new GRASS location based on georeferenced Shapefile
|
|
|
|
|
|
-<dt><b>grass79 -c myraster.tif $HOME/grassdata/mylocation</b>
|
|
|
|
|
|
+<dt><b>grass -c myraster.tif $HOME/grassdata/mylocation</b>
|
|
<dd> Creates a new GRASS location based on georeferenced GeoTIFF file
|
|
<dd> Creates a new GRASS location based on georeferenced GeoTIFF file
|
|
</dl>
|
|
</dl>
|
|
|
|
|
|
@@ -302,26 +302,26 @@ Creating a new Location based on a geodata file's projection (<b>-c</b>)
|
|
and exit (<b>-e</b>) immediately:
|
|
and exit (<b>-e</b>) immediately:
|
|
|
|
|
|
<div class="code"><pre>
|
|
<div class="code"><pre>
|
|
-grass79 -c elevation.tiff -e /path/to/grassdata/test1/
|
|
|
|
|
|
+grass -c elevation.tiff -e /path/to/grassdata/test1/
|
|
</pre></div>
|
|
</pre></div>
|
|
|
|
|
|
Linking external raster data to PERMANENT Mapset:
|
|
Linking external raster data to PERMANENT Mapset:
|
|
|
|
|
|
<div class="code"><pre>
|
|
<div class="code"><pre>
|
|
-grass79 /path/to/grassdata/test1/PERMANENT/ --exec r.external input=basins.tiff output=basins
|
|
|
|
-grass79 /path/to/grassdata/test1/PERMANENT/ --exec r.external input=elevation.tiff output=elevation
|
|
|
|
|
|
+grass /path/to/grassdata/test1/PERMANENT/ --exec r.external input=basins.tiff output=basins
|
|
|
|
+grass /path/to/grassdata/test1/PERMANENT/ --exec r.external input=elevation.tiff output=elevation
|
|
</pre></div>
|
|
</pre></div>
|
|
|
|
|
|
Get statistics for one raster map:
|
|
Get statistics for one raster map:
|
|
|
|
|
|
<div class="code"><pre>
|
|
<div class="code"><pre>
|
|
-grass79 /path/to/grassdata/test1/PERMANENT/ --exec r.univar map=elevation
|
|
|
|
|
|
+grass /path/to/grassdata/test1/PERMANENT/ --exec r.univar map=elevation
|
|
</pre></div>
|
|
</pre></div>
|
|
|
|
|
|
Compare the rasters visually:
|
|
Compare the rasters visually:
|
|
|
|
|
|
<div class="code"><pre>
|
|
<div class="code"><pre>
|
|
-grass79 /path/to/grassdata/test1/PERMANENT/ --exec g.gui.mapswipe first=elevation second=basins
|
|
|
|
|
|
+grass /path/to/grassdata/test1/PERMANENT/ --exec g.gui.mapswipe first=elevation second=basins
|
|
</pre></div>
|
|
</pre></div>
|
|
|
|
|
|
<h4>Execution of shell and Python scripts instead of single commands</h4>
|
|
<h4>Execution of shell and Python scripts instead of single commands</h4>
|
|
@@ -332,7 +332,7 @@ exec interface.
|
|
<b>Shell script example:</b> the command to execute a shell script might be:
|
|
<b>Shell script example:</b> the command to execute a shell script might be:
|
|
|
|
|
|
<div class="code"><pre>
|
|
<div class="code"><pre>
|
|
-grass79 /path/to/grassdata/test1/PERMANENT/ --exec sh test.sh
|
|
|
|
|
|
+grass /path/to/grassdata/test1/PERMANENT/ --exec sh test.sh
|
|
</pre></div>
|
|
</pre></div>
|
|
|
|
|
|
A very simple bash script ("test.sh") may look like this:
|
|
A very simple bash script ("test.sh") may look like this:
|
|
@@ -349,7 +349,7 @@ r.info elevation
|
|
<b>Python script example:</b> the command to execute a Python script might be:
|
|
<b>Python script example:</b> the command to execute a Python script might be:
|
|
|
|
|
|
<div class="code"><pre>
|
|
<div class="code"><pre>
|
|
-grass79 /path/to/grassdata/test1/PERMANENT/ --exec python test.py
|
|
|
|
|
|
+grass /path/to/grassdata/test1/PERMANENT/ --exec python test.py
|
|
</pre></div>
|
|
</pre></div>
|
|
|
|
|
|
A very simple Python script ("test.py") may look like this:
|
|
A very simple Python script ("test.py") may look like this:
|
|
@@ -361,7 +361,7 @@ A very simple Python script ("test.py") may look like this:
|
|
import grass.script as gs
|
|
import grass.script as gs
|
|
import grass.script.setup as gsetup
|
|
import grass.script.setup as gsetup
|
|
|
|
|
|
-gs.message('Current GRASS GIS 7 environment:')
|
|
|
|
|
|
+gs.message('Current GRASS GIS 8 environment:')
|
|
print(gs.gisenv())
|
|
print(gs.gisenv())
|
|
|
|
|
|
gs.message('Available raster maps:')
|
|
gs.message('Available raster maps:')
|
|
@@ -380,19 +380,19 @@ projection coordinate reference system (CRS) and simultaneously starting
|
|
computation in a shell script:
|
|
computation in a shell script:
|
|
|
|
|
|
<div class="code"><pre>
|
|
<div class="code"><pre>
|
|
-grass79 --tmp-location elevation.tiff --exec test.sh
|
|
|
|
|
|
+grass --tmp-location elevation.tiff --exec test.sh
|
|
</pre></div>
|
|
</pre></div>
|
|
|
|
|
|
The same, but using an EPSG code and a Python script:
|
|
The same, but using an EPSG code and a Python script:
|
|
|
|
|
|
<div class="code"><pre>
|
|
<div class="code"><pre>
|
|
-grass79 --tmp-location EPSG:3358 --exec test.py
|
|
|
|
|
|
+grass --tmp-location EPSG:3358 --exec test.py
|
|
</pre></div>
|
|
</pre></div>
|
|
|
|
|
|
Finally, for special cases, we can create an XY location without any CRS:
|
|
Finally, for special cases, we can create an XY location without any CRS:
|
|
|
|
|
|
<div class="code"><pre>
|
|
<div class="code"><pre>
|
|
-grass79 --tmp-location XY --exec test.py
|
|
|
|
|
|
+grass --tmp-location XY --exec test.py
|
|
</pre></div>
|
|
</pre></div>
|
|
|
|
|
|
Temporary location is automatically deleted after computation,
|
|
Temporary location is automatically deleted after computation,
|
|
@@ -404,14 +404,14 @@ A single command can be also executed, e.g. to examine properties of the
|
|
temporary location:
|
|
temporary location:
|
|
|
|
|
|
<div class="code"><pre>
|
|
<div class="code"><pre>
|
|
-grass79 --tmp-location EPSG:3358 --exec g.proj -p
|
|
|
|
|
|
+grass --tmp-location EPSG:3358 --exec g.proj -p
|
|
</pre></div>
|
|
</pre></div>
|
|
|
|
|
|
A temporary XY location with single command is useful, e.g. to show
|
|
A temporary XY location with single command is useful, e.g. to show
|
|
help text of a module:
|
|
help text of a module:
|
|
|
|
|
|
<div class="code"><pre>
|
|
<div class="code"><pre>
|
|
-grass79 --tmp-location XY --exec r.neighbors --help
|
|
|
|
|
|
+grass --tmp-location XY --exec r.neighbors --help
|
|
</pre></div>
|
|
</pre></div>
|
|
|
|
|
|
|
|
|
|
@@ -422,13 +422,13 @@ A single command can be executed, e.g., to examine properties of a
|
|
location (here using the NC SPM sample location):
|
|
location (here using the NC SPM sample location):
|
|
|
|
|
|
<div class="code"><pre>
|
|
<div class="code"><pre>
|
|
-grass79 --tmp-mapset /path/to/grassdata/nc_spm_08/ --exec g.proj -p
|
|
|
|
|
|
+grass --tmp-mapset /path/to/grassdata/nc_spm_08/ --exec g.proj -p
|
|
</pre></div>
|
|
</pre></div>
|
|
|
|
|
|
Computation in a Python script can be executed in the same way:
|
|
Computation in a Python script can be executed in the same way:
|
|
|
|
|
|
<div class="code"><pre>
|
|
<div class="code"><pre>
|
|
-grass79 --tmp-mapset /path/to/grassdata/nc_spm_08/ --exec processing.py
|
|
|
|
|
|
+grass --tmp-mapset /path/to/grassdata/nc_spm_08/ --exec processing.py
|
|
</pre></div>
|
|
</pre></div>
|
|
|
|
|
|
Additional parameters are just passed to the script, so we can run the
|
|
Additional parameters are just passed to the script, so we can run the
|
|
@@ -436,15 +436,15 @@ script with different sets of parameters (here 5, 8 and 3, 9) in
|
|
different temporary mapsets which is good for parallel processing.
|
|
different temporary mapsets which is good for parallel processing.
|
|
|
|
|
|
<div class="code"><pre>
|
|
<div class="code"><pre>
|
|
-grass79 --tmp-mapset /path/to/grassdata/nc_spm_08/ --exec processing.py 5 8
|
|
|
|
-grass79 --tmp-mapset /path/to/grassdata/nc_spm_08/ --exec processing.py 3 9
|
|
|
|
|
|
+grass --tmp-mapset /path/to/grassdata/nc_spm_08/ --exec processing.py 5 8
|
|
|
|
+grass --tmp-mapset /path/to/grassdata/nc_spm_08/ --exec processing.py 3 9
|
|
</pre></div>
|
|
</pre></div>
|
|
|
|
|
|
The same applies to Bash scripts (and other scripts supported on you
|
|
The same applies to Bash scripts (and other scripts supported on you
|
|
platform):
|
|
platform):
|
|
|
|
|
|
<div class="code"><pre>
|
|
<div class="code"><pre>
|
|
-grass79 --tmp-mapset /path/to/grassdata/nc_spm_08/ --exec processing.sh 5 8
|
|
|
|
|
|
+grass --tmp-mapset /path/to/grassdata/nc_spm_08/ --exec processing.sh 5 8
|
|
</pre></div>
|
|
</pre></div>
|
|
|
|
|
|
The temporary mapset is automatically deleted after computation,
|
|
The temporary mapset is automatically deleted after computation,
|
|
@@ -481,7 +481,7 @@ List of <a href="variables.html">GRASS environment variables</a>
|
|
<a href="https://grass.osgeo.org">GRASS GIS Web site</a><br>
|
|
<a href="https://grass.osgeo.org">GRASS GIS Web site</a><br>
|
|
<a href="https://grasswiki.osgeo.org/wiki/">GRASS GIS User Wiki</a><br>
|
|
<a href="https://grasswiki.osgeo.org/wiki/">GRASS GIS User Wiki</a><br>
|
|
<a href="https://github.com/OSGeo/grass/issues">GRASS GIS Bug Tracker</a><br>
|
|
<a href="https://github.com/OSGeo/grass/issues">GRASS GIS Bug Tracker</a><br>
|
|
-<a href="https://grass.osgeo.org/programming7/">GRASS GIS 7 Programmer's Manual</a>
|
|
|
|
|
|
+<a href="https://grass.osgeo.org/programming8/">GRASS GIS 8 Programmer's Manual</a>
|
|
|
|
|
|
<h2>AUTHORS (of this page)</h2>
|
|
<h2>AUTHORS (of this page)</h2>
|
|
|
|
|