Start a new GRASS project
In this session we are going to see how to start a new grass project using a well standarized dataset: a DEM.
cd /media/sf_LVM_shared/my_SE_data/exercise/
wget https://raw.githubusercontent.com/selvaje/SE_data/master/exercise/grass_newproject.ipynb
jupyter lab /media/sf_LVM_shared/my_SE_data/exercise/grass_newproject.ipynb
Analize the dataset
[1]:
import rasterio
from rasterio.plot import show
# digital elevation model
dem = rasterio.open("/media/sf_LVM_shared/my_SE_data/exercise/geodata/dem/SA_elevation_mn_GMTED2010_mn_msk.tif")
show(dem)
[1]:
<AxesSubplot:>
We can see the metadata of the the DEM using gdalinfo.
The tif metadata should have well defined values such as: * projection has to be well defined as proj4, EPSG, * the extent should set at degree level (e.g. 14.0’) or with one digit after the degree (e.g. 14.1’), * the pixel resolution should be also well defined (e.g. 0.25’, 0.008333333’ not 0.008331234’ or 0.05214534’), * in case of using more then one data source the raster layers shold have the same extent and the pixel aligned,
[2]:
! gdalinfo /media/sf_LVM_shared/my_SE_data/exercise/geodata/dem/SA_elevation_mn_GMTED2010_mn_msk.tif
Driver: GTiff/GeoTIFF
Files: /media/sf_LVM_shared/my_SE_data/exercise/geodata/dem/SA_elevation_mn_GMTED2010_mn_msk.tif
Size is 5880, 8400
Coordinate System is:
GEOGCRS["WGS 84",
ENSEMBLE["World Geodetic System 1984 ensemble",
MEMBER["World Geodetic System 1984 (Transit)"],
MEMBER["World Geodetic System 1984 (G730)"],
MEMBER["World Geodetic System 1984 (G873)"],
MEMBER["World Geodetic System 1984 (G1150)"],
MEMBER["World Geodetic System 1984 (G1674)"],
MEMBER["World Geodetic System 1984 (G1762)"],
MEMBER["World Geodetic System 1984 (G2139)"],
ELLIPSOID["WGS 84",6378137,298.257223563,
LENGTHUNIT["metre",1]],
ENSEMBLEACCURACY[2.0]],
PRIMEM["Greenwich",0,
ANGLEUNIT["degree",0.0174532925199433]],
CS[ellipsoidal,2],
AXIS["geodetic latitude (Lat)",north,
ORDER[1],
ANGLEUNIT["degree",0.0174532925199433]],
AXIS["geodetic longitude (Lon)",east,
ORDER[2],
ANGLEUNIT["degree",0.0174532925199433]],
USAGE[
SCOPE["Horizontal component of 3D system."],
AREA["World."],
BBOX[-90,-180,90,180]],
ID["EPSG",4326]]
Data axis to CRS axis mapping: 2,1
Origin = (-83.000000000000000,14.000000000000000)
Pixel Size = (0.008333333333333,-0.008333333333333)
Metadata:
AREA_OR_POINT=Area
TIFFTAG_DATETIME=2021:05:12 09:34:03
TIFFTAG_DOCUMENTNAME=geodata/dem/SA_elevation_mn_GMTED2010_mn_msk.tif
TIFFTAG_SOFTWARE=pktools 2.6.7.6 by Pieter Kempeneers
Image Structure Metadata:
COMPRESSION=DEFLATE
INTERLEAVE=BAND
Corner Coordinates:
Upper Left ( -83.0000000, 14.0000000) ( 83d 0' 0.00"W, 14d 0' 0.00"N)
Lower Left ( -83.0000000, -56.0000000) ( 83d 0' 0.00"W, 56d 0' 0.00"S)
Upper Right ( -34.0000000, 14.0000000) ( 34d 0' 0.00"W, 14d 0' 0.00"N)
Lower Right ( -34.0000000, -56.0000000) ( 34d 0' 0.00"W, 56d 0' 0.00"S)
Center ( -58.5000000, -21.0000000) ( 58d30' 0.00"W, 21d 0' 0.00"S)
Band 1 Block=5880x1 Type=Int16, ColorInterp=Gray
NoData Value=-9999
Create a LOCATION and MAPSET stored in a temporary folder
Using the flag –tmp-location we can create a LOCATION on the flight that will automaticaly removed when GRASS will be closed.
For this example we are goint to use: * r.slope.aspect to calculate the slope * r.out.gdal to export the GRASS raster to tif.
[8]:
%%bash
grass --text --tmp-location /media/sf_LVM_shared/my_SE_data/exercise/geodata/dem/SA_elevation_mn_GMTED2010_mn_msk.tif --exec <<'EOF'
r.external -e input=/media/sf_LVM_shared/my_SE_data/exercise/geodata/dem/SA_elevation_mn_GMTED2010_mn_msk.tif output=SA_elevation --o --q
g.list raster -p
r.info map=SA_elevation
r.slope.aspect elevation=SA_elevation slope=slope
r.info map=slope
# export the "grass slope" to a geotif.
r.out.gdal --o -c -m -f createopt="COMPRESS=DEFLATE,ZLEVEL=9" type=Int16 format=GTiff nodata=-9999 input=slope output=/home/user/my_SE_data/exercise/grassdb/slope.tif
EOF
----------------------------------------------
raster files available in mapset <PERMANENT>:
SA_elevation
+----------------------------------------------------------------------------+
| Map: SA_elevation Date: Mon May 20 11:37:09 2024 |
| Mapset: PERMANENT Login of Creator: user |
| Location: tmploc |
| DataBase: /tmp/grass8-user-168760 |
| Title: |
| Timestamp: none |
|----------------------------------------------------------------------------|
| |
| Type of Map: GDAL-link Number of Categories: 0 |
| Data Type: CELL Semantic label: (none) |
| Rows: 8400 |
| Columns: 5880 |
| Total Cells: 49392000 |
| Projection: Latitude-Longitude |
| N: 14N S: 56S Res: 0:00:30 |
| E: 34W W: 83W Res: 0:00:30 |
| Range of data: min = -400 max = 6736 |
| |
| Data Source: |
| /media/sf_LVM_shared/my_SE_data/exercise/geodata/dem/SA_elevation_mn_GM |
| |
| |
| Data Description: |
| generated by r.external |
| |
| Comments: |
| r.external --overwrite --quiet -e input="/media/sf_LVM_shared/my_SE_\ |
| data/exercise/geodata/dem/SA_elevation_mn_GMTED2010_mn_msk.tif" outp\ |
| ut="SA_elevation" |
| |
+----------------------------------------------------------------------------+
+----------------------------------------------------------------------------+
| Map: slope Date: Mon May 20 11:37:12 2024 |
| Mapset: PERMANENT Login of Creator: user |
| Location: tmploc |
| DataBase: /tmp/grass8-user-168760 |
| Title: slope in degrees |
| Timestamp: none |
|----------------------------------------------------------------------------|
| |
| Type of Map: raster Number of Categories: 90 |
| Data Type: FCELL Semantic label: (none) |
| Rows: 8400 |
| Columns: 5880 |
| Total Cells: 49392000 |
| Projection: Latitude-Longitude |
| N: 14N S: 56S Res: 0:00:30 |
| E: 34W W: 83W Res: 0:00:30 |
| Range of data: min = 0 max = 90 |
| |
| Data Source: |
| raster elevation file SA_elevation |
| |
| |
| Data Description: |
| generated by r.slope.aspect |
| |
| Comments: |
| slope map elev = SA_elevation |
| zfactor = 1.00 format = degrees |
| min_slope = 0.000000 |
| |
| r.slope.aspect --overwrite elevation="SA_elevation" slope="slope" fo\ |
| rmat="degrees" precision="FCELL" zscale=1.0 min_slope=0.0 nprocs=2 m\ |
| emory=300 |
| |
+----------------------------------------------------------------------------+
Starting GRASS GIS...
Creating new GRASS GIS location <tmploc>...
Cleaning up temporary files...
__________ ___ __________ _______________
/ ____/ __ \/ | / ___/ ___/ / ____/ _/ ___/
/ / __/ /_/ / /| | \__ \\_ \ / / __ / / \__ \
/ /_/ / _, _/ ___ |___/ /__/ / / /_/ // / ___/ /
\____/_/ |_/_/ |_/____/____/ \____/___//____/
Welcome to GRASS GIS 8.2.1
GRASS GIS homepage: https://grass.osgeo.org
This version running through: Bash Shell (/bin/bash)
Help is available with the command: g.manual -i
See the licence terms with: g.version -c
See citation options with: g.version -x
Start the GUI with: g.gui wxpython
When ready to quit enter: exit
0 0 3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 60 63 66 69 72 75 78 81 84 87 90 93 96 99 100
Slope raster map <slope> complete
/bin/bash: line 5: r.mapcalc.tiled: command not found
WARNING: Precision loss: Raster map <slope> of type DCELL to be exported as
Int16. This can be avoided by using Float64.
WARNING: Forcing raster export
Checking GDAL data type and nodata value...
2 5 8 11 14 17 20 23 26 29 32 35 38 41 44 47 50 53 56 59 62 65 68 71 74 77 80 83 86 89 92 95 98 100
Using GDAL data type <Int16>
Exporting raster data to GTiff format...
2 5 8 11 14 17 20 23 26 29 32 35 38 41 44 47 50 53 56 59 62 65 68 71 74 77 80 83 86 89 92 95 98 100
r.out.gdal complete. File
</home/user/my_SE_data/exercise/grassdb/slope.tif> created.
WARNING: Precision loss: Raster map <slope> of type DCELL to be exported as
Byte. This can be avoided by using Float64.
WARNING: Forcing raster export
Checking GDAL data type and nodata value...
2 5 8 11 14 17 20 23 26 29 32 35 38 41 44 47 50 53 56 59 62 65 68 71 74 77 80 83 86 89 92 95 98 100
Using GDAL data type <Byte>
WARNING: The user given nodata value 0 is present in rasterband <slope> and
would lead to data loss. Please specify a different nodata value
with the nodata parameter.
WARNING: Forcing raster export.
Exporting raster data to GTiff format...
2 5 8 11 14 17 20 23 26 29 32 35 38 41 44 47 50 53 56 59 62 65 68 71 74 77 80 83 86 89 92 95 98 100
r.out.gdal complete. File
</home/user/my_SE_data/exercise/grassdb/slope_msk.tif> created.
Cleaning up temporary files...
Done.
Goodbye from GRASS GIS
GRASS rasters support three data types:
32bit signed integer (CELL) wich can be converted in GDAL using Byte/Int16/UInt16/UInt32/Int32
single-precision floating-point (FCELL) wich can be converted in GDAL using Float32
double-precision floating-point (DCELL) wich can be converted in GDAL using Float64
More info at https://grass.osgeo.org/grass83/manuals/r.out.gdal.html
[2]:
import rasterio
from rasterio.plot import show
slope = rasterio.open("/home/user/my_SE_data/exercise/grassdb/slope.tif")
show(slope)
[2]:
<AxesSubplot:>
[31]:
! /usr/bin/openev/bin/openev /home/user/my_SE_data/exercise/grassdb/slope.tif
Default software rendering mode (use -h if accelerated video card installed).
Loading tools from /usr/bin/openev/tools/Tool_Export.py
Loading tools from /usr/bin/openev/tools/Tool_ShapesGrid.py
Loading tools from /usr/bin/openev/tools/Tool_DriverList.py
The temporary folder is removed automaticaly when closing grass.
Create a LOCATION and MAPSET stored in a folder that can be accessed later on.
Using the flag -e we can create a LOCATION on the flight called “south_america” that can be access later on.
[3]:
%%bash
rm -rf /home/user/my_SE_data/exercise/grassdb/south_america
grass -c /media/sf_LVM_shared/my_SE_data/exercise/geodata/dem/SA_elevation_mn_GMTED2010_mn_msk.tif -e /home/user/my_SE_data/exercise/grassdb/south_america
Starting GRASS GIS...
Creating new GRASS GIS location <south_america>...
Cleaning up temporary files...
Cleaning up temporary files...
At this point the south_america LOCATION has been created with the defoult PERMANENT mapset
[4]:
! ls /home/user/my_SE_data/exercise/grassdb/south_america/
PERMANENT
[5]:
! ls -l /home/user/my_SE_data/exercise/grassdb/south_america/PERMANENT
total 36
-rw-rw-r-- 1 user user 328 May 20 10:32 DEFAULT_WIND
-rw-rw-r-- 1 user user 1 May 20 10:32 MYNAME
-rw-rw-r-- 1 user user 65 May 20 10:32 PROJ_INFO
-rw-rw-r-- 1 user user 10 May 20 10:32 PROJ_SRID
-rw-rw-r-- 1 user user 40 May 20 10:32 PROJ_UNITS
-rw-rw-r-- 1 user user 1047 May 20 10:32 PROJ_WKT
drwxrwxr-x 2 user user 4096 May 20 10:32 sqlite
-rw-rw-r-- 1 user user 81 May 20 10:32 VAR
-rw-rw-r-- 1 user user 328 May 20 10:32 WIND
we can proceed in using the south_america LOCATION & the PERMANENT MAPSET using this syntax:
[6]:
%%bash
grass --text /home/user/my_SE_data/exercise/grassdb/south_america/PERMANENT --exec <<'EOF'
r.external input=/media/sf_LVM_shared/my_SE_data/exercise/geodata/dem/SA_elevation_mn_GMTED2010_mn_msk.tif output=SA_elevation --o --q
g.list raster -p
r.info map=SA_elevation
r.slope.aspect elevation=SA_elevation aspect=aspect --o
r.out.gdal --o -c -m -f createopt="COMPRESS=DEFLATE,ZLEVEL=9" type=Int16 format=GTiff nodata=-9999 input=aspect output=/home/user/my_SE_data/exercise/grassdb/aspect.tif
EOF
----------------------------------------------
raster files available in mapset <PERMANENT>:
SA_elevation
+----------------------------------------------------------------------------+
| Map: SA_elevation Date: Mon May 20 10:33:27 2024 |
| Mapset: PERMANENT Login of Creator: user |
| Location: south_america |
| DataBase: /home/user/my_SE_data/exercise/grassdb |
| Title: |
| Timestamp: none |
|----------------------------------------------------------------------------|
| |
| Type of Map: GDAL-link Number of Categories: 0 |
| Data Type: CELL Semantic label: (none) |
| Rows: 8400 |
| Columns: 5880 |
| Total Cells: 49392000 |
| Projection: Latitude-Longitude |
| N: 14N S: 56S Res: 0:00:30 |
| E: 34W W: 83W Res: 0:00:30 |
| Range of data: min = -400 max = 6736 |
| |
| Data Source: |
| /media/sf_LVM_shared/my_SE_data/exercise/geodata/dem/SA_elevation_mn_GM |
| |
| |
| Data Description: |
| generated by r.external |
| |
| Comments: |
| r.external --overwrite --quiet input="/media/sf_LVM_shared/my_SE_dat\ |
| a/exercise/geodata/dem/SA_elevation_mn_GMTED2010_mn_msk.tif" output=\ |
| "SA_elevation" |
| |
+----------------------------------------------------------------------------+
Starting GRASS GIS...
Cleaning up temporary files...
__________ ___ __________ _______________
/ ____/ __ \/ | / ___/ ___/ / ____/ _/ ___/
/ / __/ /_/ / /| | \__ \\_ \ / / __ / / \__ \
/ /_/ / _, _/ ___ |___/ /__/ / / /_/ // / ___/ /
\____/_/ |_/_/ |_/____/____/ \____/___//____/
Welcome to GRASS GIS 8.2.1
GRASS GIS homepage: https://grass.osgeo.org
This version running through: Bash Shell (/bin/bash)
Help is available with the command: g.manual -i
See the licence terms with: g.version -c
See citation options with: g.version -x
Start the GUI with: g.gui wxpython
When ready to quit enter: exit
0 3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 60 63 66 69 72 75 78 81 84 87 90 93 96 99 100
Aspect raster map <aspect> complete
WARNING: Precision loss: Raster map <aspect> of type DCELL to be exported
as Int16. This can be avoided by using Float64.
WARNING: Forcing raster export
Checking GDAL data type and nodata value...
2 5 8 11 14 17 20 23 26 29 32 35 38 41 44 47 50 53 56 59 62 65 68 71 74 77 80 83 86 89 92 95 98 100
Using GDAL data type <Int16>
Exporting raster data to GTiff format...
2 5 8 11 14 17 20 23 26 29 32 35 38 41 44 47 50 53 56 59 62 65 68 71 74 77 80 83 86 89 92 95 98 100
r.out.gdal complete. File
</home/user/my_SE_data/exercise/grassdb/aspect.tif> created.
Cleaning up temporary files...
Done.
Goodbye from GRASS GIS
[37]:
! /usr/bin/openev/bin/openev /home/user/my_SE_data/exercise/grassdb/aspect.tif
Default software rendering mode (use -h if accelerated video card installed).
Loading tools from /usr/bin/openev/tools/Tool_Export.py
Loading tools from /usr/bin/openev/tools/Tool_ShapesGrid.py
Loading tools from /usr/bin/openev/tools/Tool_DriverList.py
or with line by line syntax
[38]:
%%bash
grass --text /home/user/my_SE_data/exercise/grassdb/south_america/PERMANENT --exec r.neighbors input=SA_elevation output=SA_elevation_10c_max method=maximum --o
grass --text /home/user/my_SE_data/exercise/grassdb/south_america/PERMANENT --exec r.info map=SA_elevation_10c_max
+----------------------------------------------------------------------------+
| Map: SA_elevation_10c_max Date: Thu May 16 18:31:24 2024 |
| Mapset: PERMANENT Login of Creator: user |
| Location: south_america |
| DataBase: /home/user/my_SE_data/exercise/grassdb |
| Title: 3x3 neighborhood: maximum of SA_elevation |
| Timestamp: none |
|----------------------------------------------------------------------------|
| |
| Type of Map: raster Number of Categories: 0 |
| Data Type: CELL Semantic label: (none) |
| Rows: 8400 |
| Columns: 5880 |
| Total Cells: 49392000 |
| Projection: Latitude-Longitude |
| N: 14N S: 56S Res: 0:00:30 |
| E: 34W W: 83W Res: 0:00:30 |
| Range of data: min = -153 max = 6736 |
| |
| Data Description: |
| generated by r.neighbors |
| |
| Comments: |
| r.neighbors --overwrite input="SA_elevation" output="SA_elevation_10\ |
| c_max" size=3 method="maximum" weighting_function="none" nprocs=1 me\ |
| mory=300 |
| |
+----------------------------------------------------------------------------+
Starting GRASS GIS...
Cleaning up temporary files...
Executing <r.neighbors input=SA_elevation output=SA_elevation_10c_max method=maximum --o> ...
0 3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 60 63 66 69 72 75 78 81 84 87 90 93 96 99 100
Execution of <r.neighbors input=SA_elevation output=SA_elevation_10c_max method=maximum --o> finished.
Cleaning up temporary files...
Starting GRASS GIS...
Cleaning up temporary files...
Executing <r.info map=SA_elevation_10c_max> ...
Execution of <r.info map=SA_elevation_10c_max> finished.
Cleaning up temporary files...
GRASS add-ons
Grass GIS has a modular architecture that allows users to extend its functionality through add-ons or modules. These add-ons cover a wide range of functionalities and are developed and contributed by the Grass GIS community. You can see the full list of add-ons at https://grass.osgeo.org/grass83/manuals/addons/index.html
For this exercise we are going to use r.mapcalc.tiled that integrate r.mapcalc in a multicore enviroment.
Installation
Open a bash terminal and run
cd /home/user
git clone https://github.com/OSGeo/grass-addons.git grass_addons
when the download has ben done you can proceed with the installation.
For this exercise we are going to use: * r.mapcalc.tiled add-on. * r.mapcalc
Nontheless also consider to install and test the following add-on:
[22]:
%%bash
grass --text /home/user/my_SE_data/exercise/grassdb/south_america/PERMANENT --exec g.extension extension=r.mapcalc.tiled url=/home/user/grass_addons/src/raster/r.mapcalc.tiled
grass --text /home/user/my_SE_data/exercise/grassdb/south_america/PERMANENT --exec r.slope.aspect elevation=SA_elevation slope=slope nprocs=2 --o
grass --text /home/user/my_SE_data/exercise/grassdb/south_america/PERMANENT --exec time r.mapcalc.tiled expression="slope_msk = if(slope > 10, 10, 1)" width=5880 height=4200 overlap=0 nprocs=2 --o
grass --text /home/user/my_SE_data/exercise/grassdb/south_america/PERMANENT --exec time r.mapcalc expression="slope_msk = if(slope > 10, 10, 1)" --o
grass --text /home/user/my_SE_data/exercise/grassdb/south_america/PERMANENT --exec r.info map=slope_msk
# export the "grass slope_msk" to a geotif
grass --text /home/user/my_SE_data/exercise/grassdb/south_america/PERMANENT --exec r.out.gdal --o -c -m -f createopt="COMPRESS=DEFLATE,ZLEVEL=9" type=Byte format=GTiff nodata=0 input=slope_msk output=/home/user/my_SE_data/exercise/grassdb/slope_msk.tif
+----------------------------------------------------------------------------+
| Map: slope_msk Date: Mon May 20 16:44:05 2024 |
| Mapset: PERMANENT Login of Creator: user |
| Location: south_america |
| DataBase: /home/user/my_SE_data/exercise/grassdb |
| Title: |
| Timestamp: none |
|----------------------------------------------------------------------------|
| |
| Type of Map: raster Number of Categories: 0 |
| Data Type: CELL Semantic label: (none) |
| Rows: 16800 |
| Columns: 11760 |
| Total Cells: 197568000 |
| Projection: Latitude-Longitude |
| N: 14N S: 56S Res: 0:00:15 |
| E: 34W W: 83W Res: 0:00:15 |
| Range of data: min = 1 max = 10 |
| |
| Data Description: |
| generated by r.mapcalc |
| |
| Comments: |
| if(slope > 10, 10, 1) |
| |
+----------------------------------------------------------------------------+
Starting GRASS GIS...
Cleaning up temporary files...
Executing <r.slope.aspect elevation=SA_elevation slope=slope nprocs=2 --o> ...
0 0 3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 60 63 66 69 72 75 78 81 84 87 90 93 96 99 100
Slope raster map <slope> complete
Execution of <r.slope.aspect elevation=SA_elevation slope=slope nprocs=2 --o> finished.
Cleaning up temporary files...
Starting GRASS GIS...
Cleaning up temporary files...
Executing <g.region res=0.0041666666666> ...
Execution of <g.region res=0.0041666666666> finished.
Cleaning up temporary files...
Starting GRASS GIS...
Cleaning up temporary files...
Executing <time r.mapcalc.tiled expression=slope_msk = if(slope > 10, 10, 1) width=5880 height=4200 overlap=0 nprocs=2 --o> ...
11.73user 1.22system 0:09.50elapsed 136%CPU (0avgtext+0avgdata 72268maxresident)k
11632inputs+16144outputs (48major+93774minor)pagefaults 0swaps
Execution of <time r.mapcalc.tiled expression=slope_msk = if(slope > 10, 10, 1) width=5880 height=4200 overlap=0 nprocs=2 --o> finished.
Cleaning up temporary files...
Starting GRASS GIS...
Cleaning up temporary files...
Executing <time r.mapcalc expression=slope_msk = if(slope > 10, 10, 1) --o> ...
5.34user 0.24system 0:05.52elapsed 101%CPU (0avgtext+0avgdata 38376maxresident)k
0inputs+6792outputs (0major+2484minor)pagefaults 0swaps
Execution of <time r.mapcalc expression=slope_msk = if(slope > 10, 10, 1) --o> finished.
Cleaning up temporary files...
Starting GRASS GIS...
Cleaning up temporary files...
Executing <r.info map=slope_msk> ...
Execution of <r.info map=slope_msk> finished.
Cleaning up temporary files...
Starting GRASS GIS...
Cleaning up temporary files...
Executing <r.out.gdal --o -c -m -f createopt=COMPRESS=DEFLATE,ZLEVEL=9 type=Byte format=GTiff nodata=0 input=slope_msk output=/home/user/my_SE_data/exercise/grassdb/slope_msk.tif> ...
Checking GDAL data type and nodata value...
2 5 8 11 14 17 20 23 26 29 32 35 38 41 44 47 50 53 56 59 62 65 68 71 74 77 80 83 86 89 92 95 98 100
Using GDAL data type <Byte>
Exporting raster data to GTiff format...
2 5 8 11 14 17 20 23 26 29 32 35 38 41 44 47 50 53 56 59 62 65 68 71 74 77 80 83 86 89 92 95 98 100
r.out.gdal complete. File
</home/user/my_SE_data/exercise/grassdb/slope_msk.tif> created.
Execution of <r.out.gdal --o -c -m -f createopt=COMPRESS=DEFLATE,ZLEVEL=9 type=Byte format=GTiff nodata=0 input=slope_msk output=/home/user/my_SE_data/exercise/grassdb/slope_msk.tif> finished.
Cleaning up temporary files...
As you can see not always the paralellization is beneficial
[16]:
! /usr/bin/openev/bin/openev /home/user/my_SE_data/exercise/grassdb/slope_msk.tif
Default software rendering mode (use -h if accelerated video card installed).
Loading tools from /usr/bin/openev/tools/Tool_Export.py
Loading tools from /usr/bin/openev/tools/Tool_ShapesGrid.py
Loading tools from /usr/bin/openev/tools/Tool_DriverList.py
Not all the GRASS module have been parallelized some example of parallization can be found here: https://htmlpreview.github.io/?https://github.com/petrasovaa/FUTURES-CONUS-talk/blob/main/foss4g2022.html#/
Acknowledgments
This material has been developed as part of the NSF-funded POSE project TI-2303651: Growing GRASS OSE for Worldwide Access to Multidisciplinary Geospatial Analytics.
[ ]: