sEddyProc$sEstUstarThreshold - Estimating ustar threshold

Share:

Description

Estimate the Ustar threshold by aggregating the estimates for seasonal and temperature subsets.

Usage

1
2
3
4
5
usEstUstarThreshold(ds, seasonFactor.v = usCreateSeasonFactorMonth(ds$sDateTime), 
    seasonFactorsYear = usGetYearOfSeason(seasonFactor.v, 
        ds$sDateTime), ctrlUstarEst.l = usControlUstarEst(), 
    ctrlUstarSub.l = usControlUstarSubsetting(), fEstimateUStarBinned = usEstUstarThresholdSingleFw2Binned, 
    isCleaned = FALSE)

Arguments

ds

data.frame with columns "sDateTime", "Ustar", "NEE", "Tair", and "Rg"

seasonFactor.v

factor for subsetting times (see details)

seasonFactorsYear

named integer vector: for each seasonFactor level, get the year (aggregation period) that this season belongs to

ctrlUstarEst.l

control parameters for estimating uStar on a single binned series, see usControlUstarEst

ctrlUstarSub.l

control parameters for subsetting time series (number of temperature and Ustar classes ...), see usControlUstarSubsetting

fEstimateUStarBinned

function to estimate UStar on a single binned series, see usEstUstarThresholdSingleFw2Binned

isCleaned

set to TRUE, if the data was cleaned already, to avoid expensive call to usGetValidUstarIndices.

Details

The threshold for sufficiently turbulent conditions u* (Ustar) is estimated for different subsets of the time series. From the estimates for each season (each value in seasonFactor.v the maximum of all seasons of one year is reported as estimate for this year. Within each season the time series is split by temperature classes. Among these Ustar estimates, the median is reported as season value.

In order to split the seasons, the uses must provide a vector with argument seasonFactor.v. All positions with the same factor, belong to the same season. It is conveniently generated by one of the following functions:

  • usCreateSeasonFactorMonth (default DJF-MAM-JJA-SON with December from previous to January of the year)

  • usCreateSeasonFactorMonthWithinYear (default DJF-MAM-JJA-SON with December from the same year)

  • usCreateSeasonFactorYday for a refined specification of season starts.

  • usCreateSeasonFactorYdayYear for specifying different seasons season between years.

The estimation of Ustar on a single binned series can be selected argument fEstimateUStarBinned.

  • usEstUstarThresholdSingleFw1Binned

  • usEstUstarThresholdSingleFw2Binned (default)

This function is called by

  • sEstUstarThreshold which stores the result in the class variables (sUSTAR and sDATA).

  • sEstUstarThresholdDistribution which additionally estimates median and confidence intervals for each year by bootstrapping the original data within seasons.

change point detection (CPT) method

With specifying ctrlUstarEst.l=usControlUstarEst(isUsingCPTSeveralT=TRUE) change point detection is applied instead of the moving point test (e.g. with Fw2Binned).

The sometimes sensitive binning of uStar values within a temperature class is avoided. Further, possible spurious thresholds are avoid by testing that the model with a threshold fits the data better than a model without a threshold using a likelihood ratio test. In addition, with CPT seasons are excluded where a threshold was detected in only less than ctrlUstarEst.l$minValidUStarTempClassesProp (default 20% ) of the temperature classes.

Note, that this method often gives higher estimates of the u* threshold.

One-big-season fallback

If there are too few records within one year, of when no season yielded a finite u*Threshold estimate, then the yearly u*Th is estimated by pooling the data from seasons within one seasonYear. The user can suppress using pooled data on few records by providing option ctrlUstarSub.l$isUsingOneBigSeasonOnFewRecords = FALSE (see usControlUstarSubsetting

Value

A list with entries

uStarTh

data.frame with columns "aggregationMode","seasonYear","season","uStar" with rows for "single": the entire aggregate (median across years) , "seasonYear": each year (maximum across seasons or estimate on pooled data) , "season": each season (median across temperature classes)

seasonYear

data.frame listing results for year with columns "seasonYear" , "uStarMaxSeason" the maximum across seasonal estimates within the year , "uStarPooled" the estimate based on data pooled across the year (only calculated on few valid records or on uStarMaxSeason was nonfinite) , "nRec" number of valid records (only if the pooled estimate was calculated) , "uStarAggr" chosen estimate, corresponding to uStarPooled if this was calculated, or uStarMaxSeason or uStarTh across years if the former was non-finite

season

data.frame listing results for each season , "nRec" the number of valid records , "uStarSeasonEst" the estimate for based on data within the season (median across temperature classes) , "uStarAggr" chose estimate, corresponding to uStarSeasonEst, or the yearly seasonYear$uStarAggr, if the former was non-finite

tempInSeason

numeric matrix (nTemp x nAggSeason): estimates for each temperature subset for each season

bins

columns season, tempBin and uStarBin for each record of input ds reporting classes of similar environmental conditions that the record belongs to.

Author(s)

TW, OM (Department for Biogeochemical Integration at MPI-BGC, Jena, Germany)

References

Ustar filtering following the idea in Papale, D. et al. (2006) Towards a standardized processing of net ecosystem exchange measured with eddy covariance technique: algorithms and uncertainty estimation. Biogeosciences 3(4): 571-583.

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.