hydromt_wflow.WflowModel.setup_soilmaps#
- WflowModel.setup_soilmaps(soil_fn: str = 'soilgrids', ptf_ksatver: str = 'brakensiek', soil_mapping_fn: str | Path | DataFrame = None, wflow_thicknesslayers: List[int] = [100, 300, 800])[source]#
Derive several (layered) soil parameters.
Based on a database with physical soil properties using available point-scale (pedo)transfer functions (PTFs) from literature with upscaling rules to ensure flux matching across scales.
Currently, supported
soil_fn
is “soilgrids” and “soilgrids_2020”.ptf_ksatver
(PTF for the vertical hydraulic conductivity) options are “brakensiek” and “cosby”. “soilgrids” provides data at 7 specific depths, while “soilgrids_2020” provides data averaged over 6 depth intervals. This leads to small changes in the workflow: (1) M parameter uses midpoint depths in soilgrids_2020 versus specific depths in soilgrids, (2) weighted average of soil properties over soil thickness is done with the trapezoidal rule in soilgrids versus simple block weighted average in soilgrids_2020, (3) the c parameter is computed as weighted average over wflow_sbm soil layers defined inwflow_thicknesslayers
.The required data from soilgrids are soil bulk density ‘bd_sl*’ [g/cm3], clay content ‘clyppt_sl*’ [%], silt content ‘sltppt_sl*’ [%], organic carbon content ‘oc_sl*’ [%], pH ‘ph_sl*’ [-], sand content ‘sndppt_sl*’ [%] and soil thickness ‘soilthickness’ [cm].
A
soil_mapping_fn
can optionnally be provided to derive parameters based on soil texture classes. A default table soil_mapping_default is available to derive the infiltration capacity of the soil.The following maps are added to grid:
thetaS map: average saturated soil water content [m3/m3]
thetaR map: average residual water content [m3/m3]
KsatVer map: vertical saturated hydraulic conductivity at soil surface [mm/day]
SoilThickness map: soil thickness [mm]
SoilMinThickness map: minimum soil thickness [mm] (equal to SoilThickness)
M map: model parameter [mm] that controls exponential decline of KsatVer with soil depth (fitted with curve_fit (scipy.optimize)), bounds of M are checked
M_ map: model parameter [mm] that controls exponential decline of KsatVer with soil depth (fitted with numpy linalg regression), bounds of M_ are checked
M_original map: M without checking bounds
M_original_ map: M_ without checking bounds
f map: scaling parameter controlling the decline of KsatVer [mm-1] (fitted with curve_fit (scipy.optimize)), bounds are checked
f_ map: scaling parameter controlling the decline of KsatVer [mm-1] (fitted with numpy linalg regression), bounds are checked
c_n map: Brooks Corey coefficients [-] based on pore size distribution, a map for each of the wflow_sbm soil layers (n in total)
KsatVer_[z]cm map: KsatVer [mm/day] at soil depths [z] of SoilGrids data [0.0, 5.0, 15.0, 30.0, 60.0, 100.0, 200.0]
wflow_soil map: soil texture based on USDA soil texture triangle (mapping: [1:Clay, 2:Silty Clay, 3:Silty Clay-Loam, 4:Sandy Clay, 5:Sandy Clay-Loam, 6:Clay-Loam, 7:Silt, 8:Silt-Loam, 9:Loam, 10:Sand, 11: Loamy Sand, 12:Sandy Loam])
InfiltCapSoil map (optional): soil infiltration capacity [mm/day]
- Parameters:
soil_fn ({'soilgrids', 'soilgrids_2020'}) – Name of RasterDataset source for soil parameter maps, see data/data_sources.yml. Should contain info for the 7 soil depths of soilgrids (or 6 depths intervals for soilgrids_2020). * Required variables: ‘bd_sl*’ [g/cm3], ‘clyppt_sl*’ [%], ‘sltppt_sl*’ [%], ‘oc_sl*’ [%], ‘ph_sl*’ [-], ‘sndppt_sl*’ [%], ‘soilthickness’ [cm]
ptf_ksatver ({'brakensiek', 'cosby'}) – Pedotransfer function (PTF) to use for calculation KsatVer (vertical saturated hydraulic conductivity [mm/day]). By default ‘brakensiek’.
soil_mapping_fn (str, Path, pd.DataFrame, optional) – Data catalog entry, path or pandas.DataFrame containing soil mapping data. A default table soil_mapping_default is available to derive the infiltration capacity of the soil. The first column of the table should contain the soil ‘texture’ classes and the other columns should be the name of the corresponding wflow parameter(s). By default None.
wflow_thicknesslayers (list of int, optional) – Thickness of soil layers [mm] for wflow_sbm soil model. By default [100, 300, 800] for layers at depths 100, 400, 1200 and >1200 mm. Used only for Brooks Corey coefficients.