The Ambhas_Cpp package provide a main model of interest called Ambhas_Cpp, 3 other models can also be usefull GenGRDcan_cpp, RotateSticsConditionsEditor and SticsConditionsEditor (an additionnal model is also in the package to provide some sample simulators, but it will not be documented here). Sample input files for those sample simulator are also provided in the /data folder.
The Ambhas_Cpp is a distributed groundwater model for simulating daily evolution of the water table level. The GenGRDcan_cpp model purpose is to help setting up the simulator automatically. The RotateSticsConditionsEditor and SticsConditionsEditor models purpose are to help setting up a class of model’s bundle of experimental conditions from a single input key value.
List of required external packages (with link to distribution when available).
The Ambhas_Cpp is a distributed groundwater model.
It simulates the daily groundwater level variations. The model is based
on McDonald and Harbaugh equations (1988).
More precisely, for an unconfined aquifer in 2D, the groundwater flow is
calculated from the Equation 1 (McDonald & Harbaugh, 1988)
This version is a C++ translation of a Python source code from Sat Tomer
source
The Ambhas_Cpp model (using extension class DiscreteTimeDyn
)
See documentation of DiscreteTimeDyn
to get all available extension parameters (for example
time_step)
List and informations about all possible parameters (name, type, default value, ismandatory, description).
Parameter name | Type | Default value | Is mandatory ? | Description |
---|---|---|---|---|
DbgLog | double | 0 | [] | Verbosity level for debug info (console outputs) |
n | integer | 0 | [] | Number of active plot in watershed from GenGRDcan to compare to local active plots read in InputGrid file |
PkgName | string | Ambhas_Cpp | [] | VLE package name containing the GIS files |
InputGrid | string | watershed.grd | [] | File name of the GIS file (use ASCII grid format) |
InputGrid_hini | string | [] | File name of the GIS file (use ASCII grid format) with initial groundwater level for all watershed pixels (m) | |
hini | double | 600 | [] | Initial groundwater level for all watershed pixels (m), used if and only if InputGrid_hini is not provided |
DemGrid | string | - | [] | Optional file name of the GIS file (use ASCII grid format) for soil surface elevation in m |
dem | double | Inf | [] | soil surface elevation (m), used if and only if DemGrid is not provided |
SoilThickness | double | 0 | [] | distance between soil surface and GW max elevation in m |
NamingMode | string | x_y | [] | Naming convention code (see details for more info) |
dt | integer | 1 | [] | time step (an internal one for H(t) computation, not related to the
time_step parameter from DiscreteTimeDyn ) (s) |
InputGrid_hmin | string | [] | File name of the GIS file (use ASCII grid format) with Groundwater level corresponding to 0 discharge for all watershed pixels (m) | |
hmin | double | 580 | [] | Groundwater level corresponding to 0 discharge (m), used if and only if InputGrid_hmin is not provided |
InputGrid_Sy | string | [] | File name of the GIS file (use ASCII grid format) with specific yield for all watershed pixels (m) | |
Sy | double | 0.005 | [] | Specific yield (-), used if and only if InputGrid_Sy is not provided |
InputGrid_par_discharge | string | [] | File name of the GIS file (use ASCII grid format) with parameter controlling the discharge for all watershed pixels (-) | |
par_discharge | double | 0.999 | [] | Parameter controlling the discharge (-), used if and only if InputGrid_par_discharge is not provided |
InputGrid_T | string | [] | File name of the GIS file (use ASCII grid format) with transmissivity for all watershed pixels (mm.s-1) | |
T | double | 20 | [] | Transmissivity (mm.s-1), used if and only if InputGrid_T is not provided |
RechargeConversionFactor | double | 1 | [] | Conversion factor for potential_net_recharge inputs (user defined) |
See additionnal details on Naming convention.
See additionnal details on Naming convention.
GWpixelArea (m2) : surface of the groundwater pixel is computed from cellsize info read in input GIS file is identical for all pixels (rasters)
\(actual\_net\_recharge\_i(t) = max\{RechargeConversionFactor * \frac{potential\_net\_recharge\_i(t)}{GWpixelArea} ; -H\_i(t-1)*Sy\_i\}\)
\(discharge\_i(t) = (1-par\_discharge\_i) * (H\_i(t-1)-hmin\_i) * Sy\_i\)
\[H\_i(t) = \min\left( \begin{array}{@{}ll@{}} hnew\_i \\ DEM\_i - SoilThickness \end{array}\right)\] with \(hnew\_i = H\_i(t-1) + \frac{actual\_net\_recharge\_i(t) - discharge\_i(t)}{Sy\_i}\) + … net lateral flows from other pixels (see McDonald & Harbaugh, 1988)
\(GW\_Overland\_Flow\_i(t) = (hnew\_i - H\_i(t)) * Sy\_i * GWpixelArea\)
\(GWVol\_i(t) = max\{0. ; (H\_i(t) - hmin\_i) * Sy\_i * GWpixelArea)\)
if NamingMode == “x_y” : all variables (inputs & outputs) are suffixed with a _x_y identifier where x and y are respectively the row and column indexes of a given pixel else : all variables are suffixed with a _id identifier (loop over rows then columns) (for example with a x=9;y=10 grid id=1 is the first row/column, id=2 the second column of the first row, id=9 is the last column of the first row, id=10 is the first column of the second row, and so on…)
McDonald, M., & Harbaugh, A. (1988). A modular three-dimensional
finite-difference groundwater flow model. Washington: Denver.
Park, E. and Parker, J. (2008). A simple model for water table
fluctuations in response to precipitation. Journal of Hydrology, 356:344
– 349.
Simon, D. (2006). Optimal State Estimation: Kalman, H-infinity, and
Nonlinear Approaches. John Wiley and Sons.
todo
List and information about all possible parameters (name, type, ismandatory, description with default value).
for example :
See documentation of DiscreteTimeDyn
to get all available extension parameters (for example
time_step)
Parameter name | Type | Is mandatory? | Description |
---|---|---|---|
PkgName | string | [] | Name of the package where the data file is stored. If not provided the meteo_file will be used as an absolute path or a relative path to the running environment |
meteo_file | string | [x] | Name of the file to read. (file expected inside the PkgName/data folder) This can be a relative path from the data folder if it has subfolders |
meteo_type | string (agroclim or generic_with_header) | [x] | Type of file the model has to read. (see details section for information on the different types). |
begin_date | string (YYYY-MM-DD) or double |
[] | Enables to start the reading of data at the specified date. (If not provided datas are read from the begining of the data set) |
List and information about all possible input ports (name, type, description with units).
for model using extension discrete-time also include sync info
List and information about all possible output ports (name, type, description with units).
todo
List and information about all possible parameters (name, type, ismandatory, description with default value).
for example :
See documentation of DiscreteTimeDyn
to get all available extension parameters (for example
time_step)
Parameter name | Type | Is mandatory? | Description |
---|---|---|---|
PkgName | string | [] | Name of the package where the data file is stored. If not provided the meteo_file will be used as an absolute path or a relative path to the running environment |
meteo_file | string | [x] | Name of the file to read. (file expected inside the PkgName/data folder) This can be a relative path from the data folder if it has subfolders |
meteo_type | string (agroclim or generic_with_header) | [x] | Type of file the model has to read. (see details section for information on the different types). |
begin_date | string (YYYY-MM-DD) or double |
[] | Enables to start the reading of data at the specified date. (If not provided datas are read from the begining of the data set) |
List and information about all possible input ports (name, type, description with units).
for model using extension discrete-time also include sync info
List and information about all possible output ports (name, type, description with units).
todo
List and information about all possible parameters (name, type, ismandatory, description with default value).
for example :
See documentation of DiscreteTimeDyn
to get all available extension parameters (for example
time_step)
Parameter name | Type | Is mandatory? | Description |
---|---|---|---|
PkgName | string | [] | Name of the package where the data file is stored. If not provided the meteo_file will be used as an absolute path or a relative path to the running environment |
meteo_file | string | [x] | Name of the file to read. (file expected inside the PkgName/data folder) This can be a relative path from the data folder if it has subfolders |
meteo_type | string (agroclim or generic_with_header) | [x] | Type of file the model has to read. (see details section for information on the different types). |
begin_date | string (YYYY-MM-DD) or double |
[] | Enables to start the reading of data at the specified date. (If not provided datas are read from the begining of the data set) |
List and information about all possible input ports (name, type, description with units).
for model using extension discrete-time also include sync info
List and information about all possible output ports (name, type, description with units).