Hydraulic#

class hydromodpy.watershed.hydraulic.Hydraulic(box_dem: str, nrow: int, ncol: int, nlay_init: int = 1, cond_drain_init: float = 864000, hk_init: float = 8.64, sy_init: float = 0.1, ss_init: float = 1e-05, thick_init: float = 50.0, bottom_init: float = None, hk_decay_init: float = 0.0, sy_decay_init: float = 0.0, ss_decay_init: float = 0.0, lay_decay_init: float = 1.0, verti_hk_init=None, verti_sy_init=None, verti_ss_init=None, vka_init: float = 1.0, exdp_init: float = 1.0)[source]#

Bases: object

Update hydraulic properties of the groundwater flow model.

Parameters#

box_demstr

Path raster of maximal buffer extent of the model domain generated from geographic.

nrowint

Number of rows of the model domain obtained from raster in geographic.

ncolint

Number of columns of the model domain obtained from raster in geographic.

nlay_initint, optional

Initial value. Vertical layer of the mesh. The default is 1.

cond_drain_initfloat, optional

Initial value. Conductance value for the drain package applied on top. Considering a cell resolution of 100*100m, The default is 864000 [m3/day].

hk_initfloat, optional

Initial value. Hydraulic conductivity of the aaquifer. The default is 8.64 in [m/d].

sy_initfloat, optional

Initial value. Specific yield of the aquifer. The default is 0.1 [-], so 10%.

ss_initfloat, optional

Initial value. Specifc storage of the aquifer. The default is 1e-5 (1/day).

thick_initfloat, optional

Initial value. Constant aquifer thickness activated if bottom_init is None. The default is 50 m.

bottom_initfloat, optional

Initial value. Apply a flat bottom at the aquifer from a elevation value. The default is None.

hk_decay_initfloat, optional

Initial value. Alpha decay to modify the hydraulic conductivity exponentially decreasing whit depth (e.g. 1/30m). The default is 0.

sy_decay_initfloat, optional

Initial value. Alpha decay to modify the specific yield exponentially decreasing whit depth (e.g. 1/60m). The default is 0.

ss_decay_initfloat, optional

Initial value. Alpha decay to modify the specific storage exponentially decreasing whit depth (e.g. 1/120m). The default is 0.

lay_decay_initfloat, optional

Initial value. Modify vertical layer thickness exponentially decreasing whith depth. The default is 1 (no change).

verti_hk_initlist, optional

Initial value. Apply hydraulic conductivity values between different thickness. The default is None.

verti_sy_initlist, optional

Initial value. Apply specific yield values between different thickness. The default is None.

verti_ss_initlist, optional

Initial value. Apply specific storage values between different thickness. The default is None.

vka_initlist, optional

Initial value. Ratio of horizontal to vertical hydraulic conductivity. The default is 1.

update_bottom(bottom_value: float)[source]#

Parameters#

bottom_valuefloat

Flat bottom elevation of the aquifer model.

update_calib_zones(zones: ndarray)[source]#

Updates the calib_zones zone number with zone. The array values must be int and start at 1. :param zones: localisation of the calibration zones in the DEM.

update_calib_zones_from_shp(shp_path, default_zone=1)[source]#

Shapefile must be with different features. Field must be “CALIB_ZONE” = 1,2,3,4

update_cond_drain(cond_drain_value: float)[source]#

Parameters#

cond_drain_valuefloat

Drain conductance value at the surface of the aquifer model.

update_exdp(exdp_value: float)[source]#

Parameters#

exdpfloat

Extinction depth from the surface of the evapotranspiration.

update_hk(hk_value: float)[source]#

Parameters#

hyd_cond_valuefloat

Hydraulic conductivity of the aquifer model.

update_hk_decay(hk_decay_value: float = 0, min_value: float = None, log_transf: bool = False, grad_elev: list = [])[source]#

Parameters#

hk_decay_valuefloat

Exponential decay ratio of hydraulic conductivity K. For z=50m, if hk_decay_value=1/50, Kmax (or K0) divide by 2.7 at 50m. K(z) = Kmax*np.exp(-hk_decay_value*z)

min_valuefloat

If not None, the exponential decay stop until this minimal value Kmin. K(z) = Kmin-(Kmax-Kmin)*np.exp(-hk_decay_value*z)

log_transfbool

If True, the log transform is applied to the formulation. log(K(z)) = log(Kmin)-(log(Kmax)-log(Kmin))*np.exp(-hk_decay_value*z)

update_hk_from_calib_zones(num_zone: int, hk_value: float)[source]#

Updates hk_value with a value hk_value at the location of the num_zone in the calib_zones :param num_zone: the zone number :param hk_value: hydraulic conductivy of the aquifer.

update_hk_vertical(verti_hk_value: list)[source]#

Parameters#

verti_hk_valuelist

List of hydraulic conductivity values with associated vertical depth. For example: [ [1, [0, 20]], [0.5, [20,80]] ] 1 m/d between 0 and 20 m depth, and 0.5 m/d between 20 and 80 m depth.

update_hk_with_geology(geology_code, geology_array, hk_values)[source]#

Updates hk_value with values in hk_values at the location of the geology_code in the geology_array :param geology_code: list of geology entities. :type geology_code: list of int :param geology_array: localisation of the geology entities in the DEM. :type geology_array: numpy.ndarray(int) :param hk_values: hydraulic conductivity values for each geology code. Must be the same lenght of geology_code. :type hk_values: list of float

update_lay_decay(lay_decay_value: float | int)[source]#

Parameters#

thick_exp_valuefloat

Exponential decay ratio of vertical layer mesh thickness increasing with depath. The default value without decay is 1.

update_nlay(nlay_value: int)[source]#

Parameters#

nlay_valueint

Number of vertical layer of the aquifer model mesh.

update_ss(ss_value: float)[source]#

Parameters#

ss_valuefloat

Specific storage of the aquifer model.

update_ss_decay(ss_decay_value: float = 0, min_value: float = None, log_transf: bool = False, grad_elev: list = [])[source]#

Parameters#

ss_decay_valuefloat

Idem por specific stotage. See ‘update_hk_decay’.

update_ss_vertical(verti_ss_value: list)[source]#

Parameters#

verti_ss_valuelist

Idem for specific storage. See ‘update_hk_vertical’.

update_sy(sy_value: float)[source]#

Parameters#

sy_valuefloat

Sspecifc yield of the aquifer model.

update_sy_decay(sy_decay_value: float = 0, min_value: float = None, log_transf: bool = False, grad_elev: list = [])[source]#

Parameters#

sy_decay_valuefloat

Idem por specific yield. See ‘update_hk_decay’.

update_sy_from_calib_zones(num_zone: int, sy_value: float)[source]#

Updates sy_value with a value sy_value at the location of the num_zone in the calib_zones :param num_zone: the zone number :param sy_value: porosity of the aquifer.

update_sy_vertical(verti_sy_value: list)[source]#

Parameters#

verti_sy_valuelist

Idem for specific yield. See ‘update_hk_vertical’.

update_sy_with_geology(geology_code, geology_array, sy_values)[source]#

Updates sy_value with values in sy_values at the location of the geology_code in the geology_array :param geology_code: list of geology entities. :type geology_code: list of int :param geology_array: localisation of the geology entities in the DEM. :type geology_array: numpy.ndarray(int) :param sy_values: specific yields values for each geology code. Must be the same lenght of geology_code. :type sy_values: list of float

update_thick(thick_value: float)[source]#

Parameters#

thick_valuefloat

Constant thickness of the aquifer model.

update_thick_from_calib_zones(num_zone: int, thick_value: float)[source]#

Updates thickness with a value thickness_value at the location of the num_zone in the calib_zones :param num_zone: the zone number :param thickness_value: thickness of the aquifer.

update_vka(vka_value: float)[source]#

Parameters#

vkafloat

Ratio of horizontal to vertical hydraulic conductivity.