Perform GAM analysis for Specified Season. Relies on mgcv::gam to perform general additive model.

- df
data frame

- dep
dependent variable

- stat
station

- layer
layer

- analySpec
analytical specifications

- gamTable
gam table setting (set to FALSE to turn off table output)

- gamPlot
gam plot setting (set to FALSE to turn off plotting)

- gamDiffModel
GAM model(s) used for computing differences on sub-annual/multi-period basis

- flow.detrended
data generated by detrended.flow. Default = NA.

- salinity.detrended
data generated by detrended.flow. Default = NA.

- gamSeasonPlot
Character vector for evaluating and displaying seasonal model (see details for further information).

Returns a list with results

gamSeasonPlot is an additional argument (relative to the arguments used in the gamTest function) that is used to target a specific season for the focus of output and can be a 2- or 3-element vector. While the GAM is fit to all data as in the function gamTest, the output figure will only show the model corresponding to the gamSeasonPlot specifications. The first element of gamSeasonPlot can be a single date (e.g., ‘8/28’) or a date range (e.g., ‘7/1-9/30’). The second element specifies the color of the line to be plotted. If a date range is specified as the first element and an optional third element is provided as ‘range’, then the plot will show the season minimum and maximum as well as the mean; otherwise, only the mean is plotted. If the first element of gamSeasonPlot is a single date then observations within a +/- 15-day window of the date are plotted; otherwise, only observations within the date range are plotted. Estimates of difference are computed with baytrends::gamDiff by setting the argument doy.set to either the single date provided from gamSeasonPlot or the same doys used to compute the season mean. The option to specify seasons that "wrap" around end of year, i.e., 12/1-1/30, has not been implemented.

```
if (FALSE) {
# Specify parameter and station to analyze
dep <- 'do'
stat <- 'CB5.4'
layer <- 'B'
# Prepare data and set up specifications for analysis
dfr <- analysisOrganizeData (dataCensored)
df <- dfr[[1]]
analySpec <- dfr[[2]]
# Apply gamTest
gamResult <- gamTest(df, dep, stat, layer, analySpec=analySpec)
gamPlotDisp(gamResult = gamResult, analySpec = analySpec,
fullModel = 2, seasAvgModel = 2, seasonalModel = 2,
diffType = "regular", obserPlot = TRUE, interventionPlot = TRUE,
seasAvgPlot = TRUE, seasAvgConfIntPlot = FALSE,
seasAvgSigPlot = FALSE, fullModelPlot = TRUE, seasModelPlot = TRUE,
BaseCurrentMeanPlot = FALSE, adjustedPlot = FALSE)
# Apply gamTestSeason
gamResult2 <- gamTestSeason(df, dep, stat, layer, analySpec=analySpec,
gamSeasonPlot = c("7/15-8/15", "purple", "range"))
gamPlotDispSeason(gamResult = gamResult2, analySpec = analySpec,
fullModel = 2, seasAvgModel = 2, seasonalModel = 2,
diffType = "regular", obserPlot = TRUE, interventionPlot = TRUE,
seasAvgPlot = TRUE, seasAvgConfIntPlot = FALSE,
seasAvgSigPlot = FALSE, fullModelPlot = FALSE, seasModelPlot = FALSE,
BaseCurrentMeanPlot = TRUE, adjustedPlot = FALSE, gamSeasonFocus = TRUE)
}
```