Skip to content

ptfkit.oosterveld1980

ptfkit.oosterveld1980

Oosterveld and Chang (1980), soil-moisture retention from texture and depth.

Reference

Oosterveld, M., & Chang, C. (1980). Empirical relations between laboratory determinations of soil texture and moisture retention. Canadian Agricultural Engineering, 22, 149-151.

Territory

Southern Alberta, Canada

Dataset

1,137 pressure-plate analyses on 298 soil samples from the Lethbridge Research Station laboratory; the field-capacity tension regression used 134 samples.

FUNCTION DESCRIPTION
calc_ptf_oosterveld1980_available_water

Estimate available gravimetric soil moisture between field capacity and wilting point.

calc_ptf_oosterveld1980_field_capacity

Estimate gravimetric soil-moisture content at field capacity.

calc_ptf_oosterveld1980_field_capacity_tension

Estimate field-capacity tension from clay content.

calc_ptf_oosterveld1980_retention

Estimate gravimetric soil-moisture content from texture, depth, and tension.

calc_ptf_oosterveld1980_wilting_point

Estimate gravimetric soil-moisture content at the 1500 kPa wilting point.

calc_ptf_oosterveld1980_available_water

calc_ptf_oosterveld1980_available_water(*, clay: float, sand: float, mean_depth: float) -> floating
calc_ptf_oosterveld1980_available_water(*, clay: ArrayLike, sand: ArrayLike, mean_depth: ArrayLike, out: NDArray[floating] | None = None) -> NDArray[floating]

Estimate available gravimetric soil moisture between field capacity and wilting point.

PARAMETER DESCRIPTION
clay

Clay content in percent by weight; the field-capacity tension experiment covered 2% to 72% clay. (% mass)

TYPE: float | ArrayLike

sand

Sand content in percent by weight. (% mass)

TYPE: float | ArrayLike

mean_depth

Mean depth of the soil sample. (cm)

TYPE: float | ArrayLike

out

Optional output arrays for in-place calculation.

TYPE: NDArray[floating] | None DEFAULT: None

RETURNS DESCRIPTION
available_moisture

Predicted field-capacity moisture minus predicted wilting-point moisture, in percentage points by weight. (% mass)

TYPE: floating | NDArray[floating]

Models

\(h(\theta)\): Available-moisture point estimate from Equations 3 and 4

Notes

Prediction target: Difference between gravimetric moisture content at field capacity and at the 1500 kPa wilting point. The paper defines available soil water by subtracting Equation 4 from Equation 3.

Source code in ptfkit/oosterveld1980.py
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
def calc_ptf_oosterveld1980_available_water(
    *,
    clay: float | ArrayLike,
    sand: float | ArrayLike,
    mean_depth: float | ArrayLike,
    out: NDArray[floating] | None = None,
) -> floating | NDArray[floating]:
    r"""Estimate available gravimetric soil moisture between field capacity and wilting point.

    Arguments:
        clay: Clay content in percent by weight; the field-capacity tension experiment covered 2% to
            72% clay. (% mass)
        sand: Sand content in percent by weight. (% mass)
        mean_depth: Mean depth of the soil sample. (cm)
        out: Optional output arrays for in-place calculation.

    Returns:
        available_moisture: Predicted field-capacity moisture minus predicted wilting-point
            moisture, in percentage points by weight. (% mass)

    Models:
        $h(\theta)$: Available-moisture point estimate from Equations 3 and 4

    Notes:
        Prediction target: Difference between gravimetric moisture content at field capacity and at
            the 1500 kPa wilting point.
        The paper defines available soil water by subtracting Equation 4 from Equation 3.

    """
    return _call(
        _calc_ptf_oosterveld1980_available_water,
        clay,
        sand,
        mean_depth,
        out=out,
    )

calc_ptf_oosterveld1980_field_capacity

calc_ptf_oosterveld1980_field_capacity(*, clay: float, sand: float, mean_depth: float) -> floating
calc_ptf_oosterveld1980_field_capacity(*, clay: ArrayLike, sand: ArrayLike, mean_depth: ArrayLike, out: NDArray[floating] | None = None) -> NDArray[floating]

Estimate gravimetric soil-moisture content at field capacity.

PARAMETER DESCRIPTION
clay

Clay content in percent by weight; the field-capacity tension experiment covered 2% to 72% clay. (% mass)

TYPE: float | ArrayLike

sand

Sand content in percent by weight. (% mass)

TYPE: float | ArrayLike

mean_depth

Mean depth of the soil sample. (cm)

TYPE: float | ArrayLike

out

Optional output arrays for in-place calculation.

TYPE: NDArray[floating] | None DEFAULT: None

RETURNS DESCRIPTION
field_capacity_moisture

Predicted soil-moisture content at field capacity in percent by weight. (% mass)

TYPE: floating | NDArray[floating]

Models

\(h(\theta)\): Field-capacity point estimate derived from Equations 1 and 2

Notes

Prediction target: Gravimetric soil-moisture content at field capacity. Equation 3 is obtained by substituting the Equation 1 field-capacity tension into Equation 2.

Source code in ptfkit/oosterveld1980.py
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
def calc_ptf_oosterveld1980_field_capacity(
    *,
    clay: float | ArrayLike,
    sand: float | ArrayLike,
    mean_depth: float | ArrayLike,
    out: NDArray[floating] | None = None,
) -> floating | NDArray[floating]:
    r"""Estimate gravimetric soil-moisture content at field capacity.

    Arguments:
        clay: Clay content in percent by weight; the field-capacity tension experiment covered 2% to
            72% clay. (% mass)
        sand: Sand content in percent by weight. (% mass)
        mean_depth: Mean depth of the soil sample. (cm)
        out: Optional output arrays for in-place calculation.

    Returns:
        field_capacity_moisture: Predicted soil-moisture content at field capacity in percent by
            weight. (% mass)

    Models:
        $h(\theta)$: Field-capacity point estimate derived from Equations 1 and 2

    Notes:
        Prediction target: Gravimetric soil-moisture content at field capacity.
        Equation 3 is obtained by substituting the Equation 1 field-capacity tension into Equation
            2.

    """
    return _call(
        _calc_ptf_oosterveld1980_field_capacity,
        clay,
        sand,
        mean_depth,
        out=out,
    )

calc_ptf_oosterveld1980_field_capacity_tension

calc_ptf_oosterveld1980_field_capacity_tension(*, clay: float) -> floating
calc_ptf_oosterveld1980_field_capacity_tension(*, clay: ArrayLike, out: NDArray[floating] | None = None) -> NDArray[floating]

Estimate field-capacity tension from clay content.

PARAMETER DESCRIPTION
clay

Clay content in percent by weight; the field-capacity tension experiment covered 2% to 72% clay. (% mass)

TYPE: float | ArrayLike

out

Optional output arrays for in-place calculation.

TYPE: NDArray[floating] | None DEFAULT: None

RETURNS DESCRIPTION
field_capacity_tension

Predicted tension corresponding to cylinder-method field capacity. (kPa)

TYPE: floating | NDArray[floating]

Models

\(h(\theta)\): Field-capacity tension point estimate

Notes

Prediction target: Tension at which pressure-plate moisture content equals field capacity determined by the cylinder method. Equation 1 reports r = 0.67 and n = 134.

Source code in ptfkit/oosterveld1980.py
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
def calc_ptf_oosterveld1980_field_capacity_tension(
    *,
    clay: float | ArrayLike,
    out: NDArray[floating] | None = None,
) -> floating | NDArray[floating]:
    r"""Estimate field-capacity tension from clay content.

    Arguments:
        clay: Clay content in percent by weight; the field-capacity tension experiment covered 2% to
            72% clay. (% mass)
        out: Optional output arrays for in-place calculation.

    Returns:
        field_capacity_tension: Predicted tension corresponding to cylinder-method field capacity.
            (kPa)

    Models:
        $h(\theta)$: Field-capacity tension point estimate

    Notes:
        Prediction target: Tension at which pressure-plate moisture content equals field capacity
            determined by the cylinder method.
        Equation 1 reports r = 0.67 and n = 134.

    """
    return _call(
        _calc_ptf_oosterveld1980_field_capacity_tension,
        clay,
        out=out,
    )

calc_ptf_oosterveld1980_retention

calc_ptf_oosterveld1980_retention(*, clay: float, sand: float, mean_depth: float, tension: float) -> floating
calc_ptf_oosterveld1980_retention(*, clay: ArrayLike, sand: ArrayLike, mean_depth: ArrayLike, tension: ArrayLike, out: NDArray[floating] | None = None) -> NDArray[floating]

Estimate gravimetric soil-moisture content from texture, depth, and tension.

PARAMETER DESCRIPTION
clay

Clay content in percent by weight. (% mass)

TYPE: float | ArrayLike

sand

Sand content in percent by weight. (% mass)

TYPE: float | ArrayLike

mean_depth

Mean depth of the soil sample. (cm)

TYPE: float | ArrayLike

tension

Soil-moisture tension. (kPa)

TYPE: float | ArrayLike

out

Optional output arrays for in-place calculation.

TYPE: NDArray[floating] | None DEFAULT: None

RETURNS DESCRIPTION
moisture_content

Predicted soil-moisture content in percent by weight. (% mass)

TYPE: floating | NDArray[floating]

Models

\(h(\theta)\): Empirical power-law moisture-retention relation

Notes

Prediction target: Gravimetric soil-moisture content at a specified tension. Equation 2 reports r = 0.96 and n = 1,137.

Warning

The paper reports slight inaccuracy at very high clay content and high tension.

Source code in ptfkit/oosterveld1980.py
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
def calc_ptf_oosterveld1980_retention(
    *,
    clay: float | ArrayLike,
    sand: float | ArrayLike,
    mean_depth: float | ArrayLike,
    tension: float | ArrayLike,
    out: NDArray[floating] | None = None,
) -> floating | NDArray[floating]:
    r"""Estimate gravimetric soil-moisture content from texture, depth, and tension.

    Arguments:
        clay: Clay content in percent by weight. (% mass)
        sand: Sand content in percent by weight. (% mass)
        mean_depth: Mean depth of the soil sample. (cm)
        tension: Soil-moisture tension. (kPa)
        out: Optional output arrays for in-place calculation.

    Returns:
        moisture_content: Predicted soil-moisture content in percent by weight. (% mass)

    Models:
        $h(\theta)$: Empirical power-law moisture-retention relation

    Notes:
        Prediction target: Gravimetric soil-moisture content at a specified tension.
        Equation 2 reports r = 0.96 and n = 1,137.

    Warning:
        The paper reports slight inaccuracy at very high clay content and high tension.

    """
    return _call(
        _calc_ptf_oosterveld1980_retention,
        clay,
        sand,
        mean_depth,
        tension,
        out=out,
    )

calc_ptf_oosterveld1980_wilting_point

calc_ptf_oosterveld1980_wilting_point(*, clay: float, sand: float, mean_depth: float) -> floating
calc_ptf_oosterveld1980_wilting_point(*, clay: ArrayLike, sand: ArrayLike, mean_depth: ArrayLike, out: NDArray[floating] | None = None) -> NDArray[floating]

Estimate gravimetric soil-moisture content at the 1500 kPa wilting point.

PARAMETER DESCRIPTION
clay

Clay content in percent by weight. (% mass)

TYPE: float | ArrayLike

sand

Sand content in percent by weight. (% mass)

TYPE: float | ArrayLike

mean_depth

Mean depth of the soil sample. (cm)

TYPE: float | ArrayLike

out

Optional output arrays for in-place calculation.

TYPE: NDArray[floating] | None DEFAULT: None

RETURNS DESCRIPTION
wilting_point_moisture

Predicted soil-moisture content at 1500 kPa in percent by weight. (% mass)

TYPE: floating | NDArray[floating]

Models

\(h(\theta)\): Wilting-point estimate at 1500 kPa

Notes

Prediction target: Gravimetric soil-moisture content at 1500 kPa. Equation 4 reports r = 0.96 and n = 298. The paper takes moisture content at 1500 kPa as the wilting point.

Source code in ptfkit/oosterveld1980.py
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
def calc_ptf_oosterveld1980_wilting_point(
    *,
    clay: float | ArrayLike,
    sand: float | ArrayLike,
    mean_depth: float | ArrayLike,
    out: NDArray[floating] | None = None,
) -> floating | NDArray[floating]:
    r"""Estimate gravimetric soil-moisture content at the 1500 kPa wilting point.

    Arguments:
        clay: Clay content in percent by weight. (% mass)
        sand: Sand content in percent by weight. (% mass)
        mean_depth: Mean depth of the soil sample. (cm)
        out: Optional output arrays for in-place calculation.

    Returns:
        wilting_point_moisture: Predicted soil-moisture content at 1500 kPa in percent by weight. (%
            mass)

    Models:
        $h(\theta)$: Wilting-point estimate at 1500 kPa

    Notes:
        Prediction target: Gravimetric soil-moisture content at 1500 kPa.
        Equation 4 reports r = 0.96 and n = 298.
        The paper takes moisture content at 1500 kPa as the wilting point.

    """
    return _call(
        _calc_ptf_oosterveld1980_wilting_point,
        clay,
        sand,
        mean_depth,
        out=out,
    )