hydromt_wflow.WflowModel.setup_soilmaps#

WflowModel.setup_soilmaps(soil_fn: str = 'soilgrids', ptf_ksatver: str = 'brakensiek', 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 in wflow_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].

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])

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’.

  • 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.