#! /usr/bin/env python

'''
Python Interface to SAGA Tools Library
----------
- Category : Simulation
- Name     : RivFlow
- ID       : sim_rivflow

Description
----------
[RivFlow] is the implementation of a tool set that works as an aggregated model system for scenario-based simulation of the water balance of river basins, taking into account climatic and socio-economic influences (Alwardt 2015).

'''

from PySAGA.helper import Tool_Wrapper

def run_tool_sim_rivflow_0(
    INPUT=None,
    INPUT2=None,
    INPUT3=None,
    OUTPUT2=None,
    OUTPUT3=None,
    OUTPUT4=None,
    OUTPUT5=None,
    OUTPUT6=None,
    OUTPUT7=None,
    OUTPUT8=None,
    OUTPUT9=None,
    WCONS=None,
    WCONS2=None,
    PCR=None,
    NCR=None,
    ENFVMAX=None,
    VTRESH=None, Verbose=2):
    '''
    RiverBasin
    ----------
    [sim_rivflow.0]\n
    Parameters of RiverBasin\n
    Arguments
    ----------
    - INPUT [`input grid`] : DTM. Digitales Gelaendemodell des Flusseinzugsgebietes
    - INPUT2 [`input grid`] : HGGrid. Eingaberaster der Hauptgerinnerasterzellen des Flussnetzwerkes
    - INPUT3 [`optional input grid`] : statisches Entnahmeraster. Eingaberaster mit Angaben zur statischen Flaechenwasserentnahme.
    - OUTPUT2 [`output grid`] : Grad. Ausgabe der Abflussgradienten jeder Rasterzelle
    - OUTPUT3 [`output grid`] : Direc. Ausgabe der Abflussrichtung fuer jede Rasterzelle
    - OUTPUT4 [`output grid`] : HGGrad. Ausgabe der Abflussgradienten jeder Hauptgerinnerasterzelle
    - OUTPUT5 [`output grid`] : RivSpeed. Ausgabe Flussgeschwindigkeiten der Hauptgerinnerasterzellen (siehe Parametereinstellungen)
    - OUTPUT6 [`output grid`] : Coordinates. Ausgabe der Koordinatenwerte der Rasterzellen im Format xxxx.yyyy
    - OUTPUT7 [`output grid`] : BasinShare. Ausagbe der Rasterzellen des Flusseinzugsgebiets
    - OUTPUT8 [`output grid`] : statWUse. Ausagbe der anteiligen Flaechenwasserentnahme je Rasterzelle
    - OUTPUT9 [`output grid`] : NumInFlowCells. Ausgaberaster mit Angabe ueber die Anzahl der Rasterzellen, die in eine spezifische Rasterzelle (x,y) abflieszen
    - WCONS [`boolean`] : Anteilige Flaechenwasserentnahme. Default: 0 Wenn gesetzt, werden die Werte des statischen Entahmerasters anteilig entnommen und als Raster statWUse ausgegeben
    - WCONS2 [`choice`] : Dynamische Flaechenwassernutzung.... Available Choices: [0] ...anteilig aus den Flussrasterzellen [1] ...anteilig aus Rasterzellen der Teileinzugegebiete Default: 0 Auswahl der Art der anteiligen Flaechenwasserwasserentnahme.
    - PCR [`floating point number`] : Hauptgerinne-Parameter pHG. Minimum: 0.000000 Default: 0.003500 Parameter pHG zur Berechnung der Lagtime kHG des Hauptgerinneabflusses
    - NCR [`integer number`] : Hauptgerinne-Speicherkaskade nHG. Minimum: 1 Default: 1 Festlegen, wieviele Speicher die ChannelFlow River-Speicherkaskade enthaelt
    - ENFVMAX [`boolean`] : Maximal Geschwindigkeit des Hauptgerinnes beruecksichtigen. Default: 1 Angegebene Maximalgeschwindigkeit im Hauptgerinne bei der Berechnung der durchschnittlichen Flieszgeschwindigkeit des Hauptgerinnes beruecksichtigen.
    - VTRESH [`floating point number`] : Maximalgeschwindigkeit im Hauptgerinne in km/h. Minimum: 0.000000 Maximum: 10.000000 Default: 4.000000 Festlegung der maximalen Wasserflussgeschwindigkeit im Hauptgerinne in km/h (oberer Grenzwert)

    - Verbose [`integer number`] : Verbosity level, 0=silent, 1=tool name and success notification, 2=complete tool output.\n
    Returns
    ----------
    `boolean` : `True` on success, `False` on failure.
    '''
    Tool = Tool_Wrapper('sim_rivflow', '0', 'RiverBasin')
    if Tool.is_Okay():
        Tool.Set_Input ('INPUT', INPUT)
        Tool.Set_Input ('INPUT2', INPUT2)
        Tool.Set_Input ('INPUT3', INPUT3)
        Tool.Set_Output('OUTPUT2', OUTPUT2)
        Tool.Set_Output('OUTPUT3', OUTPUT3)
        Tool.Set_Output('OUTPUT4', OUTPUT4)
        Tool.Set_Output('OUTPUT5', OUTPUT5)
        Tool.Set_Output('OUTPUT6', OUTPUT6)
        Tool.Set_Output('OUTPUT7', OUTPUT7)
        Tool.Set_Output('OUTPUT8', OUTPUT8)
        Tool.Set_Output('OUTPUT9', OUTPUT9)
        Tool.Set_Option('WCons', WCONS)
        Tool.Set_Option('WCons2', WCONS2)
        Tool.Set_Option('pCr', PCR)
        Tool.Set_Option('nCr', NCR)
        Tool.Set_Option('EnfVmax', ENFVMAX)
        Tool.Set_Option('VTresh', VTRESH)
        return Tool.Execute(Verbose)
    return False

def RiverBasin(
    INPUT=None,
    INPUT2=None,
    INPUT3=None,
    OUTPUT2=None,
    OUTPUT3=None,
    OUTPUT4=None,
    OUTPUT5=None,
    OUTPUT6=None,
    OUTPUT7=None,
    OUTPUT8=None,
    OUTPUT9=None,
    WCONS=None,
    WCONS2=None,
    PCR=None,
    NCR=None,
    ENFVMAX=None,
    VTRESH=None, Verbose=2):
    '''
    RiverBasin
    ----------
    [sim_rivflow.0]\n
    Parameters of RiverBasin\n
    Arguments
    ----------
    - INPUT [`input grid`] : DTM. Digitales Gelaendemodell des Flusseinzugsgebietes
    - INPUT2 [`input grid`] : HGGrid. Eingaberaster der Hauptgerinnerasterzellen des Flussnetzwerkes
    - INPUT3 [`optional input grid`] : statisches Entnahmeraster. Eingaberaster mit Angaben zur statischen Flaechenwasserentnahme.
    - OUTPUT2 [`output grid`] : Grad. Ausgabe der Abflussgradienten jeder Rasterzelle
    - OUTPUT3 [`output grid`] : Direc. Ausgabe der Abflussrichtung fuer jede Rasterzelle
    - OUTPUT4 [`output grid`] : HGGrad. Ausgabe der Abflussgradienten jeder Hauptgerinnerasterzelle
    - OUTPUT5 [`output grid`] : RivSpeed. Ausgabe Flussgeschwindigkeiten der Hauptgerinnerasterzellen (siehe Parametereinstellungen)
    - OUTPUT6 [`output grid`] : Coordinates. Ausgabe der Koordinatenwerte der Rasterzellen im Format xxxx.yyyy
    - OUTPUT7 [`output grid`] : BasinShare. Ausagbe der Rasterzellen des Flusseinzugsgebiets
    - OUTPUT8 [`output grid`] : statWUse. Ausagbe der anteiligen Flaechenwasserentnahme je Rasterzelle
    - OUTPUT9 [`output grid`] : NumInFlowCells. Ausgaberaster mit Angabe ueber die Anzahl der Rasterzellen, die in eine spezifische Rasterzelle (x,y) abflieszen
    - WCONS [`boolean`] : Anteilige Flaechenwasserentnahme. Default: 0 Wenn gesetzt, werden die Werte des statischen Entahmerasters anteilig entnommen und als Raster statWUse ausgegeben
    - WCONS2 [`choice`] : Dynamische Flaechenwassernutzung.... Available Choices: [0] ...anteilig aus den Flussrasterzellen [1] ...anteilig aus Rasterzellen der Teileinzugegebiete Default: 0 Auswahl der Art der anteiligen Flaechenwasserwasserentnahme.
    - PCR [`floating point number`] : Hauptgerinne-Parameter pHG. Minimum: 0.000000 Default: 0.003500 Parameter pHG zur Berechnung der Lagtime kHG des Hauptgerinneabflusses
    - NCR [`integer number`] : Hauptgerinne-Speicherkaskade nHG. Minimum: 1 Default: 1 Festlegen, wieviele Speicher die ChannelFlow River-Speicherkaskade enthaelt
    - ENFVMAX [`boolean`] : Maximal Geschwindigkeit des Hauptgerinnes beruecksichtigen. Default: 1 Angegebene Maximalgeschwindigkeit im Hauptgerinne bei der Berechnung der durchschnittlichen Flieszgeschwindigkeit des Hauptgerinnes beruecksichtigen.
    - VTRESH [`floating point number`] : Maximalgeschwindigkeit im Hauptgerinne in km/h. Minimum: 0.000000 Maximum: 10.000000 Default: 4.000000 Festlegung der maximalen Wasserflussgeschwindigkeit im Hauptgerinne in km/h (oberer Grenzwert)

    - Verbose [`integer number`] : Verbosity level, 0=silent, 1=tool name and success notification, 2=complete tool output.\n
    Returns
    ----------
    `boolean` : `True` on success, `False` on failure.
    '''
    Tool = Tool_Wrapper('sim_rivflow', '0', 'RiverBasin')
    if Tool.is_Okay():
        Tool.Set_Input ('INPUT', INPUT)
        Tool.Set_Input ('INPUT2', INPUT2)
        Tool.Set_Input ('INPUT3', INPUT3)
        Tool.Set_Output('OUTPUT2', OUTPUT2)
        Tool.Set_Output('OUTPUT3', OUTPUT3)
        Tool.Set_Output('OUTPUT4', OUTPUT4)
        Tool.Set_Output('OUTPUT5', OUTPUT5)
        Tool.Set_Output('OUTPUT6', OUTPUT6)
        Tool.Set_Output('OUTPUT7', OUTPUT7)
        Tool.Set_Output('OUTPUT8', OUTPUT8)
        Tool.Set_Output('OUTPUT9', OUTPUT9)
        Tool.Set_Option('WCons', WCONS)
        Tool.Set_Option('WCons2', WCONS2)
        Tool.Set_Option('pCr', PCR)
        Tool.Set_Option('nCr', NCR)
        Tool.Set_Option('EnfVmax', ENFVMAX)
        Tool.Set_Option('VTresh', VTRESH)
        return Tool.Execute(Verbose)
    return False

def run_tool_sim_rivflow_1(
    INPUT=None,
    INPUT2=None,
    INPUT10=None,
    INPUT8=None,
    INPUT9=None,
    INPUT11=None,
    INPUT12=None,
    INPUT3=None,
    INPUT5=None,
    INPUT6=None,
    INPUT7=None,
    OUTPUT=None,
    OUTPUT2=None,
    OUTPUT3=None,
    OUTPUT4=None,
    OUTPUT5=None,
    OUTPUT6=None,
    ONLYRB=None,
    TIMESTEP=None,
    CALCT=None,
    SYEAR=None,
    DAYNUM=None,
    FOLDER2=None,
    FOLDER1=None,
    STREDFACR=None,
    AUTOFACD=None,
    STREDFACD=None,
    OFFSETR=None,
    OFFSETD=None,
    CACHEUSE=None,
    FOLDER4=None,
    WNC=None,
    PARAMC=None,
    PARAMG=None,
    PARAMB=None,
    nG=None,
    RIVG=None,
    PARAMCR=None,
    NHG=None,
    ENFVMAX=None,
    VTRESH=None,
    WCONS=None,
    FOLDER3=None,
    WCONUNIT=None,
    WCONSD=None,
    WCONTHRES=None,
    STCONSALL=None,
    STCONSRIV=None,
    VRM1=None,
    RM1X=None,
    RM1Y=None,
    RM1Q=None,
    RM1A=None,
    VRM2=None,
    RM2X=None,
    RM2Y=None,
    RM2Q=None,
    RM2A=None,
    EVP1S=None,
    EVP1X=None,
    EVP1Y=None,
    EVP2S=None,
    EVP2X=None,
    EVP2Y=None,
    EVP3S=None,
    EVP3X=None,
    EVP3Y=None,
    RBMX=None,
    RBMY=None,
    wP=None,
    eP=None,
    MONILOG1=None,
    MONILOG3=None,
    MONILOG2=None,
    TEST1=None,
    XT1=None,
    YT1=None, Verbose=2):
    '''
    LandFlow Version 1.0 (build 3.5.1b)
    ----------
    [sim_rivflow.1]\n
    Landflow of RiverBasine\n
    Arguments
    ----------
    - INPUT [`input grid`] : Gelaendemodell (DTM). Digitales Gelaendemodell des Flusseinzugsgebietes
    - INPUT2 [`input grid`] : Hoehengradienten (Grad). Abflussgradienten jeder Rasterzelle des Flusseinzugsgebietes
    - INPUT10 [`input grid`] : Flusseinzugsgebiet (BasinShare). Abgrenzung des Flusseinzugsgebiets mit den Teileinzugsgebieten des Flussnetzwerkes
    - INPUT8 [`input grid`] : HG-Raster (HGGrid). Hauptgerinnerasterzellen
    - INPUT9 [`input grid`] : HG-Hoehengradienten (HGGrad). Abflussgradienten der Hauptgerinnerasterzellen
    - INPUT11 [`optional input grid`] : Referenzverlauf Flussbilanz. Raster des Referenzverlauf des (linearen) Hauptflussarmes, der zur Erstellung der Flusswasserbilanz herangezogen werden soll
    - INPUT12 [`optional input grid`] : Zuflussrasterzellen (NumInFlowCells). Raster mit Angabe ueber die Anzahl der Rasterzellen, die in eine spezifische Rasterzelle (x,y) abflieszen
    - INPUT3 [`optional input grid`] : statische Wassserentnahme (statWUse). Flaechenbasierte statische Wassserentnahme pro RiverGridbox in. ACHTUNG: Funktioniert ggf. nur bei bereits initiierten Systemen bzw. Vorlauf
    - INPUT5 [`optional input grid`] : Fluss-Speicher einlesen. Simulation mit spezifischen Gerinne- bzw. Hauptgerinne-Speicherwerten (ChannelFlow) initiieren
    - INPUT6 [`optional input grid`] : Oberflaechenabfluss-Speicher einlesen. Simulation mit spezifischen Oberflaechenabfluss-Speicherwerten (OverlandFlow) initiieren
    - INPUT7 [`optional input grid`] : Grundwasserabfluss-Speicher einlesen. Simulation mit spezifischen Grundwasserabfluss-Speicherwerten (BaseFlow) initiieren
    - OUTPUT [`output grid`] : Fluss-Speicher ausgeben. Fluss-Speicher 'CFCache' (ChannelFlowCache) am Ende der Simulation ausgeben - Initialisierungsdaten)
    - OUTPUT2 [`output grid`] : Oberflaechenabfluss-Speicher ausgeben. Oberflaechenabfluss-Speicher 'OFCache' (OverlandFlowCache) am Ende der Simulation ausgeben - Initialisierungsdaten
    - OUTPUT3 [`output grid`] : Grundwasserabfluss-Speicher ausgeben. Grundwasserabfluss-Speicher 'BFCache' (BaseFlowCache) am Ende der Simulation ausgeben - Initialisierungsdaten
    - OUTPUT4 [`output grid`] : Wasserflussvolumen. Wasserflussvolumen in m3/s
    - OUTPUT5 [`output grid`] : SumRunoffDrainage. Aufsummieren der vertikalen Runoff und Drainage Zufluesse fuer jede Rasterzelle ueber den gesamten Simulationsverlauf
    - OUTPUT6 [`output grid`] : DynWUse. Dynamisch eingelesene Flaechenwasssernutzung pro Rasterzelle. ACHTUNG: Funktioniert nur bei bereits initiierten Systemen bzw. Vorlauf
    - ONLYRB [`boolean`] : Berechnung nur im Flusseinzugsgebiet. Default: 1 Der Abfluss wird nur ueber die Rasterzellen des Flusseinzugsgebietes berechnet
    - TIMESTEP [`integer number`] : Zeitschrittdauer [s]. Minimum: 1 Default: 1 Dauer eines Simulations-Zeitschritts in Sekunden
    - CALCT [`boolean`] : automatisierter max. Zeitschritt. Default: 1 Automatisierte Berechnung der maximal moeglichen Dauer eines Zeitschrittes in [s] - Zeitschrittdauern wird ignoriert.
    - SYEAR [`integer number`] : Startjahr. Minimum: 1979 Maximum: 2009 Default: 1999 Jahr in dem die Simulation zum 1. Januar gestartet wird
    - DAYNUM [`integer number`] : Anzahl der Simulationstage. Minimum: 1 Maximum: 7670 Default: 365 Anzahl der gesamten Simulationtage ueber die berechnete wird
    - FOLDER2 [`file path`] : Speicherordner. Ordern in den alle Ausgabedaten gespeichert werden sollen
    - FOLDER1 [`file path`] : Pfad LS-Daten. Ordnerpfad der Surface Runoff- und Drainagerasterdaten des Landoberflaechenschemas
    - STREDFACR [`floating point number`] : Reduzierungsfaktor Surface Runoff [% / 100]. Minimum: 0.000000 Maximum: 1.000000 Default: 0.000000 Statische Reduzierung des vertikalen Zuflusses 'Surface Runoff' in [% / 100] pro Zeitschritt.
    - AUTOFACD [`boolean`] : Ausgleich der Surface Runoff Reduktion. Default: 0 Erhoeht automatisch die Drainage um denjenigen Volumenbetrag, um den der Surface Runoff reduziert wurde. Wenn gesetzt, wird etwaige Reduzierung der Drainage NICHT beruecksichtigt!
    - STREDFACD [`floating point number`] : Reduzierungsfaktor Drainage [% / 100]. Minimum: 0.000000 Maximum: 1.000000 Default: 0.000000 Statische Reduzierung des vertikalen Zuflusses der 'Drainage' in [% / 100] pro Zeitschritt.
    - OFFSETR [`floating point number`] : Offsetwert Surface Runoff [m3/s]. Minimum: -1.000000 Maximum: 1.000000 Default: 0.000000 Statischer Offsetwert auf den vertikalen Zufluss 'Surface Runoff' in [m3/s] je Rasterzelle. ACHTUNG wird auf jede Rasterzelle angewendet, daher limitiert auf +/-1 m3/s. Bei Wahl des Wertes Aufloesung beachten! 
    - OFFSETD [`floating point number`] : Offsetwert Drainage [m3/s]. Minimum: -1.000000 Maximum: 1.000000 Default: 0.000000 Statischer Offsetwert auf den vertikalen Zufluss 'Drainage' in [m3/s] je Rasterzelle. ACHTUNG wird auf jede Rasterzelle angewendet, daher limitiert auf +/-1 m3/s. Bei Wahl des Wertes Aufloesung beachten!
    - CACHEUSE [`boolean`] : Initiierung mit vorhandenen Speichern. Default: 0 Initialisierung der Simulation mit spezifischen Speicherwerten (Raster und NCache)
    - FOLDER4 [`file path`] : NCache einlesen. Einlesen der NCache Textdatei
    - WNC [`boolean`] : Ausgabe NCache. Default: 0 Schreibt die Werte der Speicherkaskaden zum Ende Simulation in eine Textdatei (Initialisierungsdaten)
    - PARAMC [`floating point number`] : Gerinne-Parameter cG. Minimum: 0.000000 Default: 0.060000 Parameter cG zur Berechnung der Lagtime kG des Gerinneabflusses
    - PARAMG [`floating point number`] : Oberflaechen-Parameter cO. Minimum: 0.000000 Default: 0.357000 Parameter cO zur Berechnung der Lagtime kO des Oberflaechenabflusses
    - PARAMB [`floating point number`] : Grundwasser-Parameter pB. Minimum: 0.000000 Default: 300.000000 Parameter pB zur Berechnung der Lagtime kB des Grundwasserabflusses
    - nG [`integer number`] : Gerinne-Speicherkaskade nG. Minimum: 1 Default: 3 Festlegen, wieviele Speicher die Gerinne-Speicherkaskade nG enthaelt
    - RIVG [`choice`] : Beruecksichtigung der Hauptgerinnerasterzellen?. Available Choices: [0] nein [1] ja; bestimmen anhand eines Hauptgerinnerasters (HG Raster) Default: 1 Seperate Beruecksichtigung und Berechnung ueber Hauptgerinnerasterzellen - neben den normalen Gerinnerasterzellen.
    - PARAMCR [`floating point number`] : Hauptgerinne-Parameter cHG. Minimum: 0.000000 Maximum: 1.000000 Default: 0.007000 Parameter cHG zur Berechnung der Lagtime kHG des ChannelFlow-River [optional siehe oben]
    - NHG [`integer number`] : Hauptgerinne-Speicherkaskade nHG. Minimum: 1 Default: 1 Festlegen, wieviele Speicher die Hauptgerinne-Speicherkaskade enthaelt  [optional siehe oben]
    - ENFVMAX [`boolean`] : Abflussgeschwindigkeit begrenzen. Default: 1 Die mittlere Wasserabflussgeschwindigkeit wird auf einen Hoechstwert begrenzt - Zeitschrittvorgaben und automatisierter Zeitschritt wird ueberschrieben.
    - VTRESH [`floating point number`] : Oberer Abflussgeschwindigkeitsgrenzwert [km/h]. Minimum: 0.000000 Maximum: 10.000000 Default: 4.000000 Maximale mittlere Wasserabflussgeschwindigkeit in km/h
    - WCONS [`choice`] : Dynamische Flaechenwassernutzung.... Available Choices: [0] keine [1] ...anteilig aus den Hauptgerinnerasterzellen [2] ...anteilig aus Rasterzellen der Teileinzugegebiete [3] ...genau den entsprechenden Wert aus der jeweiligen Rasterzelle entnehmen Default: 0 Auswahl der Art der dynamischen Flaechenwasserwassernutzung (WUse). ACHTUNG: Funktioniert ggf. nur bei bereits initiierten Systemen bzw. nach Vorlauf
    - FOLDER3 [`file path`] : Ordnerpfad der WUse Daten. Speicherpfad der dynamischen Wassernutzungsdaten
    - WCONUNIT [`choice`] : WUse Einheit. Available Choices: [0] m3/s [1] m3/Monat Default: 0 Einheit in der die WUse Daten vorliegen
    - WCONSD [`integer number`] : Vorlauftage ohne Entnahmen. Minimum: 0 Default: 0 Anzahl der Simulationestage bevor eine Wasserentnahme beruecksichtigt wird
    - WCONTHRES [`floating point number`] : Abflussschwellenwert [m3/s]. Minimum: 0.000000 Default: 0.000000 Fester Abflussschwellenwert in m3/s fuer das Hauptgerinne, der durch Entnahmen nicht unterschritten werden soll.
    - STCONSALL [`floating point number`] : Abflussreduzierungsfaktor Gerinnerasterzellen [% / 100]. Minimum: 0.000000 Maximum: 1.000000 Default: 0.000000 Statische Reduzierung des Gesamtabflusses in den Gerinnerasterzellen um [% / 100] pro Zeitschritt.
    - STCONSRIV [`floating point number`] : Abflussreduzierungsfaktor HG-Rasterzellen [% / 100]. Minimum: 0.000000 Maximum: 1.000000 Default: 0.000000 Statische Reduzierung des Gesamtabflusses  in den Hauptgerinnegitterboxen um [% / 100] pro Zeitschritt.
    - VRM1 [`choice`] : Abflussmanipulation Rasterzelle 1... . Available Choices: [0] nein [1] Ja, berechneten Abfluss veraendern: res. Abfluss = berechn. Abfluss * q + a [2] Ja, Abfluss manuell vorgeben: res. Abfluss = Speicherinhalt * q + a Default: 0 Der Gerinne- bzw. Hauptgerinneabfluss kann mit dieser Methode fuer Rasterzelle 1 manipuliert werden. 
    - RM1X [`integer number`] : Rasterzelle 1 [x-Koord.]. Minimum: -1 Default: -1 x-Koordinate der Rasterzelle 1, fuer die der Abfluss manipulatiert werden soll
    - RM1Y [`integer number`] : Rasterzelle 1 [y-Koord.]. Minimum: -1 Default: -1 y-Koordinate der Rasterzelle 1, fuer die der Abfluss manipulatiert werden soll
    - RM1Q [`floating point number`] : q [%/100]. Minimum: 0.000000 Default: 1.000000 Prozentualer Faktor q [%/100] fuer Rasterzelle 1
    - RM1A [`floating point number`] : a [+-m3/s]. Default: 0.000000 Addidativer Offsetwert a [+-m3/s] fuer Rasterzelle 1
    - VRM2 [`choice`] : Abflussmanipulation Rasterzelle 2... . Available Choices: [0] nein [1] Ja, berechneten Abfluss veraendern: res. Abfluss = berechn. Abfluss * q + a [2] Ja, Abfluss manuell vorgeben: res. Abfluss = Speicherinhalt * q + a Default: 0 Der Gerinne- bzw. Hauptgerinneabfluss kann mit dieser Methode fuer Rasterzelle 2 manipuliert werden. 
    - RM2X [`integer number`] : Rasterzelle 2 [x-Koord.]. Minimum: -1 Default: -1 x-Koordinate der Rasterzelle 2, fuer die der Abfluss manipulatiert werden soll
    - RM2Y [`integer number`] : Rasterzelle 2 [y-Koord.]. Minimum: -1 Default: -1 y-Koordinate der Rasterzelle 2, fuer die der Abfluss manipulatiert werden soll
    - RM2Q [`floating point number`] : q [%/100]. Minimum: 0.000000 Default: 1.000000 Prozentualer Faktor q [%/100] fuer Rasterzelle 2
    - RM2A [`floating point number`] : a [+-m3/s]. Default: 0.000000 Addidativer Offsetwert a [+-m3/s] fuer Rasterzelle 2
    - EVP1S [`text`] : EvP1 Name. Default: NeuDarchau.txt Name des Evaluierungspunktes 1
    - EVP1X [`integer number`] : EvP1 Rasterzelle [x-Koord.]. Minimum: 0 Default: 30 x-Koordinate der spezifischen Hauptgerinnerasterzelle des Evaluerungspunktes 1
    - EVP1Y [`integer number`] : EvP1 Rasterzelle [y-Koord.]. Minimum: 0 Default: 115 y-Koordinate der spezifischen Hauptgerinnerasterzelle des Evaluerungspunktes 1
    - EVP2S [`text`] : EvP2 Name. Default: Lutherstadt-Wittenberg.txt Name des Evaluierungspunktes 2
    - EVP2X [`integer number`] : EvP2 Rasterzelle [x-Koord.]. Minimum: 0 Default: 54 x-Koordinate der spezifischen Hauptgerinnerasterzelle des Evaluerungspunktes 2
    - EVP2Y [`integer number`] : EvP2 Rasterzelle [y-Koord.]. Minimum: 0 Default: 85 y-Koordinate der spezifischen Hauptgerinnerasterzelle des Evaluerungspunktes 2
    - EVP3S [`text`] : EvP3 Name. Default: Schoena.txt Name des Evaluierungspunktes 3
    - EVP3X [`integer number`] : EvP3 Rasterzelle [x-Koord.]. Minimum: 0 Default: 78 x-Koordinate der spezifischen Hauptgerinnerasterzelle des Evaluerungspunktes 3
    - EVP3Y [`integer number`] : EvP3 Rasterzelle [y-Koord.]. Minimum: 0 Default: 65 y-Koordinate der spezifischen Hauptgerinnerasterzelle des Evaluerungspunktes 3
    - RBMX [`integer number`] : Ausgangsrasterzelle [x-Koord.]. Minimum: 0 Default: 16 x-Koordinate der Ausgangsrasterzelle des Flusseinzugsgebietes
    - RBMY [`integer number`] : Ausgangsrasterzelle [y-Koord.]. Minimum: 0 Default: 121 y-Koordinate der Ausgangsrasterzelle des Flusseinzugsgebietes
    - wP [`boolean`] : SimParameters. Default: 1 Schreibt wichtige, der Simulation zugrundeliegenden Parameter in eine Textdatei
    - eP [`boolean`] : Fehlerprotokoll. Default: 1 Schreibt Fehler in Textfile
    - MONILOG1 [`boolean`] : RiverBasinDay-Monitoring. Default: 1 Monitoring taegicher Werte des Flusseinzugsgebiets
    - MONILOG3 [`boolean`] : RiverBasinMonth-Monitoring. Default: 1 Monitoring monatlicher Werte des Flusseinzugsgebiets
    - MONILOG2 [`boolean`] : WSystem-Monitoring. Default: 1 Monitoring von Zu- und Abflusswerten des WasserGesamtsystems
    - TEST1 [`choice`] : Testroutine1 durchfuehren... . Available Choices: [0] nein [1] Ja, TestRoutine1 nur fuer Teileinzugsgbiet der HG-Rasterzelle [2] Ja, TestRoutine1 fuer Flusseinzugsgebiet bis zu der HG-Rasterzelle Default: 0 Waehlen ob TestRoutine 1 durchgefuehrt werden soll... 1) nur fuer Teileinzugsgebiet der HG-Rasterzelle oder 2) fuer das Flusseinzugsgebiet bis zum Erreichen der HG-Rasterzelle.
    - XT1 [`integer number`] : Hauptgerinnerasterzelle [x-Koord.]. Minimum: 0 Default: 0 x-Koordinate der spezifischen Hauptgerinnerasterzelle fuer TestRoutine 1
    - YT1 [`integer number`] : Hauptgerinnerasterzelle [y-Koord.]. Minimum: 0 Default: 0 y-Koordinate der spezifischen Hauptgerinnerasterzelle fuer TestRoutine 1

    - Verbose [`integer number`] : Verbosity level, 0=silent, 1=tool name and success notification, 2=complete tool output.\n
    Returns
    ----------
    `boolean` : `True` on success, `False` on failure.
    '''
    Tool = Tool_Wrapper('sim_rivflow', '1', 'LandFlow Version 1.0 (build 3.5.1b)')
    if Tool.is_Okay():
        Tool.Set_Input ('INPUT', INPUT)
        Tool.Set_Input ('INPUT2', INPUT2)
        Tool.Set_Input ('INPUT10', INPUT10)
        Tool.Set_Input ('INPUT8', INPUT8)
        Tool.Set_Input ('INPUT9', INPUT9)
        Tool.Set_Input ('INPUT11', INPUT11)
        Tool.Set_Input ('INPUT12', INPUT12)
        Tool.Set_Input ('INPUT3', INPUT3)
        Tool.Set_Input ('INPUT5', INPUT5)
        Tool.Set_Input ('INPUT6', INPUT6)
        Tool.Set_Input ('INPUT7', INPUT7)
        Tool.Set_Output('OUTPUT', OUTPUT)
        Tool.Set_Output('OUTPUT2', OUTPUT2)
        Tool.Set_Output('OUTPUT3', OUTPUT3)
        Tool.Set_Output('OUTPUT4', OUTPUT4)
        Tool.Set_Output('OUTPUT5', OUTPUT5)
        Tool.Set_Output('OUTPUT6', OUTPUT6)
        Tool.Set_Option('onlyRB', ONLYRB)
        Tool.Set_Option('TimeStep', TIMESTEP)
        Tool.Set_Option('CalcT', CALCT)
        Tool.Set_Option('sYear', SYEAR)
        Tool.Set_Option('DayNum', DAYNUM)
        Tool.Set_Option('Folder2', FOLDER2)
        Tool.Set_Option('Folder1', FOLDER1)
        Tool.Set_Option('stRedFacR', STREDFACR)
        Tool.Set_Option('autoFacD', AUTOFACD)
        Tool.Set_Option('stRedFacD', STREDFACD)
        Tool.Set_Option('OffsetR', OFFSETR)
        Tool.Set_Option('OffsetD', OFFSETD)
        Tool.Set_Option('CacheUse', CACHEUSE)
        Tool.Set_Option('Folder4', FOLDER4)
        Tool.Set_Option('wNC', WNC)
        Tool.Set_Option('ParamC', PARAMC)
        Tool.Set_Option('ParamG', PARAMG)
        Tool.Set_Option('ParamB', PARAMB)
        Tool.Set_Option('nG', nG)
        Tool.Set_Option('RivG', RIVG)
        Tool.Set_Option('ParamCr', PARAMCR)
        Tool.Set_Option('nHG', NHG)
        Tool.Set_Option('EnfVmax', ENFVMAX)
        Tool.Set_Option('VTresh', VTRESH)
        Tool.Set_Option('WCons', WCONS)
        Tool.Set_Option('Folder3', FOLDER3)
        Tool.Set_Option('WConUnit', WCONUNIT)
        Tool.Set_Option('WConsD', WCONSD)
        Tool.Set_Option('WConThres', WCONTHRES)
        Tool.Set_Option('stConsAll', STCONSALL)
        Tool.Set_Option('stConsRiv', STCONSRIV)
        Tool.Set_Option('vRM1', VRM1)
        Tool.Set_Option('RM1x', RM1X)
        Tool.Set_Option('RM1y', RM1Y)
        Tool.Set_Option('RM1q', RM1Q)
        Tool.Set_Option('RM1a', RM1A)
        Tool.Set_Option('vRM2', VRM2)
        Tool.Set_Option('RM2x', RM2X)
        Tool.Set_Option('RM2y', RM2Y)
        Tool.Set_Option('RM2q', RM2Q)
        Tool.Set_Option('RM2a', RM2A)
        Tool.Set_Option('EvP1s', EVP1S)
        Tool.Set_Option('EvP1x', EVP1X)
        Tool.Set_Option('EvP1y', EVP1Y)
        Tool.Set_Option('EvP2s', EVP2S)
        Tool.Set_Option('EvP2x', EVP2X)
        Tool.Set_Option('EvP2y', EVP2Y)
        Tool.Set_Option('EvP3s', EVP3S)
        Tool.Set_Option('EvP3x', EVP3X)
        Tool.Set_Option('EvP3y', EVP3Y)
        Tool.Set_Option('RBMx', RBMX)
        Tool.Set_Option('RBMy', RBMY)
        Tool.Set_Option('wP', wP)
        Tool.Set_Option('eP', eP)
        Tool.Set_Option('MoniLog1', MONILOG1)
        Tool.Set_Option('MoniLog3', MONILOG3)
        Tool.Set_Option('MoniLog2', MONILOG2)
        Tool.Set_Option('Test1', TEST1)
        Tool.Set_Option('xt1', XT1)
        Tool.Set_Option('yt1', YT1)
        return Tool.Execute(Verbose)
    return False

def LandFlow_Version_10_build_351b(
    INPUT=None,
    INPUT2=None,
    INPUT10=None,
    INPUT8=None,
    INPUT9=None,
    INPUT11=None,
    INPUT12=None,
    INPUT3=None,
    INPUT5=None,
    INPUT6=None,
    INPUT7=None,
    OUTPUT=None,
    OUTPUT2=None,
    OUTPUT3=None,
    OUTPUT4=None,
    OUTPUT5=None,
    OUTPUT6=None,
    ONLYRB=None,
    TIMESTEP=None,
    CALCT=None,
    SYEAR=None,
    DAYNUM=None,
    FOLDER2=None,
    FOLDER1=None,
    STREDFACR=None,
    AUTOFACD=None,
    STREDFACD=None,
    OFFSETR=None,
    OFFSETD=None,
    CACHEUSE=None,
    FOLDER4=None,
    WNC=None,
    PARAMC=None,
    PARAMG=None,
    PARAMB=None,
    nG=None,
    RIVG=None,
    PARAMCR=None,
    NHG=None,
    ENFVMAX=None,
    VTRESH=None,
    WCONS=None,
    FOLDER3=None,
    WCONUNIT=None,
    WCONSD=None,
    WCONTHRES=None,
    STCONSALL=None,
    STCONSRIV=None,
    VRM1=None,
    RM1X=None,
    RM1Y=None,
    RM1Q=None,
    RM1A=None,
    VRM2=None,
    RM2X=None,
    RM2Y=None,
    RM2Q=None,
    RM2A=None,
    EVP1S=None,
    EVP1X=None,
    EVP1Y=None,
    EVP2S=None,
    EVP2X=None,
    EVP2Y=None,
    EVP3S=None,
    EVP3X=None,
    EVP3Y=None,
    RBMX=None,
    RBMY=None,
    wP=None,
    eP=None,
    MONILOG1=None,
    MONILOG3=None,
    MONILOG2=None,
    TEST1=None,
    XT1=None,
    YT1=None, Verbose=2):
    '''
    LandFlow Version 1.0 (build 3.5.1b)
    ----------
    [sim_rivflow.1]\n
    Landflow of RiverBasine\n
    Arguments
    ----------
    - INPUT [`input grid`] : Gelaendemodell (DTM). Digitales Gelaendemodell des Flusseinzugsgebietes
    - INPUT2 [`input grid`] : Hoehengradienten (Grad). Abflussgradienten jeder Rasterzelle des Flusseinzugsgebietes
    - INPUT10 [`input grid`] : Flusseinzugsgebiet (BasinShare). Abgrenzung des Flusseinzugsgebiets mit den Teileinzugsgebieten des Flussnetzwerkes
    - INPUT8 [`input grid`] : HG-Raster (HGGrid). Hauptgerinnerasterzellen
    - INPUT9 [`input grid`] : HG-Hoehengradienten (HGGrad). Abflussgradienten der Hauptgerinnerasterzellen
    - INPUT11 [`optional input grid`] : Referenzverlauf Flussbilanz. Raster des Referenzverlauf des (linearen) Hauptflussarmes, der zur Erstellung der Flusswasserbilanz herangezogen werden soll
    - INPUT12 [`optional input grid`] : Zuflussrasterzellen (NumInFlowCells). Raster mit Angabe ueber die Anzahl der Rasterzellen, die in eine spezifische Rasterzelle (x,y) abflieszen
    - INPUT3 [`optional input grid`] : statische Wassserentnahme (statWUse). Flaechenbasierte statische Wassserentnahme pro RiverGridbox in. ACHTUNG: Funktioniert ggf. nur bei bereits initiierten Systemen bzw. Vorlauf
    - INPUT5 [`optional input grid`] : Fluss-Speicher einlesen. Simulation mit spezifischen Gerinne- bzw. Hauptgerinne-Speicherwerten (ChannelFlow) initiieren
    - INPUT6 [`optional input grid`] : Oberflaechenabfluss-Speicher einlesen. Simulation mit spezifischen Oberflaechenabfluss-Speicherwerten (OverlandFlow) initiieren
    - INPUT7 [`optional input grid`] : Grundwasserabfluss-Speicher einlesen. Simulation mit spezifischen Grundwasserabfluss-Speicherwerten (BaseFlow) initiieren
    - OUTPUT [`output grid`] : Fluss-Speicher ausgeben. Fluss-Speicher 'CFCache' (ChannelFlowCache) am Ende der Simulation ausgeben - Initialisierungsdaten)
    - OUTPUT2 [`output grid`] : Oberflaechenabfluss-Speicher ausgeben. Oberflaechenabfluss-Speicher 'OFCache' (OverlandFlowCache) am Ende der Simulation ausgeben - Initialisierungsdaten
    - OUTPUT3 [`output grid`] : Grundwasserabfluss-Speicher ausgeben. Grundwasserabfluss-Speicher 'BFCache' (BaseFlowCache) am Ende der Simulation ausgeben - Initialisierungsdaten
    - OUTPUT4 [`output grid`] : Wasserflussvolumen. Wasserflussvolumen in m3/s
    - OUTPUT5 [`output grid`] : SumRunoffDrainage. Aufsummieren der vertikalen Runoff und Drainage Zufluesse fuer jede Rasterzelle ueber den gesamten Simulationsverlauf
    - OUTPUT6 [`output grid`] : DynWUse. Dynamisch eingelesene Flaechenwasssernutzung pro Rasterzelle. ACHTUNG: Funktioniert nur bei bereits initiierten Systemen bzw. Vorlauf
    - ONLYRB [`boolean`] : Berechnung nur im Flusseinzugsgebiet. Default: 1 Der Abfluss wird nur ueber die Rasterzellen des Flusseinzugsgebietes berechnet
    - TIMESTEP [`integer number`] : Zeitschrittdauer [s]. Minimum: 1 Default: 1 Dauer eines Simulations-Zeitschritts in Sekunden
    - CALCT [`boolean`] : automatisierter max. Zeitschritt. Default: 1 Automatisierte Berechnung der maximal moeglichen Dauer eines Zeitschrittes in [s] - Zeitschrittdauern wird ignoriert.
    - SYEAR [`integer number`] : Startjahr. Minimum: 1979 Maximum: 2009 Default: 1999 Jahr in dem die Simulation zum 1. Januar gestartet wird
    - DAYNUM [`integer number`] : Anzahl der Simulationstage. Minimum: 1 Maximum: 7670 Default: 365 Anzahl der gesamten Simulationtage ueber die berechnete wird
    - FOLDER2 [`file path`] : Speicherordner. Ordern in den alle Ausgabedaten gespeichert werden sollen
    - FOLDER1 [`file path`] : Pfad LS-Daten. Ordnerpfad der Surface Runoff- und Drainagerasterdaten des Landoberflaechenschemas
    - STREDFACR [`floating point number`] : Reduzierungsfaktor Surface Runoff [% / 100]. Minimum: 0.000000 Maximum: 1.000000 Default: 0.000000 Statische Reduzierung des vertikalen Zuflusses 'Surface Runoff' in [% / 100] pro Zeitschritt.
    - AUTOFACD [`boolean`] : Ausgleich der Surface Runoff Reduktion. Default: 0 Erhoeht automatisch die Drainage um denjenigen Volumenbetrag, um den der Surface Runoff reduziert wurde. Wenn gesetzt, wird etwaige Reduzierung der Drainage NICHT beruecksichtigt!
    - STREDFACD [`floating point number`] : Reduzierungsfaktor Drainage [% / 100]. Minimum: 0.000000 Maximum: 1.000000 Default: 0.000000 Statische Reduzierung des vertikalen Zuflusses der 'Drainage' in [% / 100] pro Zeitschritt.
    - OFFSETR [`floating point number`] : Offsetwert Surface Runoff [m3/s]. Minimum: -1.000000 Maximum: 1.000000 Default: 0.000000 Statischer Offsetwert auf den vertikalen Zufluss 'Surface Runoff' in [m3/s] je Rasterzelle. ACHTUNG wird auf jede Rasterzelle angewendet, daher limitiert auf +/-1 m3/s. Bei Wahl des Wertes Aufloesung beachten! 
    - OFFSETD [`floating point number`] : Offsetwert Drainage [m3/s]. Minimum: -1.000000 Maximum: 1.000000 Default: 0.000000 Statischer Offsetwert auf den vertikalen Zufluss 'Drainage' in [m3/s] je Rasterzelle. ACHTUNG wird auf jede Rasterzelle angewendet, daher limitiert auf +/-1 m3/s. Bei Wahl des Wertes Aufloesung beachten!
    - CACHEUSE [`boolean`] : Initiierung mit vorhandenen Speichern. Default: 0 Initialisierung der Simulation mit spezifischen Speicherwerten (Raster und NCache)
    - FOLDER4 [`file path`] : NCache einlesen. Einlesen der NCache Textdatei
    - WNC [`boolean`] : Ausgabe NCache. Default: 0 Schreibt die Werte der Speicherkaskaden zum Ende Simulation in eine Textdatei (Initialisierungsdaten)
    - PARAMC [`floating point number`] : Gerinne-Parameter cG. Minimum: 0.000000 Default: 0.060000 Parameter cG zur Berechnung der Lagtime kG des Gerinneabflusses
    - PARAMG [`floating point number`] : Oberflaechen-Parameter cO. Minimum: 0.000000 Default: 0.357000 Parameter cO zur Berechnung der Lagtime kO des Oberflaechenabflusses
    - PARAMB [`floating point number`] : Grundwasser-Parameter pB. Minimum: 0.000000 Default: 300.000000 Parameter pB zur Berechnung der Lagtime kB des Grundwasserabflusses
    - nG [`integer number`] : Gerinne-Speicherkaskade nG. Minimum: 1 Default: 3 Festlegen, wieviele Speicher die Gerinne-Speicherkaskade nG enthaelt
    - RIVG [`choice`] : Beruecksichtigung der Hauptgerinnerasterzellen?. Available Choices: [0] nein [1] ja; bestimmen anhand eines Hauptgerinnerasters (HG Raster) Default: 1 Seperate Beruecksichtigung und Berechnung ueber Hauptgerinnerasterzellen - neben den normalen Gerinnerasterzellen.
    - PARAMCR [`floating point number`] : Hauptgerinne-Parameter cHG. Minimum: 0.000000 Maximum: 1.000000 Default: 0.007000 Parameter cHG zur Berechnung der Lagtime kHG des ChannelFlow-River [optional siehe oben]
    - NHG [`integer number`] : Hauptgerinne-Speicherkaskade nHG. Minimum: 1 Default: 1 Festlegen, wieviele Speicher die Hauptgerinne-Speicherkaskade enthaelt  [optional siehe oben]
    - ENFVMAX [`boolean`] : Abflussgeschwindigkeit begrenzen. Default: 1 Die mittlere Wasserabflussgeschwindigkeit wird auf einen Hoechstwert begrenzt - Zeitschrittvorgaben und automatisierter Zeitschritt wird ueberschrieben.
    - VTRESH [`floating point number`] : Oberer Abflussgeschwindigkeitsgrenzwert [km/h]. Minimum: 0.000000 Maximum: 10.000000 Default: 4.000000 Maximale mittlere Wasserabflussgeschwindigkeit in km/h
    - WCONS [`choice`] : Dynamische Flaechenwassernutzung.... Available Choices: [0] keine [1] ...anteilig aus den Hauptgerinnerasterzellen [2] ...anteilig aus Rasterzellen der Teileinzugegebiete [3] ...genau den entsprechenden Wert aus der jeweiligen Rasterzelle entnehmen Default: 0 Auswahl der Art der dynamischen Flaechenwasserwassernutzung (WUse). ACHTUNG: Funktioniert ggf. nur bei bereits initiierten Systemen bzw. nach Vorlauf
    - FOLDER3 [`file path`] : Ordnerpfad der WUse Daten. Speicherpfad der dynamischen Wassernutzungsdaten
    - WCONUNIT [`choice`] : WUse Einheit. Available Choices: [0] m3/s [1] m3/Monat Default: 0 Einheit in der die WUse Daten vorliegen
    - WCONSD [`integer number`] : Vorlauftage ohne Entnahmen. Minimum: 0 Default: 0 Anzahl der Simulationestage bevor eine Wasserentnahme beruecksichtigt wird
    - WCONTHRES [`floating point number`] : Abflussschwellenwert [m3/s]. Minimum: 0.000000 Default: 0.000000 Fester Abflussschwellenwert in m3/s fuer das Hauptgerinne, der durch Entnahmen nicht unterschritten werden soll.
    - STCONSALL [`floating point number`] : Abflussreduzierungsfaktor Gerinnerasterzellen [% / 100]. Minimum: 0.000000 Maximum: 1.000000 Default: 0.000000 Statische Reduzierung des Gesamtabflusses in den Gerinnerasterzellen um [% / 100] pro Zeitschritt.
    - STCONSRIV [`floating point number`] : Abflussreduzierungsfaktor HG-Rasterzellen [% / 100]. Minimum: 0.000000 Maximum: 1.000000 Default: 0.000000 Statische Reduzierung des Gesamtabflusses  in den Hauptgerinnegitterboxen um [% / 100] pro Zeitschritt.
    - VRM1 [`choice`] : Abflussmanipulation Rasterzelle 1... . Available Choices: [0] nein [1] Ja, berechneten Abfluss veraendern: res. Abfluss = berechn. Abfluss * q + a [2] Ja, Abfluss manuell vorgeben: res. Abfluss = Speicherinhalt * q + a Default: 0 Der Gerinne- bzw. Hauptgerinneabfluss kann mit dieser Methode fuer Rasterzelle 1 manipuliert werden. 
    - RM1X [`integer number`] : Rasterzelle 1 [x-Koord.]. Minimum: -1 Default: -1 x-Koordinate der Rasterzelle 1, fuer die der Abfluss manipulatiert werden soll
    - RM1Y [`integer number`] : Rasterzelle 1 [y-Koord.]. Minimum: -1 Default: -1 y-Koordinate der Rasterzelle 1, fuer die der Abfluss manipulatiert werden soll
    - RM1Q [`floating point number`] : q [%/100]. Minimum: 0.000000 Default: 1.000000 Prozentualer Faktor q [%/100] fuer Rasterzelle 1
    - RM1A [`floating point number`] : a [+-m3/s]. Default: 0.000000 Addidativer Offsetwert a [+-m3/s] fuer Rasterzelle 1
    - VRM2 [`choice`] : Abflussmanipulation Rasterzelle 2... . Available Choices: [0] nein [1] Ja, berechneten Abfluss veraendern: res. Abfluss = berechn. Abfluss * q + a [2] Ja, Abfluss manuell vorgeben: res. Abfluss = Speicherinhalt * q + a Default: 0 Der Gerinne- bzw. Hauptgerinneabfluss kann mit dieser Methode fuer Rasterzelle 2 manipuliert werden. 
    - RM2X [`integer number`] : Rasterzelle 2 [x-Koord.]. Minimum: -1 Default: -1 x-Koordinate der Rasterzelle 2, fuer die der Abfluss manipulatiert werden soll
    - RM2Y [`integer number`] : Rasterzelle 2 [y-Koord.]. Minimum: -1 Default: -1 y-Koordinate der Rasterzelle 2, fuer die der Abfluss manipulatiert werden soll
    - RM2Q [`floating point number`] : q [%/100]. Minimum: 0.000000 Default: 1.000000 Prozentualer Faktor q [%/100] fuer Rasterzelle 2
    - RM2A [`floating point number`] : a [+-m3/s]. Default: 0.000000 Addidativer Offsetwert a [+-m3/s] fuer Rasterzelle 2
    - EVP1S [`text`] : EvP1 Name. Default: NeuDarchau.txt Name des Evaluierungspunktes 1
    - EVP1X [`integer number`] : EvP1 Rasterzelle [x-Koord.]. Minimum: 0 Default: 30 x-Koordinate der spezifischen Hauptgerinnerasterzelle des Evaluerungspunktes 1
    - EVP1Y [`integer number`] : EvP1 Rasterzelle [y-Koord.]. Minimum: 0 Default: 115 y-Koordinate der spezifischen Hauptgerinnerasterzelle des Evaluerungspunktes 1
    - EVP2S [`text`] : EvP2 Name. Default: Lutherstadt-Wittenberg.txt Name des Evaluierungspunktes 2
    - EVP2X [`integer number`] : EvP2 Rasterzelle [x-Koord.]. Minimum: 0 Default: 54 x-Koordinate der spezifischen Hauptgerinnerasterzelle des Evaluerungspunktes 2
    - EVP2Y [`integer number`] : EvP2 Rasterzelle [y-Koord.]. Minimum: 0 Default: 85 y-Koordinate der spezifischen Hauptgerinnerasterzelle des Evaluerungspunktes 2
    - EVP3S [`text`] : EvP3 Name. Default: Schoena.txt Name des Evaluierungspunktes 3
    - EVP3X [`integer number`] : EvP3 Rasterzelle [x-Koord.]. Minimum: 0 Default: 78 x-Koordinate der spezifischen Hauptgerinnerasterzelle des Evaluerungspunktes 3
    - EVP3Y [`integer number`] : EvP3 Rasterzelle [y-Koord.]. Minimum: 0 Default: 65 y-Koordinate der spezifischen Hauptgerinnerasterzelle des Evaluerungspunktes 3
    - RBMX [`integer number`] : Ausgangsrasterzelle [x-Koord.]. Minimum: 0 Default: 16 x-Koordinate der Ausgangsrasterzelle des Flusseinzugsgebietes
    - RBMY [`integer number`] : Ausgangsrasterzelle [y-Koord.]. Minimum: 0 Default: 121 y-Koordinate der Ausgangsrasterzelle des Flusseinzugsgebietes
    - wP [`boolean`] : SimParameters. Default: 1 Schreibt wichtige, der Simulation zugrundeliegenden Parameter in eine Textdatei
    - eP [`boolean`] : Fehlerprotokoll. Default: 1 Schreibt Fehler in Textfile
    - MONILOG1 [`boolean`] : RiverBasinDay-Monitoring. Default: 1 Monitoring taegicher Werte des Flusseinzugsgebiets
    - MONILOG3 [`boolean`] : RiverBasinMonth-Monitoring. Default: 1 Monitoring monatlicher Werte des Flusseinzugsgebiets
    - MONILOG2 [`boolean`] : WSystem-Monitoring. Default: 1 Monitoring von Zu- und Abflusswerten des WasserGesamtsystems
    - TEST1 [`choice`] : Testroutine1 durchfuehren... . Available Choices: [0] nein [1] Ja, TestRoutine1 nur fuer Teileinzugsgbiet der HG-Rasterzelle [2] Ja, TestRoutine1 fuer Flusseinzugsgebiet bis zu der HG-Rasterzelle Default: 0 Waehlen ob TestRoutine 1 durchgefuehrt werden soll... 1) nur fuer Teileinzugsgebiet der HG-Rasterzelle oder 2) fuer das Flusseinzugsgebiet bis zum Erreichen der HG-Rasterzelle.
    - XT1 [`integer number`] : Hauptgerinnerasterzelle [x-Koord.]. Minimum: 0 Default: 0 x-Koordinate der spezifischen Hauptgerinnerasterzelle fuer TestRoutine 1
    - YT1 [`integer number`] : Hauptgerinnerasterzelle [y-Koord.]. Minimum: 0 Default: 0 y-Koordinate der spezifischen Hauptgerinnerasterzelle fuer TestRoutine 1

    - Verbose [`integer number`] : Verbosity level, 0=silent, 1=tool name and success notification, 2=complete tool output.\n
    Returns
    ----------
    `boolean` : `True` on success, `False` on failure.
    '''
    Tool = Tool_Wrapper('sim_rivflow', '1', 'LandFlow Version 1.0 (build 3.5.1b)')
    if Tool.is_Okay():
        Tool.Set_Input ('INPUT', INPUT)
        Tool.Set_Input ('INPUT2', INPUT2)
        Tool.Set_Input ('INPUT10', INPUT10)
        Tool.Set_Input ('INPUT8', INPUT8)
        Tool.Set_Input ('INPUT9', INPUT9)
        Tool.Set_Input ('INPUT11', INPUT11)
        Tool.Set_Input ('INPUT12', INPUT12)
        Tool.Set_Input ('INPUT3', INPUT3)
        Tool.Set_Input ('INPUT5', INPUT5)
        Tool.Set_Input ('INPUT6', INPUT6)
        Tool.Set_Input ('INPUT7', INPUT7)
        Tool.Set_Output('OUTPUT', OUTPUT)
        Tool.Set_Output('OUTPUT2', OUTPUT2)
        Tool.Set_Output('OUTPUT3', OUTPUT3)
        Tool.Set_Output('OUTPUT4', OUTPUT4)
        Tool.Set_Output('OUTPUT5', OUTPUT5)
        Tool.Set_Output('OUTPUT6', OUTPUT6)
        Tool.Set_Option('onlyRB', ONLYRB)
        Tool.Set_Option('TimeStep', TIMESTEP)
        Tool.Set_Option('CalcT', CALCT)
        Tool.Set_Option('sYear', SYEAR)
        Tool.Set_Option('DayNum', DAYNUM)
        Tool.Set_Option('Folder2', FOLDER2)
        Tool.Set_Option('Folder1', FOLDER1)
        Tool.Set_Option('stRedFacR', STREDFACR)
        Tool.Set_Option('autoFacD', AUTOFACD)
        Tool.Set_Option('stRedFacD', STREDFACD)
        Tool.Set_Option('OffsetR', OFFSETR)
        Tool.Set_Option('OffsetD', OFFSETD)
        Tool.Set_Option('CacheUse', CACHEUSE)
        Tool.Set_Option('Folder4', FOLDER4)
        Tool.Set_Option('wNC', WNC)
        Tool.Set_Option('ParamC', PARAMC)
        Tool.Set_Option('ParamG', PARAMG)
        Tool.Set_Option('ParamB', PARAMB)
        Tool.Set_Option('nG', nG)
        Tool.Set_Option('RivG', RIVG)
        Tool.Set_Option('ParamCr', PARAMCR)
        Tool.Set_Option('nHG', NHG)
        Tool.Set_Option('EnfVmax', ENFVMAX)
        Tool.Set_Option('VTresh', VTRESH)
        Tool.Set_Option('WCons', WCONS)
        Tool.Set_Option('Folder3', FOLDER3)
        Tool.Set_Option('WConUnit', WCONUNIT)
        Tool.Set_Option('WConsD', WCONSD)
        Tool.Set_Option('WConThres', WCONTHRES)
        Tool.Set_Option('stConsAll', STCONSALL)
        Tool.Set_Option('stConsRiv', STCONSRIV)
        Tool.Set_Option('vRM1', VRM1)
        Tool.Set_Option('RM1x', RM1X)
        Tool.Set_Option('RM1y', RM1Y)
        Tool.Set_Option('RM1q', RM1Q)
        Tool.Set_Option('RM1a', RM1A)
        Tool.Set_Option('vRM2', VRM2)
        Tool.Set_Option('RM2x', RM2X)
        Tool.Set_Option('RM2y', RM2Y)
        Tool.Set_Option('RM2q', RM2Q)
        Tool.Set_Option('RM2a', RM2A)
        Tool.Set_Option('EvP1s', EVP1S)
        Tool.Set_Option('EvP1x', EVP1X)
        Tool.Set_Option('EvP1y', EVP1Y)
        Tool.Set_Option('EvP2s', EVP2S)
        Tool.Set_Option('EvP2x', EVP2X)
        Tool.Set_Option('EvP2y', EVP2Y)
        Tool.Set_Option('EvP3s', EVP3S)
        Tool.Set_Option('EvP3x', EVP3X)
        Tool.Set_Option('EvP3y', EVP3Y)
        Tool.Set_Option('RBMx', RBMX)
        Tool.Set_Option('RBMy', RBMY)
        Tool.Set_Option('wP', wP)
        Tool.Set_Option('eP', eP)
        Tool.Set_Option('MoniLog1', MONILOG1)
        Tool.Set_Option('MoniLog3', MONILOG3)
        Tool.Set_Option('MoniLog2', MONILOG2)
        Tool.Set_Option('Test1', TEST1)
        Tool.Set_Option('xt1', XT1)
        Tool.Set_Option('yt1', YT1)
        return Tool.Execute(Verbose)
    return False

def run_tool_sim_rivflow_3(
    INPUT=None,
    OUTPUT=None,
    SX=None,
    SY=None,
    MX=None,
    MY=None,
    OWRITE=None, Verbose=2):
    '''
    RiverGridGeneration
    ----------
    [sim_rivflow.3]\n
    Generation of RiverCourse-GridCells\n
    Arguments
    ----------
    - INPUT [`input grid`] : GelÃ¤ndemodell (DTM). Digitales GelÃ¤ndemodell des Flusseinzugsgebietes
    - OUTPUT [`output grid`] : HG Raster. Schrittweise Ausgabe der gewÃ¼nschten Abflusspfade des Hauprgerinnerasters
    - SX [`integer number`] : Abflusspfad-Quelle, x-Wert. Minimum: 0 Default: 0 X-Wert der Quellen-Rasterzelle
    - SY [`integer number`] : Abflusspfad-Quelle, y-Wert. Minimum: 0 Default: 0 Y-Wert der Quellen-Rastertzelle
    - MX [`integer number`] : Abflusspfad-MÃ¼ndung, x-Wert. Minimum: 0 Default: 0 X-Wert des MÃ¼ndungs-Rasterzelle
    - MY [`integer number`] : Abflusspfad-MÃ¼ndung, y-Wert. Minimum: 0 Default: 0 Y-Wert des MÃ¼ndungsRasterzelle
    - OWRITE [`boolean`] : Overwrite RiverGridCells. Default: 0 Bereits existierende RiverGridCells werden Ã¼berschrieben (Wenn nicht gesetzt: Abflusspfadende, wenn eine existierende RiverGridCell erreicht wird -> zB bei Fluss mit zwei Quellen sinnvoll).

    - Verbose [`integer number`] : Verbosity level, 0=silent, 1=tool name and success notification, 2=complete tool output.\n
    Returns
    ----------
    `boolean` : `True` on success, `False` on failure.
    '''
    Tool = Tool_Wrapper('sim_rivflow', '3', 'RiverGridGeneration')
    if Tool.is_Okay():
        Tool.Set_Input ('INPUT', INPUT)
        Tool.Set_Output('OUTPUT', OUTPUT)
        Tool.Set_Option('SX', SX)
        Tool.Set_Option('SY', SY)
        Tool.Set_Option('MX', MX)
        Tool.Set_Option('MY', MY)
        Tool.Set_Option('Owrite', OWRITE)
        return Tool.Execute(Verbose)
    return False

def RiverGridGeneration(
    INPUT=None,
    OUTPUT=None,
    SX=None,
    SY=None,
    MX=None,
    MY=None,
    OWRITE=None, Verbose=2):
    '''
    RiverGridGeneration
    ----------
    [sim_rivflow.3]\n
    Generation of RiverCourse-GridCells\n
    Arguments
    ----------
    - INPUT [`input grid`] : GelÃ¤ndemodell (DTM). Digitales GelÃ¤ndemodell des Flusseinzugsgebietes
    - OUTPUT [`output grid`] : HG Raster. Schrittweise Ausgabe der gewÃ¼nschten Abflusspfade des Hauprgerinnerasters
    - SX [`integer number`] : Abflusspfad-Quelle, x-Wert. Minimum: 0 Default: 0 X-Wert der Quellen-Rasterzelle
    - SY [`integer number`] : Abflusspfad-Quelle, y-Wert. Minimum: 0 Default: 0 Y-Wert der Quellen-Rastertzelle
    - MX [`integer number`] : Abflusspfad-MÃ¼ndung, x-Wert. Minimum: 0 Default: 0 X-Wert des MÃ¼ndungs-Rasterzelle
    - MY [`integer number`] : Abflusspfad-MÃ¼ndung, y-Wert. Minimum: 0 Default: 0 Y-Wert des MÃ¼ndungsRasterzelle
    - OWRITE [`boolean`] : Overwrite RiverGridCells. Default: 0 Bereits existierende RiverGridCells werden Ã¼berschrieben (Wenn nicht gesetzt: Abflusspfadende, wenn eine existierende RiverGridCell erreicht wird -> zB bei Fluss mit zwei Quellen sinnvoll).

    - Verbose [`integer number`] : Verbosity level, 0=silent, 1=tool name and success notification, 2=complete tool output.\n
    Returns
    ----------
    `boolean` : `True` on success, `False` on failure.
    '''
    Tool = Tool_Wrapper('sim_rivflow', '3', 'RiverGridGeneration')
    if Tool.is_Okay():
        Tool.Set_Input ('INPUT', INPUT)
        Tool.Set_Output('OUTPUT', OUTPUT)
        Tool.Set_Option('SX', SX)
        Tool.Set_Option('SY', SY)
        Tool.Set_Option('MX', MX)
        Tool.Set_Option('MY', MY)
        Tool.Set_Option('Owrite', OWRITE)
        return Tool.Execute(Verbose)
    return False

def run_tool_sim_rivflow_4(
    INPUT=None,
    FOLDER1=None,
    sY=None,
    eY=None,
    DOMW=None,
    ELECW=None,
    LIVEW=None,
    MANW=None,
    IRRW=None,
    FVA=None, Verbose=2):
    '''
    GridCombination
    ----------
    [sim_rivflow.4]\n
    Grid Combination\n
    Arguments
    ----------
    - INPUT [`input grid`] : Gelaendemodell (DTM). Digitales Gelaendemodell des Flusseinzugsgebietes
    - FOLDER1 [`file path`] : Pfad WaterGap Raster. Ordnerpfad in dem alle zu bearbeitenden WaterGap Raster abgelegt sind
    - sY [`integer number`] : Start-Jahr. Minimum: 1906 Maximum: 2000 Default: 1990 Jahr in dem die Gridoperation startet
    - eY [`integer number`] : End-Jahr. Minimum: 1906 Maximum: 2000 Default: 1990 Jahr in dem der Verarbeitungsprozess enden soll
    - DOMW [`boolean`] : Domestic Water. Default: 1 Beruecksichtigung der Domestic Water im resultieren Raster.
    - ELECW [`boolean`] : Electricity Water. Default: 1 Beruecksichtigung der Electricity Water im resultieren Raster.
    - LIVEW [`boolean`] : Livestock Water. Default: 1 Beruecksichtigung der Livestock Water im resultieren Raster.
    - MANW [`boolean`] : Manufacturing Water. Default: 1 Beruecksichtigung des Manufacturing Water im resultieren Raster.
    - IRRW [`boolean`] : Irrigation Water. Default: 1 Beruecksichtigung des Irrigation Water im resultieren Raster (moeglicher Einheitenfehler im WaterGapDatensatz!!).
    - FVA [`choice`] : Flaechenverbrauch-Auswahl (FvA). Available Choices: [0] Resultierendes Raster ueber WasserENTNAHME erstellen [1] Resultierendes Raster ueber WasserNUTZUNG erstellen Default: 0

    - Verbose [`integer number`] : Verbosity level, 0=silent, 1=tool name and success notification, 2=complete tool output.\n
    Returns
    ----------
    `boolean` : `True` on success, `False` on failure.
    '''
    Tool = Tool_Wrapper('sim_rivflow', '4', 'GridCombination')
    if Tool.is_Okay():
        Tool.Set_Input ('INPUT', INPUT)
        Tool.Set_Option('Folder1', FOLDER1)
        Tool.Set_Option('sY', sY)
        Tool.Set_Option('eY', eY)
        Tool.Set_Option('DomW', DOMW)
        Tool.Set_Option('ElecW', ELECW)
        Tool.Set_Option('LiveW', LIVEW)
        Tool.Set_Option('ManW', MANW)
        Tool.Set_Option('IrrW', IRRW)
        Tool.Set_Option('FvA', FVA)
        return Tool.Execute(Verbose)
    return False

def GridCombination(
    INPUT=None,
    FOLDER1=None,
    sY=None,
    eY=None,
    DOMW=None,
    ELECW=None,
    LIVEW=None,
    MANW=None,
    IRRW=None,
    FVA=None, Verbose=2):
    '''
    GridCombination
    ----------
    [sim_rivflow.4]\n
    Grid Combination\n
    Arguments
    ----------
    - INPUT [`input grid`] : Gelaendemodell (DTM). Digitales Gelaendemodell des Flusseinzugsgebietes
    - FOLDER1 [`file path`] : Pfad WaterGap Raster. Ordnerpfad in dem alle zu bearbeitenden WaterGap Raster abgelegt sind
    - sY [`integer number`] : Start-Jahr. Minimum: 1906 Maximum: 2000 Default: 1990 Jahr in dem die Gridoperation startet
    - eY [`integer number`] : End-Jahr. Minimum: 1906 Maximum: 2000 Default: 1990 Jahr in dem der Verarbeitungsprozess enden soll
    - DOMW [`boolean`] : Domestic Water. Default: 1 Beruecksichtigung der Domestic Water im resultieren Raster.
    - ELECW [`boolean`] : Electricity Water. Default: 1 Beruecksichtigung der Electricity Water im resultieren Raster.
    - LIVEW [`boolean`] : Livestock Water. Default: 1 Beruecksichtigung der Livestock Water im resultieren Raster.
    - MANW [`boolean`] : Manufacturing Water. Default: 1 Beruecksichtigung des Manufacturing Water im resultieren Raster.
    - IRRW [`boolean`] : Irrigation Water. Default: 1 Beruecksichtigung des Irrigation Water im resultieren Raster (moeglicher Einheitenfehler im WaterGapDatensatz!!).
    - FVA [`choice`] : Flaechenverbrauch-Auswahl (FvA). Available Choices: [0] Resultierendes Raster ueber WasserENTNAHME erstellen [1] Resultierendes Raster ueber WasserNUTZUNG erstellen Default: 0

    - Verbose [`integer number`] : Verbosity level, 0=silent, 1=tool name and success notification, 2=complete tool output.\n
    Returns
    ----------
    `boolean` : `True` on success, `False` on failure.
    '''
    Tool = Tool_Wrapper('sim_rivflow', '4', 'GridCombination')
    if Tool.is_Okay():
        Tool.Set_Input ('INPUT', INPUT)
        Tool.Set_Option('Folder1', FOLDER1)
        Tool.Set_Option('sY', sY)
        Tool.Set_Option('eY', eY)
        Tool.Set_Option('DomW', DOMW)
        Tool.Set_Option('ElecW', ELECW)
        Tool.Set_Option('LiveW', LIVEW)
        Tool.Set_Option('ManW', MANW)
        Tool.Set_Option('IrrW', IRRW)
        Tool.Set_Option('FvA', FVA)
        return Tool.Execute(Verbose)
    return False

