Introduction to Fluxtools

Kesondra Key

2025-08-21

library(fluxtools)
## Welcome to fluxtools V0.5.0
## 
## To start the app: run_fluxtools()
## To apply Physical Range Module (PRM) filters: use apply_prm()
## 
## For additional help: see ?run_fluxtools, ?apply_prm, browseVignettes('fluxtools')
## To view citation: citation('fluxtools')

Overview

fluxtools is an R package that provides an interactive Shiny‐based QA/QC environment for data in the AmeriFlux BASE format. In just a few clicks, you can:

  1. Upload eddy covariance data in a .csv format (AmeriFlux standard naming and timestamp conventions)
  2. Visualize any two numeric columns against time (or each other)
  3. Highlight statistical outliers (±σ from a linear fit) and add them to your point-removal R code
  4. Manually select and remove data points via a lasso or box. Selecting these adds to the accumulated removal code
  5. Copy and paste the generated code into your own R script for reproducible QA/QC
  6. Download a “cleaned” CSV with excluded values (using “apply removals”) set to NA and an R script for reproducibility

This vignette shows you how to install, launch, and use the main Shiny app—run_flux_qaqc()—and walks through a typical workflow.


Installation

You can install fluxtools from CRAN, or directly from GitHub:

# Install from CRAN 
install.packages("fluxtools")

# Install from GitHub
library(devtools) 
devtools::install_github("kesondrakey/fluxtools")

Launching the Shiny App

Load fluxtools and launch the QA/QC application:

library(fluxtools)

# Run the app
run_fluxtools()

Example workflow

  1. Upload: Select your AmeriFlux-style CSV (e.g., US_VT1_HH_202401010000_202501010000.csv). Files can be up to 500MB (larger file sizes might be harder on the Shiny interface)

  2. Choose Year(s): By default “all” is selected, but you can subset to specific years

  3. Choose variables: TIMESTAMP_START is on the x-axis by default. Change the y-axis to your variable of interest (e.g., FC_1_1_1). The generated R code focuses on removing the y-axis variable

  4. Select data: Use the box or lasso to select points. This populates the “Current” code box with something like:

    df <- df %>%
      mutate(
        FC_1_1_1 = case_when(
          TIMESTAMP_START == '202401261830' ~ NA_real_,
          TIMESTAMP_START == '202401270530' ~ NA_real_,
    
          TRUE ~ FC_1_1_1
        )
      )
  5. Flag data and Accumulate code: With points still selected, click “Flag data.” Selected points turn orange, and code is appended to the “Accumulated” box, allowing multiple selections per session.

  6. Unflag data: Use the box or lasso to de-select points and remove from the Accumulated code box.

  7. Clear Selection: To reset all selections from the current y-variable, click “Clear Selection” to reset the current view.

  8. Switch variables: Change y to any other variable (e.g., SWC_1_1_1) and select more points. Click “Flag data” Code for both variables to appear:

  df <- df %>%
    mutate(
      FC_1_1_1 = case_when(
        TIMESTAMP_START == '202401261830' ~ NA_real_,
        TIMESTAMP_START == '202401270530' ~ NA_real_,

        TRUE ~ FC_1_1_1
      )
    )

  df <- df %>%
    mutate(
      SWC_1_1_1 = case_when(
        TIMESTAMP_START == '202403261130' ~ NA_real_,
        TIMESTAMP_START == '202403270800' ~ NA_real_,

        TRUE ~ SWC_1_1_1
      )
    )
  1. Compare variables: Change to variables you would like to compare (e.g., change y to TA_1_1_1 and x to T_SONIC_1_1_1). The app computes an R² via simple linear regression. The top R² is based on points before removals, and once data is selected, a second R² will pop up - calculating the linear regression assuming the selected points have been removed

  2. Highlight outliers: Use the slider to select ±σ residuals. Click “Select all ±σ outliers” to append them to the Accumulated code. Click “Clear ±σ outliers” to deselect and remove from the code box

  3. Copy all: Click the Copy Icon to the right of the current or accumulated code box and paste into your own R script for documentation

  4. Apply Removals: Click “Apply Removals” to remove each selected data points, from the current y-variable, to replace points with NA in a new .csv (raw data is unaffected), available using ‘export cleaned data’ and remove these values from view

  5. Reload original data: Make a mistake or want a fresh start? Click Reload original data to reload the .csv from above to start over

  6. Export cleaned data: Download the cleaned .csv reflecting your confirmed removals. This button will download a zip file containing your .csv, reflecting changes from using the “apply removals” button, and includes a compiled R script with the R code for those removals.

Physical Boundary Module (PRM) function:

The Physical Range Module (PRM) removes out-of-range values to NA based on similar variables using patterns like ^SWC($|_) or ^P($|_).
Columns containing "QC" are skipped by default. No columns are removed.

Source of ranges: AmeriFlux Technical Documents, Table A1 (Physical Range Module).

Quick start

# tiny demo dataset with a few out-of-range values
set.seed(1)
df <- tibble::tibble(
  TIMESTAMP_START = seq.POSIXt(as.POSIXct("2024-01-01", tz = "UTC"),
                               length.out = 10, by = "30 min"),
  SWC_1_1_1 = c(10, 20, 150, NA, 0.5, 99, 101, 50, 80, -3),  # bad: 150, 101, -3; 0.5 triggers SWC unit note
  P         = c(0, 10, 60, NA, 51, 3, 0, 5, 100, -1),        # bad: 60, 51, 100, -1
  RH_1_1_1  = c(10, 110, 50, NA, 0, 100, -5, 101, 75, 30),   # bad: 110, -5, 101
  SWC_QC    = sample(0:2, 10, replace = TRUE)                # QC col should be ignored
)

# To see the Physical Boundary Module (PRM) rules:
get_prm_rules()
## # A tibble: 113 × 6
##    family           variable     min   max description                     units
##    <chr>            <chr>      <dbl> <dbl> <chr>                           <chr>
##  1 ^COND_WATER($|_) COND_WATER     0 10000 Conductivity of water           uS c…
##  2 ^DO($|_)         DO             0    NA Dissolved oxygen in water       umol…
##  3 ^PCH4($|_)       PCH4           0    NA Dissolved methane (CH4) in wat… nmol…
##  4 ^PCO2($|_)       PCO2           0 10000 Dissolved carbon dioxide (CO2)… umol…
##  5 ^PN2O($|_)       PN2O           0    NA Dissolved nitrous oxide (N2O) … nmol…
##  6 ^PPFD_UW_IN($|_) PPFD_UW_IN     0  2400 Photosynthetic photon flux den… umol…
##  7 ^TW($|_)         TW           -20    50 Water temperature               deg C
##  8 ^DBH($|_)        DBH            0   500 Tree diameter at breast height  cm   
##  9 ^LEAF_WET($|_)   LEAF_WET       0   100 Leaf wetness (0-100)            %    
## 10 ^SAP_DT($|_)     SAP_DT       -10    10 Sapflow probe temperature diff… deg C
## # ℹ 103 more rows
#Apply filter to all relevant variables
res <- apply_prm(df)
## PRM summary:
## * P
##   expected units: mm, PRM range: 0 to 50
##   4 values set to NA (44.4% of data)
## * RH_1_1_1
##   expected units: %, PRM range: 0 to 100
##   3 values set to NA (33.3% of data)
## * SWC_1_1_1
##   expected units: %, PRM range: 0 to 100
##   3 values set to NA (33.3% of data)
# PRM summary (counts and % replaced per column)
res$summary
## # A tibble: 3 × 7
##   column    family   min   max n_non_na_before n_replaced pct_replaced
##   <chr>     <chr>  <dbl> <dbl>           <int>      <int>        <dbl>
## 1 P         P          0    50               9          4         44.4
## 2 RH_1_1_1  RH         0   100               9          3         33.3
## 3 SWC_1_1_1 SWC        0   100               9          3         33.3
# Only set range for SWC 
df_filtered_swc <- apply_prm(df, include = "SWC")
## PRM summary:
## * SWC_1_1_1
##   expected units: %, PRM range: 0 to 100
##   3 values set to NA (33.3% of data)
# Only set range for SWC + P 
df_filtered_swc_P <- apply_prm(df, include = c("SWC", "P"))
## PRM summary:
## * P
##   expected units: mm, PRM range: 0 to 50
##   4 values set to NA (44.4% of data)
## * SWC_1_1_1
##   expected units: %, PRM range: 0 to 100
##   3 values set to NA (33.3% of data)

Physical Range Module Values

family variable min max description units
^COND_WATER(\(|_) </td> <td style="text-align:left;"> COND_WATER </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> 10000 </td> <td style="text-align:left;"> Conductivity of water </td> <td style="text-align:left;"> uS cm^-1 </td> </tr> <tr> <td style="text-align:left;"> ^DO(\)|_) DO 0 NA Dissolved oxygen in water umol L^-1
^PCH4(\(|_) </td> <td style="text-align:left;"> PCH4 </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> NA </td> <td style="text-align:left;"> Dissolved methane (CH4) in water </td> <td style="text-align:left;"> nmolCH4 mol^-1 </td> </tr> <tr> <td style="text-align:left;"> ^PCO2(\)|_) PCO2 0 10000 Dissolved carbon dioxide (CO2) in water umolCO2 mol^-1
^PN2O(\(|_) </td> <td style="text-align:left;"> PN2O </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> NA </td> <td style="text-align:left;"> Dissolved nitrous oxide (N2O) in water </td> <td style="text-align:left;"> nmolN2O mol^-1 </td> </tr> <tr> <td style="text-align:left;"> ^PPFD_UW_IN(\)|_) PPFD_UW_IN 0 2400 Photosynthetic photon flux density, underwater, incoming umolPhotons m^-2 s^-1
^TW(\(|_) </td> <td style="text-align:left;"> TW </td> <td style="text-align:right;"> -20 </td> <td style="text-align:right;"> 50 </td> <td style="text-align:left;"> Water temperature </td> <td style="text-align:left;"> deg C </td> </tr> <tr> <td style="text-align:left;"> ^DBH(\)|_) DBH 0 500 Tree diameter at breast height cm
^LEAF_WET(\(|_) </td> <td style="text-align:left;"> LEAF_WET </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> 100 </td> <td style="text-align:left;"> Leaf wetness (0-100) </td> <td style="text-align:left;"> % </td> </tr> <tr> <td style="text-align:left;"> ^SAP_DT(\)|_) SAP_DT -10 10 Sapflow probe temperature difference deg C
^T_BOLE(\(|_) </td> <td style="text-align:left;"> T_BOLE </td> <td style="text-align:right;"> -50 </td> <td style="text-align:right;"> 70 </td> <td style="text-align:left;"> Bole temperature </td> <td style="text-align:left;"> deg C </td> </tr> <tr> <td style="text-align:left;"> ^T_CANOPY(\)|_) T_CANOPY -50 70 Canopy/surface temperature deg C
^CH4(\(|_) </td> <td style="text-align:left;"> CH4 </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> 15000 </td> <td style="text-align:left;"> Methane (CH4) mole fraction (wet air) </td> <td style="text-align:left;"> nmolCH4 mol^-1 </td> </tr> <tr> <td style="text-align:left;"> ^CH4_MIXING_RATIO(\)|_) CH4_MIXING_RATIO 0 15000 Methane (CH4) mole fraction (dry air) nmolCH4 mol^-1
^CO(\(|_) </td> <td style="text-align:left;"> CO </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> NA </td> <td style="text-align:left;"> Carbon monoxide (CO) mole fraction (wet air) </td> <td style="text-align:left;"> nmolCO mol^-1 </td> </tr> <tr> <td style="text-align:left;"> ^CO2(\)|_) CO2 150 1200 Carbon dioxide (CO2) mole fraction (wet air) umolCO2 mol^-1
^CO2_SIGMA(\(|_) </td> <td style="text-align:left;"> CO2_SIGMA </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> 150 </td> <td style="text-align:left;"> Std. dev. of CO2 mole fraction (wet air) </td> <td style="text-align:left;"> umolCO2 mol^-1 </td> </tr> <tr> <td style="text-align:left;"> ^CO2C13(\)|_) CO2C13 NA -6 Stable isotope delta13C of CO2 (permil) permil
^FC(\(|_) </td> <td style="text-align:left;"> FC </td> <td style="text-align:right;"> -100 </td> <td style="text-align:right;"> 100 </td> <td style="text-align:left;"> CO2 turbulent flux (no storage correction) </td> <td style="text-align:left;"> umolCO2 m^-2 s^-1 </td> </tr> <tr> <td style="text-align:left;"> ^FCH4(\)|_) FCH4 -500 4000 CH4 turbulent flux (no storage correction) nmolCH4 m^-2 s^-1
^H2O(\(|_) </td> <td style="text-align:left;"> H2O </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> 100 </td> <td style="text-align:left;"> Water vapor in mole fraction (wet air) </td> <td style="text-align:left;"> mmolH2O mol^-1 </td> </tr> <tr> <td style="text-align:left;"> ^H2O_MIXING_RATIO(\)|_) H2O_MIXING_RATIO 0 100 Water vapor in mole fraction (dry air) mmolH2O mol^-1
^H2O_SIGMA(\(|_) </td> <td style="text-align:left;"> H2O_SIGMA </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> 15 </td> <td style="text-align:left;"> Std. dev. of water vapor mole fraction </td> <td style="text-align:left;"> mmolH2O mol^-1 </td> </tr> <tr> <td style="text-align:left;"> ^N2O(\)|_) N2O 0 NA N2O mole fraction (wet air) nmolN2O mol^-1
^N2O_MIXING_RATIO(\(|_) </td> <td style="text-align:left;"> N2O_MIXING_RATIO </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> NA </td> <td style="text-align:left;"> N2O mole fraction (dry air) </td> <td style="text-align:left;"> nmolN2O mol^-1 </td> </tr> <tr> <td style="text-align:left;"> ^NO(\)|_) NO 0 NA NO mole fraction (wet air) nmolNO mol^-1
^NO2(\(|_) </td> <td style="text-align:left;"> NO2 </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> NA </td> <td style="text-align:left;"> NO2 mole fraction (wet air) </td> <td style="text-align:left;"> nmolNO2 mol^-1 </td> </tr> <tr> <td style="text-align:left;"> ^O3(\)|_) O3 0 NA O3 mole fraction (wet air) nmolO3 mol^-1
^SC(\(|_) </td> <td style="text-align:left;"> SC </td> <td style="text-align:right;"> -100 </td> <td style="text-align:right;"> 100 </td> <td style="text-align:left;"> CO2 storage flux </td> <td style="text-align:left;"> umolCO2 m^-2 s^-1 </td> </tr> <tr> <td style="text-align:left;"> ^SO2(\)|_) SO2 0 NA SO2 mole fraction (wet air) nmolSO2 mol^-1
^FH2O(\(|_) </td> <td style="text-align:left;"> FH2O </td> <td style="text-align:right;"> -10 </td> <td style="text-align:right;"> 20 </td> <td style="text-align:left;"> Water vapor (H2O) turbulent flux (no storage correction) </td> <td style="text-align:left;"> mmolH2O m^-2 s^-1 </td> </tr> <tr> <td style="text-align:left;"> ^G(\)|_) G -250 400 Soil heat flux W m^-2
^H(\(|_) </td> <td style="text-align:left;"> H </td> <td style="text-align:right;"> -450 </td> <td style="text-align:right;"> 900 </td> <td style="text-align:left;"> Sensible heat flux (no storage correction) </td> <td style="text-align:left;"> W m^-2 </td> </tr> <tr> <td style="text-align:left;"> ^LE(\)|_) LE -450 900 Latent heat flux (no storage correction) W m^-2
^SG(\(|_) </td> <td style="text-align:left;"> SG </td> <td style="text-align:right;"> -100 </td> <td style="text-align:right;"> 250 </td> <td style="text-align:left;"> Soil heat storage flux above plates </td> <td style="text-align:left;"> W m^-2 </td> </tr> <tr> <td style="text-align:left;"> ^SH(\)|_) SH -150 150 Sensible heat storage flux W m^-2
^SLE(\(|_) </td> <td style="text-align:left;"> SLE </td> <td style="text-align:right;"> -150 </td> <td style="text-align:right;"> 150 </td> <td style="text-align:left;"> Latent heat storage flux </td> <td style="text-align:left;"> W m^-2 </td> </tr> <tr> <td style="text-align:left;"> ^PA(\)|_) PA 60 105 Atmospheric pressure kPa
^PBLH(\(|_) </td> <td style="text-align:left;"> PBLH </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> 3000 </td> <td style="text-align:left;"> Planetary boundary layer height </td> <td style="text-align:left;"> m </td> </tr> <tr> <td style="text-align:left;"> ^RH(\)|_) RH 0 100 Relative humidity (0-100) %
^T_SONIC(\(|_) </td> <td style="text-align:left;"> T_SONIC </td> <td style="text-align:right;"> -50 </td> <td style="text-align:right;"> 50 </td> <td style="text-align:left;"> Sonic temperature </td> <td style="text-align:left;"> deg C </td> </tr> <tr> <td style="text-align:left;"> ^T_SONIC_SIGMA(\)|_) T_SONIC_SIGMA 0 5 Std. dev. of sonic temperature deg C
^TA(\(|_) </td> <td style="text-align:left;"> TA </td> <td style="text-align:right;"> -50 </td> <td style="text-align:right;"> 50 </td> <td style="text-align:left;"> Air temperature </td> <td style="text-align:left;"> deg C </td> </tr> <tr> <td style="text-align:left;"> ^VPD(\)|_) VPD 0 80 Vapor pressure deficit hPa
^D_SNOW(\(|_) </td> <td style="text-align:left;"> D_SNOW </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> 500 </td> <td style="text-align:left;"> Snow depth </td> <td style="text-align:left;"> cm </td> </tr> <tr> <td style="text-align:left;"> ^P(\)|_) P 0 50 Precipitation mm
^P_RAIN(\(|_) </td> <td style="text-align:left;"> P_RAIN </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> 50 </td> <td style="text-align:left;"> Rainfall </td> <td style="text-align:left;"> mm </td> </tr> <tr> <td style="text-align:left;"> ^P_SNOW(\)|_) P_SNOW 0 50 Snowfall mm
^RUNOFF(\(|_) </td> <td style="text-align:left;"> RUNOFF </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> 200 </td> <td style="text-align:left;"> Runoff </td> <td style="text-align:left;"> mm </td> </tr> <tr> <td style="text-align:left;"> ^STEMFLOW(\)|_) STEMFLOW 0 200 Stemflow mm
^THROUGHFALL(\(|_) </td> <td style="text-align:left;"> THROUGHFALL </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> 20 </td> <td style="text-align:left;"> Throughfall </td> <td style="text-align:left;"> mm </td> </tr> <tr> <td style="text-align:left;"> ^ALB(\)|_) ALB 0 100 Albedo (0-100) %
^APAR(\(|_) </td> <td style="text-align:left;"> APAR </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> 2300 </td> <td style="text-align:left;"> Absorbed PAR </td> <td style="text-align:left;"> umolPhoton m^-2 s^-1 </td> </tr> <tr> <td style="text-align:left;"> ^EVI(\)|_) EVI -1 1 Enhanced Vegetation Index nondimensional
^FAPAR(\(|_) </td> <td style="text-align:left;"> FAPAR </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> 100 </td> <td style="text-align:left;"> Fraction of absorbed PAR (0-100) </td> <td style="text-align:left;"> % </td> </tr> <tr> <td style="text-align:left;"> ^FIPAR(\)|_) FIPAR 0 100 Fraction of intercepted PAR (0-100) %
^LW_BC_IN(\(|_) </td> <td style="text-align:left;"> LW_BC_IN </td> <td style="text-align:right;"> 50 </td> <td style="text-align:right;"> 600 </td> <td style="text-align:left;"> Longwave radiation, below canopy incoming </td> <td style="text-align:left;"> W m^-2 </td> </tr> <tr> <td style="text-align:left;"> ^LW_BC_OUT(\)|_) LW_BC_OUT 100 750 Longwave radiation, below canopy outgoing W m^-2
^LW_IN(\(|_) </td> <td style="text-align:left;"> LW_IN </td> <td style="text-align:right;"> 50 </td> <td style="text-align:right;"> 600 </td> <td style="text-align:left;"> Longwave radiation, incoming </td> <td style="text-align:left;"> W m^-2 </td> </tr> <tr> <td style="text-align:left;"> ^LW_OUT(\)|_) LW_OUT 100 750 Longwave radiation, outgoing W m^-2
^MCRI(\(|_) </td> <td style="text-align:left;"> MCRI </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> 10 </td> <td style="text-align:left;"> Carotenoid Reflectance Index </td> <td style="text-align:left;"> nondimensional </td> </tr> <tr> <td style="text-align:left;"> ^MTCI(\)|_) MTCI 0 10 MERIS Terrestrial Chlorophyll Index nondimensional
^NDVI(\(|_) </td> <td style="text-align:left;"> NDVI </td> <td style="text-align:right;"> -1 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> Normalized Difference Vegetation Index </td> <td style="text-align:left;"> nondimensional </td> </tr> <tr> <td style="text-align:left;"> ^NETRAD(\)|_) NETRAD -200 1100 Net radiation W m^-2
^NIRV(\(|_) </td> <td style="text-align:left;"> NIRV </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> Near Infrared Vegetation Index </td> <td style="text-align:left;"> W m^-2 sr^-1 nm^-1 </td> </tr> <tr> <td style="text-align:left;"> ^PPFD_BC_IN(\)|_) PPFD_BC_IN 0 2400 PPFD, below canopy incoming umolPhoton m^-2 s^-1
^PPFD_BC_OUT(\(|_) </td> <td style="text-align:left;"> PPFD_BC_OUT </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> 2000 </td> <td style="text-align:left;"> PPFD, below canopy outgoing </td> <td style="text-align:left;"> umolPhoton m^-2 s^-1 </td> </tr> <tr> <td style="text-align:left;"> ^PPFD_DIF(\)|_) PPFD_DIF 0 1400 PPFD, diffuse incoming umolPhoton m^-2 s^-1
^PPFD_DIR(\(|_) </td> <td style="text-align:left;"> PPFD_DIR </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> 2400 </td> <td style="text-align:left;"> PPFD, direct incoming </td> <td style="text-align:left;"> umolPhoton m^-2 s^-1 </td> </tr> <tr> <td style="text-align:left;"> ^PPFD_IN(\)|_) PPFD_IN 0 2400 PPFD, incoming umolPhoton m^-2 s^-1
^PPFD_OUT(\(|_) </td> <td style="text-align:left;"> PPFD_OUT </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> 2000 </td> <td style="text-align:left;"> PPFD, outgoing </td> <td style="text-align:left;"> umolPhoton m^-2 s^-1 </td> </tr> <tr> <td style="text-align:left;"> ^PRI(\)|_) PRI -1 1 Photochemical Reflectance Index nondimensional
^R_UVA(\(|_) </td> <td style="text-align:left;"> R_UVA </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> 85 </td> <td style="text-align:left;"> UVA radiation, incoming </td> <td style="text-align:left;"> W m^-2 </td> </tr> <tr> <td style="text-align:left;"> ^R_UVB(\)|_) R_UVB 0 20 UVB radiation, incoming W m^-2
^REDCI(\(|_) </td> <td style="text-align:left;"> REDCI </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> 10 </td> <td style="text-align:left;"> Red-Edge Chlorophyll Index </td> <td style="text-align:left;"> nondimensional </td> </tr> <tr> <td style="text-align:left;"> ^REP(\)|_) REP 400 800 Red-Edge Position nm
^SPEC_NIR_IN(\(|_) </td> <td style="text-align:left;"> SPEC_NIR_IN </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> NIR band radiation, incoming (hemispherical) </td> <td style="text-align:left;"> W m^-2 nm^-1 </td> </tr> <tr> <td style="text-align:left;"> ^SPEC_NIR_OUT(\)|_) SPEC_NIR_OUT 0 2 NIR band radiation, outgoing W m^-2 sr^-1 nm^-1
^SPEC_NIR_REFL(\(|_) </td> <td style="text-align:left;"> SPEC_NIR_REFL </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> NIR band reflectance </td> <td style="text-align:left;"> nondimensional </td> </tr> <tr> <td style="text-align:left;"> ^SPEC_PRI_REF_IN(\)|_) SPEC_PRI_REF_IN 0 2 PRI reference band radiation, incoming W m^-2 nm^-1
^SPEC_PRI_REF_OUT(\(|_) </td> <td style="text-align:left;"> SPEC_PRI_REF_OUT </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> PRI reference band radiation, outgoing </td> <td style="text-align:left;"> W m^-2 sr^-1 nm^-1 </td> </tr> <tr> <td style="text-align:left;"> ^SPEC_PRI_REF_REFL(\)|_) SPEC_PRI_REF_REFL 0 1 PRI reference band reflectance nondimensional
^SPEC_PRI_TGT_IN(\(|_) </td> <td style="text-align:left;"> SPEC_PRI_TGT_IN </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> PRI target band radiation, incoming </td> <td style="text-align:left;"> W m^-2 nm^-1 </td> </tr> <tr> <td style="text-align:left;"> ^SPEC_PRI_TGT_OUT(\)|_) SPEC_PRI_TGT_OUT 0 2 PRI target band radiation, outgoing W m^-2 sr^-1 nm^-1
^SPEC_PRI_TGT_REFL(\(|_) </td> <td style="text-align:left;"> SPEC_PRI_TGT_REFL </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> PRI target band reflectance </td> <td style="text-align:left;"> nondimensional </td> </tr> <tr> <td style="text-align:left;"> ^SPEC_RED_IN(\)|_) SPEC_RED_IN 0 2 Red band radiation, incoming (hemispherical) W m^-2 nm^-1
^SPEC_RED_OUT(\(|_) </td> <td style="text-align:left;"> SPEC_RED_OUT </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> Red band radiation, outgoing </td> <td style="text-align:left;"> W m^-2 sr^-1 nm^-1 </td> </tr> <tr> <td style="text-align:left;"> ^SPEC_RED_REFL(\)|_) SPEC_RED_REFL 0 1 Red band reflectance nondimensional
^SR(\(|_) </td> <td style="text-align:left;"> SR </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> 10 </td> <td style="text-align:left;"> Simple Ratio </td> <td style="text-align:left;"> nondimensional </td> </tr> <tr> <td style="text-align:left;"> ^SW_BC_IN(\)|_) SW_BC_IN 0 1300 Shortwave radiation, below canopy incoming W m^-2
^SW_BC_OUT(\(|_) </td> <td style="text-align:left;"> SW_BC_OUT </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> 800 </td> <td style="text-align:left;"> Shortwave radiation, below canopy outgoing </td> <td style="text-align:left;"> W m^-2 </td> </tr> <tr> <td style="text-align:left;"> ^SW_DIF(\)|_) SW_DIF 0 750 Shortwave radiation, diffuse incoming W m^-2
^SW_DIR(\(|_) </td> <td style="text-align:left;"> SW_DIR </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> 1300 </td> <td style="text-align:left;"> Shortwave radiation, direct incoming </td> <td style="text-align:left;"> W m^-2 </td> </tr> <tr> <td style="text-align:left;"> ^SW_IN(\)|_) SW_IN 0 1300 Shortwave radiation, incoming W m^-2
^SW_OUT(\(|_) </td> <td style="text-align:left;"> SW_OUT </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> 800 </td> <td style="text-align:left;"> Shortwave radiation, outgoing </td> <td style="text-align:left;"> W m^-2 </td> </tr> <tr> <td style="text-align:left;"> ^TCARI(\)|_) TCARI 0 10 Transformed Chlorophyll Absorption in Reflectance Index nondimensional
^SWC(\(|_) </td> <td style="text-align:left;"> SWC </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> 100 </td> <td style="text-align:left;"> Soil water content (volumetric, 0-100) </td> <td style="text-align:left;"> % </td> </tr> <tr> <td style="text-align:left;"> ^SWP(\)|_) SWP -750 0 Soil water potential kPa
^TS(\(|_) </td> <td style="text-align:left;"> TS </td> <td style="text-align:right;"> -40 </td> <td style="text-align:right;"> 65 </td> <td style="text-align:left;"> Soil temperature </td> <td style="text-align:left;"> deg C </td> </tr> <tr> <td style="text-align:left;"> ^TSN(\)|_) TSN -40 4 Snow temperature deg C
^WTD(\(|_) </td> <td style="text-align:left;"> WTD </td> <td style="text-align:right;"> -10 </td> <td style="text-align:right;"> 10 </td> <td style="text-align:left;"> Water table depth </td> <td style="text-align:left;"> m </td> </tr> <tr> <td style="text-align:left;"> ^TAU(\)|_) TAU -10 2 Momentum flux kg m^-1 s^-2
^U_SIGMA(\(|_) </td> <td style="text-align:left;"> U_SIGMA </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> 12 </td> <td style="text-align:left;"> Std. dev. of along-wind velocity </td> <td style="text-align:left;"> m s^-1 </td> </tr> <tr> <td style="text-align:left;"> ^USTAR(\)|_) USTAR 0 8 Friction velocity m s^-1
^V_SIGMA(\(|_) </td> <td style="text-align:left;"> V_SIGMA </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> 10 </td> <td style="text-align:left;"> Std. dev. of cross-wind velocity </td> <td style="text-align:left;"> m s^-1 </td> </tr> <tr> <td style="text-align:left;"> ^W_SIGMA(\)|_) W_SIGMA 0 5 Std. dev. of vertical velocity m s^-1
^WD(\(|_) </td> <td style="text-align:left;"> WD </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> 360 </td> <td style="text-align:left;"> Wind direction </td> <td style="text-align:left;"> degree </td> </tr> <tr> <td style="text-align:left;"> ^WD_SIGMA(\)|_) WD_SIGMA 0 180 Std. dev. of wind direction degree
^WS(\(|_) </td> <td style="text-align:left;"> WS </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> 40 </td> <td style="text-align:left;"> Wind speed </td> <td style="text-align:left;"> m s^-1 </td> </tr> <tr> <td style="text-align:left;"> ^WS_MAX(\)|_) WS_MAX 0 50 Max wind speed in averaging period m s^-1
^GPP(\(|_) </td> <td style="text-align:left;"> GPP </td> <td style="text-align:right;"> -30 </td> <td style="text-align:right;"> 100 </td> <td style="text-align:left;"> Gross primary productivity </td> <td style="text-align:left;"> umolCO2 m^-2 s^-1 </td> </tr> <tr> <td style="text-align:left;"> ^NEE(\)|_) NEE -100 100 Net ecosystem exchange umolCO2 m^-2 s^-1
^RECO($|_) RECO -20 50 Ecosystem respiration umolCO2 m^-2 s^-1

Fluxtools is an independent project and is not affiliated with or endorsed by the AmeriFlux Network. “AmeriFlux” is a registered trademark of Lawrence Berkeley National Laboratory and is used here for identification purposes only.

mirror server hosted at Truenetwork, Russian Federation.