Skip to contents

Estimate ecosystem metabolism using the Odum open-water method. Estimates of daily integrated gross production, total respiration, and net ecosystem metabolism are returned.

Usage

ecometab(dat_in, ...)

# S3 method for class 'swmpr'
ecometab(dat_in, depth_val = NULL, metab_units = "mmol", trace = FALSE, ...)

# Default S3 method
ecometab(
  dat_in,
  tz,
  lat,
  long,
  depth_val = NULL,
  metab_units = "mmol",
  trace = FALSE,
  ...
)

Arguments

dat_in

Input data object, see details for required time series

...

arguments passed to other methods

depth_val

numeric value for station depth (m) if time series is not available

metab_units

chr indicating desired units of output for oxygen, either as mmol or grams

trace

logical indicating if progress is shown in the console

tz

chr string for timezone, e.g., 'America/Chicago'

lat

numeric for latitude

long

numeric for longitude (negative west of prime meridian)

Value

A data.frame of daily integrated metabolism estimates is returned. If a swmpr object is passed to the function, this data.frame is added to the metab attribute and the original object is returned. See the examples for retrieval from a swmpr object. The metabolism data.frame contains the following:

date

The metabolic day, defined as the 24 hour period starting at sunrise (calculated using metab_day)

DOF_d

Mean DO flux during day hours, mmol m-2 hr-1. Day hours are calculated using the metab_day function.

D_d

Mean air-sea gas exchange of DO during day hours, mmol m-2 hr-1

DOF_n

Mean DO flux during night hours, mmol m-2 hr-1

D_n

Mean air-sea gas exchange of DO during night hours, mmol m-2 hr-1

Pg

Gross production, mmol m-2 d-1, calculated as ((DOF_d - D_d) - (DOF_n - D_n)) * day hours

Rt

Total respiration, mmol m-2 d-1, calculated as (DOF_n - D_n) * 24

NEM

Net ecosytem metabolism, mmol m-2 d-1, calculated as Pg + Rt

Details

Input data include both water quality and weather time series, which are typically collected with independent instrument systems. For SWMP data, this requires merging water quality and meteorology swmpr data objects using the comb function (see examples). For the default method not using SWMP data, the input data.frame must have columns named datetimestamp (date/time column, as POSIXct object), do_mgl (dissolved oxygen, mg/L), depth (depth, m), atemp (air temperature, C), sal (salinity, psu), temp (water temperature, C), wspd (wind speed, m/s), and bp (barometric pressure, mb).

The open-water method is a common approach to quantify net ecosystem metabolism using a mass balance equation that describes the change in dissolved oxygen over time from the balance between photosynthetic and respiration processes, corrected using an empirically constrained air-sea gas diffusion model (see Ro and Hunt 2006, Thebault et al. 2008). The diffusion-corrected DO flux estimates are averaged separately over each day and night of the time series. The nighttime average DO flux is used to estimate respiration rates, while the daytime DO flux is used to estimate net primary production. To generate daily integrated rates, respiration rates are assumed constant such that hourly night time DO flux rates are multiplied by 24. Similarly, the daytime DO flux rates are multiplied by the number of daylight hours, which varies with location and time of year, to yield net daytime primary production. Respiration rates are subtracted from daily net production estimates to yield gross production rates. The metabolic day is considered the 24 hour period between sunsets on two adjacent calendar days.

Areal rates for gross production and total respiration are based on volumetric rates normalized to the depth of the water column at the sampling location, which is assumed to be well-mixed, such that the DO sensor is reflecting the integrated processes in the entire water column (including the benthos). Water column depth is calculated as the mean value of the depth variable across the time series in the swmpr object. Depth values are floored at one meter for very shallow stations and 0.5 meters is also added to reflect the practice of placing sensors slightly off of the bottom. A user-supplied depth value can also be passed to the depth_val argument, either as a single value that is repeated or as a vector equal in length to the number of rows in the input data. An accurate depth value should be used as this acts as a direct scalar on metabolism estimates.

The air-sea gas exchange model is calibrated with wind data either collected at, or adjusted to, wind speed at 10 m above the surface. The metadata should be consulted for exact height. The value can be changed manually using a height argument, which is passed to calckl.

A minimum of three records are required for both day and night periods to calculate daily metabolism estimates. Occasional missing values for air temperature, barometric pressure, and wind speed are replaced with the climatological means (hourly means by month) for the period of record using adjacent data within the same month as the missing data.

All DO calculations within the function are done using molar units (e.g., mmol O2 m-3). The output can be returned as mass units by setting metab_units = 'grams' (i.e., 1mol = 32 g O2, which multiplies all estimates by 32 g mol-1/1000 mg/g). Input data must be in standard mass units for DO (mg L-1).

The specific approach for estimating metabolism with the open-water method is described in Caffrey et al. 2013 and references cited therein.

References

Caffrey JM, Murrell MC, Amacker KS, Harper J, Phipps S, Woodrey M. 2013. Seasonal and inter-annual patterns in primary production, respiration and net ecosystem metabolism in 3 estuaries in the northeast Gulf of Mexico. Estuaries and Coasts. 37(1):222-241.

Odum HT. 1956. Primary production in flowing waters. Limnology and Oceanography. 1(2):102-117.

Ro KS, Hunt PG. 2006. A new unified equation for wind-driven surficial oxygen transfer into stationary water bodies. Transactions of the American Society of Agricultural and Biological Engineers. 49(5):1615-1622.

Thebault J, Schraga TS, Cloern JE, Dunlavey EG. 2008. Primary production and carrying capacity of former salt ponds after reconnection to San Francisco Bay. Wetlands. 28(3):841-851.

See also

calckl for estimating the oxygen mass transfer coefficient used with the air-sea gas exchange model, comb for combining swmpr objects, metab_day for identifying the metabolic day for each observation in the time series, plot_metab for plotting the results, and aggremetab for aggregating the metabolism attribute.

Examples

if (FALSE) { # \dontrun{
## import water quality and weather data, qaqc
data(apadbwq)
data(apaebmet)
wq <- qaqc(apadbwq)
met <- qaqc(apaebmet)

## combine
dat <- comb(wq, met)

## output units in grams of oxygen
res <- ecometab(dat, metab_units = 'grams')
attr(res, 'metabolism')

## manual input of integration depth
## NA values must be filled
dat_fill <- na.approx(dat, params = 'depth', maxgap = 1e6)
depth <- dat_fill$depth
res <- ecometab(dat, metab_units = 'grams', depth_val = depth)
attr(res, 'metabolism')

## use the default method for ecometab with a generic data frame
## first recreate a generic object from the sample data
cols <- c('datetimestamp', 'do_mgl', 'depth', 'atemp', 'sal', 'temp', 'wspd', 'bp')
dat <- data.frame(dat)
dat <- dat[, cols]
res <- ecometab(dat, tz = 'America/Jamaica', lat = 29.67, long = -85.06)
res
} # }