Flux Processing Chain

You are here:

The default SFN (Swiss FluxNet) processing chain from raw data to final flux products.

Info about flux levels


Important Updates

  • 8 May 2021: Page structucre and  information updated, info from the article Flux Levels was integrated here
  • 9 Aug 2020: Eddypro version 7 now outputs a fully formatted FLUXNET file (*_fluxnet_*) that can in most cases be directly uploaded for sharing. The overview has been adjusted accordingly.
    Update 18 Aug 2020: Despite its name, the *_fluxnet_* from EddyPro cannot directly be uploaded for sharing in FLUXNET. It still has to be adjusted following the EFDC guidelines.
  • 29 Apr 2019: Important update: FLUXNET provides Level-3 and Level-4 fluxes. The folder structure on the grasslandserver and this page were edited to be in line with FLUXNET standards.



  • Raw data conversion
  • Level-0: Flux Calculations with OPENLAG
  • Level-1: Flux Calculations
  • Level-2: Quality Flag Expansion
  • Level-3.1: Off-season Uptake Correction (if needed)
  • Level-3.2: Storage Correction
  • Level-3.3: Spike Detection and Removal
  • Level-3.4: Ustar Threshold Detection (NEE) and Application
  • Level-4.1: Gap-filling
  • Level-4.2: Partitioning (NEE)


Step 1 | Raw Data Conversion

  • What Is Done: Raw data are converted from a compressed binary format to ASCII format
  • Done by: PI, SRP
  • Result: Raw data files in ASCII format
  • Required data: Raw data binary files
  • Software: BICO


Step 2 | Level-0 Flux Calculations With OPENLAG and Other Tests

  • SFN flux level: Level-0
  • What Is Done: Calculation of preliminary fluxes using preliminary EddyPro processing settings
  • Done by: PI, SRP
  • Result: Preliminary fluxes
  • Required data: ASCII raw data files from Step 1
  • Description: Basis for Level-1. Level-0 means “what you do is up to you”. No rules here. These fluxes are calculated throughout the year, on-demand by the SRPs (site-responsible persons). Mainly used to check in on the site, e.g. if data are complete, if fluxes look plausible etc. Calculations are less strict than Level-1, e.g. the time window in which the lag time is searched is often much larger (10s+) without default time lag to check if the lag is still found as expected (OPENLAG). This information of lag times can then be used in Level-1 to narrow the time window to a more plausible range (typically 5-10s, or even lower for open-path IRGAs). Also, some settings might still not be final, e.g. some instrumet settings (vertical separation of the IRGA) and to shorten calculation time the spectral correction might be set e.g. to Moncrieff et al. (1997), which is faster than e.g. Fratini et al. (2012) that is used for Level-1 calculations for some sites (IRGA72). Level-0 fluxes are currently calculated by the SRPs on the RDSnx (on-demand) and by the VPC for automatic fluxes shown in the QuickViews.
  • Software: FLUXRUN with EddyPro


Step 3 | Level-1 Flux Calculations

  • SFN flux level: Level-1
  • What Is Done: Calculation of final fluxes using final EddyPro processing settings
  • Done by: PI, SRP
  • Result: Final fluxes that can be used in the next processing steps
  • Required data:
    • ASCII raw data files from Step 1
    • Final screened meteo data: TA, PA, RH, SW_IN, LW_IN, PPFD_IN (6 variables), variable abbreviations are described in the List of Variables
    • OPENLAG results from Step2, used to determine the size of the lag search window
  • Description: Basis for Level-2. Strictly speaking, these calculations are independent from Level-0, but insights from Level-0 are used to improve Level-1 calculations, such as “Is the defined time window for lag search appropriate?”. These calculations make use of an additional input file that contains 6 meteo parameters (TA, PA, RH, SW_IN, LW_IN, PPFD_IN) that can be used to improve flux calculations. Note that after Level-1, the calculated fluxes do not change anymore.
  • Typical differences between Level-0 and Level-1 fluxes:
    Level-1 fluxes have:

    • often a narrower time window for lag search, e.g. 5 sec instead of 10 sec
    • a different spectral correction, e.g. Fratini et al. (2012) instead of Moncrieff et al. (1997)
    • 6 meteo parameters as additional input
    • additional output such as random uncertainty
    • sensor separation settings, i.e. the distance between SA and GA is given as accurately as possible
  • Important: The off-season uptake correction as implemented in EddyPro is never used in our open-path flux calculations, since this implementation was developed for vertically mounted instruments and our IRGAs have an inclined sensor mounting. The correction is later applied in a separate step (similar to Kittler et al., 2017).
  • Software: FLUXRUN with EddyPro


Step 4 | Level-2 Fluxes: Quality Flag Expansion

  • SFN flux level: Level-2
  • What Is Done: Extraction of additional information from the EddyPro full output file and creation of a new, expanded quality flag
  • Done by: PI, SRP
  • Result: An expanded flux quality control flag is added to the data:QCF (Quality Control Flag)
    • QCF = 0 … best flux quality
    • QCF = 1 … OK flux quality, can be used for budget calculations
    • QCF = 2 … worst flux quality, it is recommended to reject these fluxes
  • Description: Basis for Level-3. These are the same fluxes as in Level-1, but an additional, extended quality flag is added to the output. Level-1 flux results are loaded into DIIVE and additional QA/QC information that is already in the file but not part of the default EddyPro “qc_” quality flag is combined into a new quality flag QCF. For example, during this step, the “Signal Strength” of the IRGA72 is included in the extended quality flag, and flux values outside a physicall plausible range are flagged, e.g. CO2 fluxes > 50 umol m-2 s-1 and CO2 fluxes < -50 umol m-2 s-1 are flagged as bad data due to unrealistic values.
  • Important: u* filtering is not considered in the Level-2 quality flag because wrong u* thresholds have the potential to remove a lot of data if not set appropriately, and since there are several approaches how to select the best u* threshold (FLUXNET also output several columns of CO2 fluxes with different u* thresholds and methods), this is not included by default in this step.
  • Software: DIIVE


Step 5 | Level-3 Fluxes

  • SFN flux level: Level-3
  • What Is Done: Final calculated fluxes are further corrected (off-season uptake, storage) and checked for outliers (spike detection) and time periods of low turbulence (ustar threshold)
  • Done by: PI, SRP; an alternative version is created by FLUXNET
  • Four sublevels:
    • Level-3.1: Off-season uptake correction (Burba et al., 2006; Burba et al., 2008; Järvi et al., 2009; Kittler et al., 2017), if needed, for CO2 open-path fluxes from the LI-7500 (IRGA75). Currently we are checking if water fluxes also need this correction.
    • Level-3.2: Storage correction, calculated by addition: flux + storage. Yields NEE in case of CO2.
    • Level-3.3: Spike detection and removal
    • Level-3.4: NEE ustar threshold detection and removal of NEE flux values below the threshold, only applied to NEE, N2O and CH4 fluxes. For N2O and CH4 fluxes, the threshold(s) calculated for NEE is/are used. No threshold is applied to water fluxes (H2O, LE, ET) and the sensible heat flux (H).
  • Description: Basis for Level-4. Calculation of NEE, despiking and u* threshold detection. No calculated fluxes are changed. Level-3 fluxes are produced on-demand for publications by the PI or by FLUXNET. In this step, also the storage terms are considered and NEE is calculated (important for forests; NEE = CO2 flux + storage term; the storage term is ideally calculated from profile measurements, but in case these are not available the EddyPro one-point storage term is used; normally negligible for grasslands). Next, NEE is despiked and the u* thresholds are calculated.
  • SoftwareDIIVE and/or ReddyProc


Step 6 | Level-4 Fluxes

  • SFN flux level: Level-4
  • Level-4.1: Gap-filling
    • Default method for CO2, water and energy fluxes: MDS (using SW_IN, TA and VPD) (Reichstein et al., 2005)
    • Method for N2O and CH4: to be decided
    • Important: For your analyses, keep in mind that CO2 gap-filling is most likely done with a temperature-dependent model.
    • Software: DIIVE or ReddyProc
  • Level-4.2: Partitioning
    • Calculate GPP and RECO from NEE
    • Water partitioning is not yet implemented by default in this step, but will likely be added at some point.
    • Software: ReddyProc


Further reading regarding post-processing steps: Wutzler et al. (2018)


FLUXNET Data Sharing

Which data do we upload to FLUXNET / EFDC?

  • Despite its name, the *_fluxnet_* file cannot directly be uploaded for sharing in FLUXNET. We upload the adjusted Level-1 full_output file from EddyPro. It still has to be adjusted following the EFDC guidelines (note the required timestamp and variable names with _1_1_1, also only upload most relevant flux variables from this file, not all of them).
  • In some cases, it might be necessary to remove some clearly wrong data in the uploaded file before upload, e.g. when we are sure that a sensor was clearly defective but still produced data and erroneous fluxes were calculated. In this case, file is adjusted before upload (erroneous fluxes set to -9999).

General Info

  • Important: FLUXNET needs fluxes that are not oulier-removed and not u*-filtered and not gap-filled and not partitioned because they apply their scripts to perform all of these steps! Only when data are clearly wrong it is recommended to set the data to -9999 in the data files before upload.
  • In FLUXNET / EFDC, the understand the uploaded data as Level-2 data. In our case, we can directly upload our Level-1 data directly in most cases.
    • If the Level-1 data contains erroneous fluxes that need to be removed, those fluxes are set to -9999 and the adjusted file is stored as Level-2 data on our server and also uploaded to FLUXNET.
    • Keep in mind that we upload our Level-1 data, although FLUXNET / EFDC always understands uploaded data as (their) Level-2:

Level-2 data are original data submitted by the PI and checked/filtered only for out-of-range values or clearly wrong data. The variables available are listed in the table here below and are provided as ASCII file with missing values reported as -9999 and timestamp indicating the end of the averaging period. The file produced has in the first line the variables codes.
– Source: EFDC

Example: Processing Steps

The processing steps in FLUXNET are approximately like this:

  1. Level-1 fluxes are uploaded by PI
  2. Level-3 produced by FLUXNET
    1. calculation of NEE (storage correction, gives NEE, Papale et al., 2006)
    2. extension of QC flags (spikes, u* filtering flags to filter for low-turbulence conditions, creates additional data gaps)
  3. Level-4 produced by FLUXNET
    1. application of QC flags, e.g. spike removal (Papale et al., 2006)
    2. gap-filling
    3. partitioning (using NEE: Gross Primary Production, GPP; Terrestrial Ecosystem Respiration, TER)
    4. aggregation to different time resolutions