Skip to content

ptfkit.mayr1999

ptfkit.mayr1999

Mayr and Jarvis (1999) modified Brooks-Corey water-retention parameter PTFs.

Reference

Mayr, T., & Jarvis, N. J. (1999). Pedotransfer functions to estimate soil water retention parameters for a modified Brooks-Corey type model. Geoderma, 91(1-2), 1-9. DOI: 10.1016/S0016-7061(98)00129-3

Territory

England and Wales

Dataset

Soil Survey and Land Research Centre soil physical properties database; regressions used 286 soil horizons retained from a 306-horizon subset after excluding fits with RMSE greater than 0.05 m^3/m^3, and validation used 1678 independent soil horizons.

CLASS DESCRIPTION
Mayr1999PTFResult

Results returned by the matching PTF.

FUNCTION DESCRIPTION
calc_ptf_mayr1999

Calculate the pedotransfer function.

Mayr1999PTFResult

Bases: NamedTuple, Generic[T]

Results returned by the matching PTF.

ATTRIBUTE DESCRIPTION
a_hc

Hutson-Cass fitting parameter with pressure-head dimensions. (cm H2O)

TYPE: T

b_hc

Hutson-Cass fitting parameter controlling retention-curve shape. (dimensionless)

TYPE: T

theta_s

Volumetric soil water content at saturation. (m^3/m^3)

TYPE: T

Source code in ptfkit/mayr1999.py
39
40
41
42
43
44
45
46
47
48
49
50
51
class Mayr1999PTFResult(NamedTuple, Generic[T]):
    """Results returned by the matching PTF.

    Attributes:
        a_hc: Hutson-Cass fitting parameter with pressure-head dimensions. (cm H2O)
        b_hc: Hutson-Cass fitting parameter controlling retention-curve shape. (dimensionless)
        theta_s: Volumetric soil water content at saturation. (m^3/m^3)

    """

    a_hc: T
    b_hc: T
    theta_s: T

calc_ptf_mayr1999

calc_ptf_mayr1999(*, sand: float, silt: float, clay: float, bulk_density: float, organic_carbon: float) -> Mayr1999PTFResult[floating]
calc_ptf_mayr1999(*, sand: ArrayLike, silt: ArrayLike, clay: ArrayLike, bulk_density: ArrayLike, organic_carbon: ArrayLike, out: Mayr1999PTFResult[NDArray[floating]] | None = None) -> Mayr1999PTFResult[NDArray[floating]]

Calculate the pedotransfer function.

Estimate modified Brooks-Corey a, b, and saturated water content from texture, bulk density, and organic carbon.

PARAMETER DESCRIPTION
sand

Sand content for particles 0.063-2.0 mm. (%)

TYPE: float | ArrayLike

silt

Silt content for particles 0.002-0.063 mm. (%)

TYPE: float | ArrayLike

clay

Clay content for particles 0-0.002 mm. (%)

TYPE: float | ArrayLike

bulk_density

Dry bulk density; the paper excludes application below 0.9 g/cm^3. (g/cm^3)

TYPE: float | ArrayLike

organic_carbon

Organic carbon content; the paper excludes application above 5%. (%)

TYPE: float | ArrayLike

out

Optional output arrays for in-place calculation.

TYPE: Mayr1999PTFResult[NDArray[floating]] | None DEFAULT: None

RETURNS DESCRIPTION
Mayr1999PTFResult

Results grouped by result attributes.

TYPE: Mayr1999PTFResult[floating] | Mayr1999PTFResult[NDArray[floating]]

Models

\(h(\theta)\): Hutson-Cass modified Brooks-Corey water-retention model

Notes

Prediction target: Hutson-Cass modified Brooks-Corey water-retention parameters a, b, and saturated volumetric water content. The particle-size inputs use the UK size boundaries stated by the paper; sand, silt, and clay are percentages. The source reports r^2 values of 0.34 for log(a), 0.74 for log(1/b), and 0.84 for theta_s. Human review resolved the source's unspecified log base as base 10; the implementation therefore interprets log(a) and log(1/b) as log10 values.

Warning

Do not apply the functions to organic soils with organic carbon above 5% or soils with dry bulk density below 0.9 g/cm^3. Treat application outside the calibration particle-size distribution with great care; the paper provides that distribution only graphically.

Source code in ptfkit/mayr1999.py
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
def calc_ptf_mayr1999(
    *,
    sand: float | ArrayLike,
    silt: float | ArrayLike,
    clay: float | ArrayLike,
    bulk_density: float | ArrayLike,
    organic_carbon: float | ArrayLike,
    out: Mayr1999PTFResult[NDArray[floating]] | None = None,
) -> Mayr1999PTFResult[floating] | Mayr1999PTFResult[NDArray[floating]]:
    r"""Calculate the pedotransfer function.

    Estimate modified Brooks-Corey a, b, and saturated water content from texture, bulk density, and
    organic carbon.

    Arguments:
        sand: Sand content for particles 0.063-2.0 mm. (%)
        silt: Silt content for particles 0.002-0.063 mm. (%)
        clay: Clay content for particles 0-0.002 mm. (%)
        bulk_density: Dry bulk density; the paper excludes application below 0.9 g/cm^3. (g/cm^3)
        organic_carbon: Organic carbon content; the paper excludes application above 5%. (%)
        out: Optional output arrays for in-place calculation.

    Returns:
        Mayr1999PTFResult: Results grouped by result attributes.

    Models:
        $h(\theta)$: Hutson-Cass modified Brooks-Corey water-retention model

    Notes:
        Prediction target: Hutson-Cass modified Brooks-Corey water-retention parameters a, b, and
            saturated volumetric water content.
        The particle-size inputs use the UK size boundaries stated by the paper; sand, silt, and
            clay are percentages.
        The source reports r^2 values of 0.34 for log(a), 0.74 for log(1/b), and 0.84 for theta_s.
        Human review resolved the source's unspecified log base as base 10; the implementation
            therefore interprets log(a) and log(1/b) as log10 values.

    Warning:
        Do not apply the functions to organic soils with organic carbon above 5% or soils with dry
            bulk density below 0.9 g/cm^3.
        Treat application outside the calibration particle-size distribution with great care; the
            paper provides that distribution only graphically.

    """
    values = _call(
        _calc_ptf_mayr1999,
        sand,
        silt,
        clay,
        bulk_density,
        organic_carbon,
        out=out,
    )

    return Mayr1999PTFResult(*values)