diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7e99e36 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.pyc \ No newline at end of file diff --git a/install.sh b/install.sh old mode 100644 new mode 100755 index a208fa2..f98c5cd --- a/install.sh +++ b/install.sh @@ -1,36 +1,50 @@ +#!/bin/bash + +# To isolate this from other Python projects, create a specific user on your machine +# and install libraries at user level, excepted qgis, python3-pip and mpich packages. +# +# Before launching this script make sure that the following packages have been installed +# +# For Ubuntu 20.04 +# sudo apt install qgis python3-pip mpich +# pip3 install --user geopandas peewee cython scipy +# # set version to download version="1.0.4" +# set swat home +export SWAT_AW_HOME="~/dev/conda/pesteaux_conda/swat_tools" -rm -r "$HOME/.SWAT/SWATPlus" -rm -r "$HOME/.local/share/swatplus" +rm -r "$SWAT_AW_HOME/.SWAT/SWATPlus" +rm -r "$SWAT_AW_HOME/.local/share/swatplus" -mkdir -p "$HOME/.SWAT/SWATPlus" -mkdir -p "$HOME/.local/share/swatplus" +mkdir -p "$SWAT_AW_HOME/.SWAT/SWATPlus" +mkdir -p "$SWAT_AW_HOME/.local/share/swatplus" wget -c "https://github.com/celray/swatplus-automatic-workflow/archive/v$version.zip" wget -c "https://github.com/celray/swatplus-automatic-workflow/releases/download/v$version/TauDEM5Bin_Linux.zip" -wget -c "https://github.com/celray/swatplus-automatic-workflow/raw/master/editor_api/swatplus_wgn.sqlite" +# wget -c "https://github.com/celray/swatplus-automatic-workflow/raw/master/editor_api/swatplus_wgn.sqlite" +wget -c "https://bitbucket.org/swatplus/swatplus.editor/downloads/swatplus_wgn.sqlite" unzip "./v$version.zip" unzip "./TauDEM5Bin_Linux.zip" echo "copying files" -mv "./swatplus-automatic-workflow-$version" "$HOME/.SWAT/SWATPlus/Workflow" -mv "./TauDEM5Bin" "$HOME/.local/share/swatplus/TauDEM5Bin" -mv "./swatplus_wgn.sqlite" "$HOME/.SWAT/SWATPlus/Workflow/editor_api/" -chmod 777 "$HOME/.SWAT/SWATPlus/Workflow/swatplus_aw.sh" -chmod -R 777 "$HOME/.local/share/swatplus/TauDEM5Bin" +mv "./swatplus-automatic-workflow-$version" "$SWAT_AW_HOME/.SWAT/SWATPlus/Workflow" +mv "./TauDEM5Bin" "$SWAT_AW_HOME/.local/share/swatplus/TauDEM5Bin" +mv "./swatplus_wgn.sqlite" "$SWAT_AW_HOME/.SWAT/SWATPlus/Workflow/editor_api/" +chmod 777 "$SWAT_AW_HOME/.SWAT/SWATPlus/Workflow/swatplus_aw.sh" +chmod -R 777 "$SWAT_AW_HOME/.local/share/swatplus/TauDEM5Bin" # cleanup echo "cleaning up" -rm "$HOME/.SWAT/SWATPlus/Workflow/.gitattributes" -rm "$HOME/.SWAT/SWATPlus/Workflow/swatplus_aw.bat" -rm "$HOME/.SWAT/SWATPlus/Workflow/code_of_conduct.md" -rm -r "$HOME/.SWAT/SWATPlus/Workflow/.github" +rm "$SWAT_AW_HOME/.SWAT/SWATPlus/Workflow/.gitattributes" +rm "$SWAT_AW_HOME/.SWAT/SWATPlus/Workflow/swatplus_aw.bat" +rm "$SWAT_AW_HOME/.SWAT/SWATPlus/Workflow/code_of_conduct.md" +rm -r "$SWAT_AW_HOME/.SWAT/SWATPlus/Workflow/.github" rm "./TauDEM5Bin_Linux.zip" rm "./v$version.zip" # set environmental variables echo "setting up environmental variables" -echo 'export PATH=$PATH:$HOME/.SWAT/SWATPlus/Workflow' >>~/.bashrc -echo 'export swatplus_wf_dir=$HOME/.SWAT/SWATPlus/Workflow' >>~/.bashrc +echo 'export PATH=$PATH:$SWAT_AW_HOME/.SWAT/SWATPlus/Workflow' >>~/.bashrc +echo 'export swatplus_wf_dir=$SWAT_AW_HOME/.SWAT/SWATPlus/Workflow' >>~/.bashrc diff --git a/main_stages/prepare_project.py b/main_stages/prepare_project.py index 27da009..a4a8b88 100644 --- a/main_stages/prepare_project.py +++ b/main_stages/prepare_project.py @@ -15,8 +15,8 @@ from glob import glob from shutil import copyfile, rmtree -import gdal -import osr +from osgeo import gdal +from osgeo import osr sys.path.insert(0, os.path.join(os.environ["swatplus_wf_dir"], "packages")) sys.path.append(os.path.join(os.environ["swatplus_wf_dir"])) diff --git a/packages/helper_functions.py b/packages/helper_functions.py index e96456d..a593228 100644 --- a/packages/helper_functions.py +++ b/packages/helper_functions.py @@ -12,7 +12,7 @@ import shutil from glob import glob from shutil import copyfile, copytree -import gdal +# import gdal import pickle import xml.etree.ElementTree as ET from osgeo import gdal diff --git a/swatplus_aw.sh b/swatplus_aw.sh old mode 100644 new mode 100755 index 22c7877..de2ba75 --- a/swatplus_aw.sh +++ b/swatplus_aw.sh @@ -2,31 +2,64 @@ # set the directory of QGIS # export QGIS_Dir=C:\Program Files\QGIS 3.10 # set ERRORLEVEL=0 +# set swat home +export SWAT_AW_HOME="~/dev/conda/pesteaux_conda/swat_tools" # set variables for project initialisation -export python_script_prepare_qswat=$HOME/.SWAT/SWATPlus/Workflow/main_stages/prepare_project.py -export python_script_make_namelist=$HOME/.SWAT/SWATPlus/Workflow/main_stages/generate_namelist.py -export python_script_run_qswat=$HOME/.SWAT/SWATPlus/Workflow/main_stages/run_qswat.py -export python_script_run_editor=$HOME/.SWAT/SWATPlus/Workflow/main_stages/run_editor.py -export python_script_run_calibration=$HOME/.SWAT/SWATPlus/Workflow/main_stages/run_calibration.py -export python_script_make_figures=$HOME/.SWAT/SWATPlus/Workflow/main_stages/run_make_figures.py -export python_script_clean_up=$HOME/.SWAT/SWATPlus/Workflow/main_stages/run_clean_up.py +export python_script_prepare_qswat=$SWAT_AW_HOME/.SWAT/SWATPlus/Workflow/main_stages/prepare_project.py +export python_script_make_config=$SWAT_AW_HOME/.SWAT/SWATPlus/Workflow/main_stages/generate_config.py +export python_script_run_qswat=$SWAT_AW_HOME/.SWAT/SWATPlus/Workflow/main_stages/run_qswat.py +export python_script_run_editor=$SWAT_AW_HOME/.SWAT/SWATPlus/Workflow/main_stages/run_editor.py +export python_script_run_calibration=$SWAT_AW_HOME/.SWAT/SWATPlus/Workflow/main_stages/run_calibration.py +export python_script_make_figures=$SWAT_AW_HOME/.SWAT/SWATPlus/Workflow/main_stages/run_make_figures.py +export python_script_clean_up=$SWAT_AW_HOME/.SWAT/SWATPlus/Workflow/main_stages/run_clean_up.py export BASE_DIR=$PWD -export swatplus_wf_dir=$HOME/.SWAT/SWATPlus/Workflow/ +export swatplus_wf_dir=$SWAT_AW_HOME/.SWAT/SWATPlus/Workflow/ +# add qgis plugins folder to pythonpath +export WF_QGIS=/usr/share/qgis/python/plugins # # add default plugins and model directory to python path -export PYTHONPATH=$BASE_DIR:$PYTHONPATH +export PYTHONPATH=$BASE_DIR:$WF_QGIS:$PYTHONPATH # export PATH=%PATH% # start runing the workflow using PyQGIS + python3 $python_script_prepare_qswat $BASE_DIR +if [ "$?" -ne "0" ]; +then + echo "prepare_qswat failed" + exit 1 +else + echo 'prepare_qswat done' + python3 $python_script_make_config $BASE_DIR + if [ "$?" -ne "0" ]; + then + echo "make_config failed" + exit 1 + else + echo 'make_config done' + python3 $python_script_run_qswat $BASE_DIR + if [ "$?" -ne "0" ]; + then + echo "run_qswat failed" + exit 1 + else + echo 'run_qswat done' + python3 $python_script_run_editor $BASE_DIR + echo 'run_editor done' -python3 $python_script_make_namelist $BASE_DIR + python3 $python_script_run_calibration $BASE_DIR + echo 'un_calibration done' -python3 $python_script_run_qswat $BASE_DIR -python3 $python_script_run_editor $BASE_DIR -python3 $python_script_run_calibration $BASE_DIR -python3 $python_script_make_figures $BASE_DIR + python3 $python_script_make_figures $BASE_DIR + echo 'make_figures done' + fi + + fi +fi python3 $python_script_clean_up $BASE_DIR +echo 'clean_up done' + +echo 'This is the end.' \ No newline at end of file