The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

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.

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.