from plant_hydraulics.parameter_classes import SurEauSoilParams, SurEauSoil
from plant_hydraulics.sureau_soil_params import sureau_soil_paramsSurEau soil params
compute_soil_root_geometry
def compute_soil_root_geometry(
soil:SurEauSoilParams, veg:SurEauVegetationParams
)->SurEauSoilParams:
Compute soil parameters depending on plant parameters (Gardner-Cowan geometry). Old function name init_par_soil
sureau_soil_params
def sureau_soil_params(
soil:SurEauSoilParams, # SurEau soil parameters object with the following input attributes:
- depth : np.ndarray
Cumulative depth of each soil layer bottom (m).
- RFC : np.ndarray
Rock fragment content for each layer (%).
- g_soil0 : float
Maximum soil surface conductance to water vapor (mmol/m2/s).
- offset_psoil : np.ndarray
Offset applied to soil water potential for each layer (MPa).
- psoil_at_field_capacity : float
Soil water potential at field capacity (MPa).
- reset_SWC : bool
Whether to reset soil water content to field capacity each year.
- water_soil_transfer : bool
Whether inter-layer water transfer is enabled.
- soil_evap : bool
Whether soil surface evaporation is enabled.
- PTF : str
Pedotransfer function to use: "VG" (van Genuchten) or "Campbell".
- Ksat : np.ndarray
Saturated hydraulic conductivity for each layer (mm/h).
- saturation_capacity : np.ndarray
Volumetric water content at saturation for each layer (m3/m3).
- residual_capacity : np.ndarray
Residual volumetric water content for each layer (m3/m3).
- alpha_vg : np.ndarray
Van Genuchten alpha parameter for each layer (cm-1).
- n_vg : np.ndarray
Van Genuchten n shape parameter for each layer (-).
- I_vg : np.ndarray
Van Genuchten tortuosity parameter for each layer (-).
- b_camp : np.ndarray
Campbell b shape parameter for each layer (-).
- psie_camp : np.ndarray
Campbell air-entry potential for each layer (MPa).
)->SurEauSoilParams: # Updated SurEau soil parameters object with the following derived attributes:
- n_layers : int
Number of soil layers (-).
- layer_thickness : np.ndarray
Thickness of each soil layer (m).
- m : np.ndarray
Van Genuchten m parameter, computed as 1 - 1/n_vg (-).
- V_field_capacity : np.ndarray
Water height at field capacity for each layer (mm).
- V_saturation_capacity : np.ndarray
Water height at saturation for each layer (mm).
- V_residual_capacity : np.ndarray
Water height at residual content for each layer (mm).
- V_wilting_point : np.ndarray
Water height at wilting point (-1.5 MPa) for each layer (mm).
- B_GC : np.ndarray
Gardner-Cowan geometry factor for each layer (-).
Set to 0.5 placeholder if not previously computed from root geometry.
Compute derived soil hydraulic quantities from raw SurEau soil parameters.
Broadcasts scalar inputs to per-layer arrays, computes layer thicknesses, van Genuchten or Campbell derived parameters, and converts volumetric water contents to water heights (mm) for field capacity and wilting point.
Parameters:
soil: SurEauSoilParams object with the following input attributes:
- depth: Cumulative depth of each soil layer bottom (m).
- RFC: Rock fragment content for each layer (%).
- g_soil0: Maximum soil surface conductance to water vapor (mmol/m2/s).
- offset_psoil: Offset applied to soil water potential for each layer (MPa).
- psoil_at_field_capacity: Soil water potential at field capacity (MPa).
- reset_SWC: Whether to reset soil water content to field capacity each year (bool).
- water_soil_transfer: Whether inter-layer water transfer is enabled (bool).
- soil_evap: Whether soil surface evaporation is enabled (bool).
- PTF: Pedotransfer function to use: “VG” (van Genuchten) or “Campbell”.
- Ksat: Saturated hydraulic conductivity for each layer (mm/h).
- saturation_capacity: Volumetric water content at saturation for each layer (m3/m3).
- residual_capacity: Residual volumetric water content for each layer (m3/m3).
- alpha_vg: Van Genuchten alpha parameter for each layer (cm-1).
- n_vg: Van Genuchten n shape parameter for each layer (-).
- I_vg: Van Genuchten tortuosity parameter for each layer (-).
- b_camp: Campbell b shape parameter for each layer (-).
- psie_camp: Campbell air-entry potential for each layer (MPa).
Returns:
soil: Updated SurEauSoilParams object with the following derived attributes:
- n_layers: Number of soil layers (-).
- layer_thickness: Thickness of each soil layer (m).
- m: Van Genuchten m parameter, computed as 1 - 1/n_vg (-).
- V_field_capacity: Water height at field capacity for each layer (mm).
- V_saturation_capacity: Water height at saturation for each layer (mm).
- V_residual_capacity: Water height at residual content for each layer (mm).
- V_wilting_point: Water height at wilting point (-1.5 MPa) for each layer (mm).
- B_GC: Gardner-Cowan geometry factor for each layer (-). Set to 0.5 placeholder if not previously computed from root geometry.
Example sureau_soil_params()
soil_params = SurEauSoilParams(
depth=np.array([0.2, 0.8, 2.0]),
RFC=np.array([75.0, 75.0, 75.0]),
g_soil0=30.0,
PTF="VG",
Ksat=np.array([1.69, 1.69, 1.69]),
saturation_capacity=np.array([0.50, 0.50, 0.50]),
residual_capacity=np.array([0.098, 0.098, 0.098]),
alpha_vg=np.array([0.0005, 0.0005, 0.0005]),
n_vg=np.array([1.55, 1.55, 1.55]),
I_vg=np.array([0.5, 0.5, 0.5]),
)soil_params = sureau_soil_params(soil_params)