From 8678cd5ef8f59f700f620afdd49860debfb79276 Mon Sep 17 00:00:00 2001 From: Martin Landa Date: Tue, 14 Nov 2023 18:58:03 +0100 Subject: [PATCH] import_grass convert from bash to python, examples of usage added --- bin/grass/r.smoderp2d/r.smoderp2d.html | 36 +++++++++++++++++++++++++- tests/data/import_grass.py | 33 +++++++++++++++++++++++ tests/data/import_grass.sh | 16 ------------ 3 files changed, 68 insertions(+), 17 deletions(-) create mode 100755 tests/data/import_grass.py delete mode 100755 tests/data/import_grass.sh diff --git a/bin/grass/r.smoderp2d/r.smoderp2d.html b/bin/grass/r.smoderp2d/r.smoderp2d.html index ce42bfc6e..f0f76555d 100644 --- a/bin/grass/r.smoderp2d/r.smoderp2d.html +++ b/bin/grass/r.smoderp2d/r.smoderp2d.html @@ -5,7 +5,14 @@

DESCRIPTION

EXAMPLE

-Run quick test: +

Nucice dataset

+ +
+grass -c EPSG:5514 /tmp/smoderp2d-nucice --exec python3 tests/data/import_grass.py tests/data/nucice
+grass -c /tmp/smoderp2d-nucice/test
+
+ +Perform computation on Nucice dataset:
 r.smoderp2d \
@@ -25,6 +32,33 @@ 

EXAMPLE

output=tests/data/output
+

Rain simulation dataset

+ +
+grass -c EPSG:5514 /tmp/smoderp2d-rainsim --exec python3 tests/data/import_grass.py tests/data/rain_sim
+grass -c /tmp/smoderp2d-rainsim/test
+
+ +Perform computation on Rain simulation dataset: + +
+r.smoderp2d \
+ elevation=rastr10_05_t2_5@PERMANENT \
+ soil=soil@PERMANENT \
+ soil_type_fieldname=Soil \
+ vegetation=LandUse@PERMANENT \
+ vegetation_type_fieldname=LandUse \
+ rainfall_file=tests/data/rainfall_sim.txt \
+ maxdt=30 end_time=40 \
+ points=ObsPointssel@PERMANENT \
+ table_soil_vegetation=test_soilveg@PERMANENT \
+ table_soil_vegetation_fieldname=soilveg \
+ streams=streams@PERMANENT \
+ channel_properties_table=stream_shape@PERMANENT \
+ streams_channel_type_fieldname=channel_id \
+ output=tests/data/output
+
+

SEE ALSO

diff --git a/tests/data/import_grass.py b/tests/data/import_grass.py new file mode 100755 index 000000000..2a246861e --- /dev/null +++ b/tests/data/import_grass.py @@ -0,0 +1,33 @@ +#!/usr/bin/env python3 + +# grass -c EPSG:5514 /tmp/smoderp2d-location --exec python3 import_grass.py nucice + +import os +from pathlib import Path +from grass.pygrass.modules import Module + +os.environ['GRASS_OVERWRITE'] ='1' + +def do_import(path): + for rast in Path(path).glob('*.tif'): + Module('r.import', overwrite=True, input=str(rast), output=rast.stem, flags='o') + for vect in Path(path).glob('*.shp'): + Module('v.import', overwrite=True, input=str(vect), output=vect.stem, snap=0.01) + for tabl in Path(path).glob('*.dbf'): + if not tabl.with_suffix('.shp').exists(): + Module('db.in.ogr', overwrite=True, input=str(tabl), output=tabl.stem) + for tabl in Path(path).glob('*.csv'): + Module('db.in.ogr', overwrite=True, input=str(tabl), output=tabl.stem, gdal_doo="AUTODETECT_TYPE=YES") + +if __name__ == "__main__": + import argparse + + parser = argparse.ArgumentParser( + prog='import_grass', + description='Import tests into GRASS location') + + parser.add_argument('directory') + + args = parser.parse_args() + + do_import(args.directory) diff --git a/tests/data/import_grass.sh b/tests/data/import_grass.sh deleted file mode 100755 index 7ba4e248f..000000000 --- a/tests/data/import_grass.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash -e - -# grass ../grassdata/smoderp2d-location/PERMANENT/ -# ./import_grass.sh - -export GRASS_OVERWRITE='1' - -r.import -o input=dem10m/w001001.adf output=dem10m -v.import -o input=soils.shp output=soils -v.import -o input=landuse.shp output=landuse -v.import -o input=points.shp output=points -v.import -o input=stream.shp output=stream -db.in.ogr input=soil_veg_tab_mean.dbf output=soil_veg_tab_mean -db.in.ogr input=stream_shape.dbf output=stream_shape - -exit 0