# GPPFouriertest: GPPFourier test function In GPPFourier: Calculate Gross Primary Production (GPP) from O2 Time Series

## Description

GPPFourier test function

## Usage

 ```1 2 3 4 5``` ```GPPFouriertest(x, dt = NULL, units = "days", Detrend = FALSE, filter = FALSE, Nfilt = NULL, circular = FALSE, sides = 2, filtcorrect = TRUE, trunclight = TRUE, fDL = NULL, usefft = FALSE, padlength = 0, fourierderive = FALSE, confine = "days", taper = FALSE, p = 0.1) ```

## Arguments

 `x` O2 time series from which GPP is to be calculated `dt` Sample time step `units` Time unit of sampling time step `Detrend` Toggle time series detrending. See GPPFourierPreprocess `filter` Toggle time series filtering. See GPPFourierPreprocess `Nfilt` Moving average filter width `circular` Moving average circular boundary condition (see documentation of filter()) `sides` Moving average central or one sided (see documentation of filter()) `filtcorrect` Logical controlling whether GPP estimate is corrected for signal falsely removed by filtering `trunclight` Use truncated sinusoid approximation for light&GPP. If FALSE, a sinusoid approximation is assumed `fDL` Relative fraction of light hours during the day `usefft` If FALSE the amplitude at diel freqyency is computed directly. If TRUE fft() is used to estimate amplitude at diel frequency. `padlength` Number of zeroes to be appended to the time series to increase frequency resolution `fourierderive` Calculate derivative in the frequency domain or not `confine` Confine time series to integer number of days or tidal cycles `taper` Taper the time series with spec.taper() `p` Fraction of the time series to be tapered at each side

## Details

This function allows to play around with the basics behind GPPFourier and GPPFourierPreprocess

`trunclight` controls whether GPP is assumed to evolving as a truncated sinusoid over a day or as a pure sinusoidal. This assumption determines the relation between time averaged GPP and the Fourier amplitude at diel frequency

`usefft`: by default `GPPFourier()` calculates the amplitude at diel frequency directly `fft()` calculates the full Fourier transform of the time series. The amplitude at diel frequency can be derived from the Fourier transform

`fourierderive`: if TRUE time derivation is performed in the Fourier domain by multiplying with i x omega, omega being the diurnal angular frequency. Thus the GPPFouriertest returns the amplitude at diel frequency of dx/dt. If fourierderive is FALSE, the amplitude at diel frequency of x is returned (multiplied with the factor determined by `trunclight`

## Author(s)

Tom Cox <tom.cox@uantwerp.be>

## References

Cox T.J.S. et al. (2015) 'Estimating primary production from oxygen time series: a novel approach in the frequency domain', Limnology And Oceanography:Methods 13, 529-552. DOI: 10.1002/lom3.10046