rootwater.sapflow The Sap flow toolbox

The Sap flow toolbox

Sap velocity and sap flow is a very interesting means to monitor xylem water dynamics in higher plants (i.e. trees in our case). Since a mere flow conversion is likely to result in erroneous assumptions (Čermák et al., 2004), we have compiled a couple of sapwood-related functions to estimate active sapwood area for sap velocity conversion to sap flow.

Note

This toolbox is by no means complete nor exhaustive. Please regard it as helper functions which require throughout testing and deserve substantial extension to further application cases.

Note

To get started and for direct application (tested for beech trees) use rootwater.sapflow.sap_calc and provide a pandas.DataFrame with measured sap velocity from East30 sensors (in cm/h).

References

Čermák, J., J. Kučera, and N. Nadezhdina (2004), Sap flow measurements with some thermodynamic methods, flow integration within trees and scaling up from sample trees to entire forest stands, Trees, 18(5), 529–546, doi:10.1007/s00468-004-0339-6.

rootwater.sapflow.A_circ(r, sens=[0.0, 1.1], tree='beech')[source]

Calculate area of circular ring

Simple geometrical calculation of a circular ring area as reference cross-section for sap flow calculation.

Parameters:
  • r (float) – tree radius at breast height (in cm)
  • sens (list of floats) – outer and inner point of ring (in cm)
  • tree (str) – Tree name, for which to calculate and subtract bark thickness. Can be one of [‘beech’, ‘oak’].
Returns:

return – area of ring as

Return type:

float

rootwater.sapflow.galvac(r)[source]

sap-wood thickness after Galvac et al. (1990)

Calculates sap-wood thickness as a function of the tree radius at breast height.

Parameters:r (float) – tree radius at breast height (in cm)
Returns:sapwood – sapwood thickness (in cm)
Return type:float

References

Glavac, V., Koenies, H. & Ebben, U. Holz als Roh- und Werkstoff (1990) 48: 437. https://doi.org/10.1007/BF02627628

rootwater.sapflow.gebauer(r, tree='beech')[source]

Sap-wood thickness

Calculates sap-wood thickness as published by Gebauer et al. (2008)

Parameters:
  • r (float) – tree radius at breast height (in cm)
  • tree (str) – Tree name, for which to calculate bark and sapwood thickness. Can be one of [‘beech’, ‘oak’]
Returns:

th – sap-wood thickness (in mm)

Return type:

float

Raises:

NotImplementedError : if tree is not in (‘oak’, ‘beech’)

References

Gebauer, T., Horna, V., and Leuschner, C.: Variability in radial sap flux density patterns and sapwood area among seven co-occurring temperate broad-leaved tree species, Tree Physiol., 28, 1821–1830, 2008.

rootwater.sapflow.gebauer_act(r, perc=0.95, tree='beech')[source]

Active sapwood area based on percentile of Weibull distribution

Calculates the “zero” sap velocity limit as given percentile of relative flux velocity distribution as a Weibull function after Gebauer et al. (2008)

Parameters:
  • r (float or numpy.ndarray) – tree radius at breast height (in cm)
  • perc (float) – percentile to define the “zero” sap velocity limit
  • tree (str) – Tree name, for which to calculate Weibull function. Tree name has to be in gp.keys()
Returns:

act_sap – depth of “zero” sap velocity limit as active sapwood in tree (in cm)

Return type:

float or numpy.ndarray

References

Gebauer, T., Horna, V., and Leuschner, C.: Variability in radial sap flux density patterns and sapwood area among seven co-occurring temperate broad-leaved tree species, Tree Physiol., 28, 1821–1830, 2008.

rootwater.sapflow.gebauer_rel(r, tree='beech', n_points=50)[source]

relative flux density

Calculates relative flux density as a function of depth on sapwood for n_points.

Parameters:
  • r (float) – tree radius at breast height (in cm)
  • tree (str) – Tree name, for which to calculate Weibull function. Tree name has to be in gp.keys()
  • n_points (int) – Number of points for solving Weibull. This is the resolution over depth.
Returns:

sv – relative flux density at n_points

Return type:

numpy.ndarray

References

Gebauer, T., Horna, V., and Leuschner, C.: Variability in radial sap flux density patterns and sapwood area among seven co-occurring temperate broad-leaved tree species, Tree Physiol., 28, 1821–1830, 2008.

rootwater.sapflow.gebauer_weibull(x, a, b, c, d)[source]

4-parameter Weibull function after Gebauer

Calls Weibull distribution function as published by Gebauer et al. (2008).

Parameters:
  • x (float or numpy.ndarray) – realtive sampling points for distribution function
  • b, c, d (a,) – Weibull function parameters, which are tree-specific in this case

References

Gebauer, T., Horna, V., and Leuschner, C.: Variability in radial sap flux density patterns and sapwood area among seven co-occurring temperate broad-leaved tree species, Tree Physiol., 28, 1821–1830, 2008.

rootwater.sapflow.get_default_gp()[source]

read default gp

Loads default Weibull distribution parameters as published by Gebauer et al. (2008). Can be used by gebauer_weibull to calculate sap velocity distribution in sapwood

References

Gebauer, T., Horna, V., and Leuschner, C.: Variability in radial sap flux density patterns and sapwood area among seven co-occurring temperate broad-leaved tree species, Tree Physiol., 28, 1821–1830, 2008.

rootwater.sapflow.recko(r, hydra=False)[source]

sap-wood thickness after Račko et al. (2018)

Calculates sap-wood thickness as a function of the tree radius at breast height.

Parameters:
  • r (float) – tree radius at breast height (in cm)
  • hydra (bool) – selects if only the hydrated area is returned (when True)
Returns:

sapwood – sapwood thickness (in cm)

Return type:

float

References

Račko, V., O. Mišíková, P. Hlaváč, and V. Deáková (2018), Can bark stripping cause red heartwood formation in beech stems? iForest - Biogeosciences and Forestry, 11(2), 251–258, doi:10.3832/ifor2147-011.

rootwater.sapflow.roessler(r, tree='beech')[source]

Estimate bark thickness

Returns the estimated bark thickness as published by Rössler (2008)

Parameters:
  • r (float) – tree radius at breast height (in cm)
  • tree (str) – Tree name, for which to calculate bark thickness. Can be one of [‘beech’, ‘oak’]
Returns:

db – bark thickness (in mm)

Return type:

float

Raises:

NotImplementedError : if tree is not in (‘oak’, ‘beech’)

References

Rössler, G.: Rindenabzug richtig bemessen, Forstzeitung, 4, p. 21, 2008.

rootwater.sapflow.sap_calc(SV, r, perc=0.95, tree='beech')[source]

Wrapper for sap flow calculation with rootwater.sapflow.sap_volume

Calculates the sap flow after Gebauer et al. (2008) based on measured sap velocity with East30 sensors.

Parameters:
  • SV (pandas.DataFrame) – sap velocity (in cm/h) in three columns ordered inner, mid, outer point
  • r (float) – tree radius at breast height (in cm)
  • perc (float) – percentile to define the “zero” sap velocity limit
  • tree (str) – Tree name, for which to calculate bark thickness and Weibull function. Tree name has to be in gp.keys()
Returns:

return – sap volume flux (cm3/h)

Return type:

pandas.DataFrame

rootwater.sapflow.sap_volume(r, s1, s2, vout=False, perc=0.95, tree='beech')[source]

Estimate sap flow from sap velocity in inner sapwood measured with East30 sensors

Calculates the sap flow after Gebauer et al. (2008) based on sap velocity measurements by fitting of Gebauer-Weibull function to measured sap velocity at mid and inner point through a scaling factor (but not changing the empirical, tree-specific parameters).

Parameters:
  • r (float) – tree radius at breast height (in cm)
  • s1 (float or pandas.Series (datetime index is preferable)) – sap velocity measurement at mid point of East30 sensor (cm/time)
  • s2 (float or pandas.Series (datetime index is preferable)) – sap velocity measurement at inner point of East30 sensor (cm/time)
  • vout (bool) – True returns aggregated volume flux (cm3/time), False returns velocity distribution (cm/time)
  • perc (float) – percentile to define the “zero” sap velocity limit
  • tree (str) – Tree name, for which to calculate bark thickness and Weibull function. Tree name has to be in gp.keys()
Returns:

return – aggregated volume flux (cm3/time) (if vout is True), or returns velocity distribution (cm/time) (if vout is False)

Return type:

float or pandas.Series

References

Gebauer, T., Horna, V., and Leuschner, C.: Variability in radial sap flux density patterns and sapwood area among seven co-occurring temperate broad-leaved tree species, Tree Physiol., 28, 1821–1830, 2008.