usEstUstarThreshold: sEddyProc$sEstUstarThreshold - Estimating ustar threshold


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


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



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


factor for subsetting times (see details)


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


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


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


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


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


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:

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

This function is called by

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


A list with entries


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)


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


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


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


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


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


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.

Questions? Problems? Suggestions? or email at

All documentation is copyright its authors; we didn't write any of that.