Rate of Change Comparisons Between SEACAR & Older Dataset

This analysis compares rate of change for each station+parameter as calculated from the old and new datasets. Only slopes with significant p-values for in both datasets are considered in this analysis.

define getRateOfChangeParameters
library(here)
getRateOfChangeParameters <- function(){
  # read filenames from data/exports/parameterRateOfChange*.csv
  seacar_files <- list.files(here("data/exports/parameterRateOfChange"), pattern = ".*\\.csv", full.names = TRUE)
  # extract parameter names from filename basename
  seacar_parameters <- basename(seacar_files)
  seacar_parameters <- sub(".csv", "", seacar_parameters)

  # read filenames from data/seasonal-mann-kendall-stats/*.csv
  old_files <- list.files(here("data/seasonal-mann-kendall-stats"), pattern = ".*\\.csv", full.names = TRUE)
  # extract parameter names from filenames
  old_parameters <- basename(old_files)
  old_parameters <- sub(".csv", "", old_parameters)

  # return list of parameters that exist in either dataset
  return(union(seacar_parameters, old_parameters))
}
calculate differences in rate of change at each station
library(dplyr)
library(glue)
source(here("SEACARProgramCompare/mapProgramNameToShortName.R"))

# create empty data frame to store results
rate_of_change_comparison <- data.frame()
missing_seacar_parameters <- c()
missing_old_parameters <- c()

for (parameter in getRateOfChangeParameters()){

  # Read in the rate of change files
  seacar_rate_of_change <- tryCatch({
    read.csv(here("data/exports/parameterRateOfChange", glue("{parameter}.csv"))) %>%
      mutate(
        ProgramLocationID = as.character(ProgramLocationID),
        ProgramName = mapProgramNameToShortName(ProgramName)
      ) %>%  
      filter(!is.na(significant_slope))
  }, error = function(e){
    missing_seacar_parameters <<- c(missing_seacar_parameters, parameter)
    # print(e)
    NULL
  })
  
  old_rate_of_change <- tryCatch({
    read.csv(here("data/seasonal-mann-kendall-stats", glue("{parameter}.csv"))) %>%
      mutate(
        ProgramLocationID = as.character(site),
        ProgramName = mapProgramNameToShortName(source)
      ) %>%  
      filter(!is.na(significant_slope))
  }, error = function(e){
    missing_old_parameters <<- c(missing_old_parameters, parameter)
    # print(e)
    NULL
  })

  # Skip if either file is missing
  if (is.null(seacar_rate_of_change) || is.null(old_rate_of_change)) {
    # cat('!')
    next
  }

  # Compare the rate of change at each station
  seacar_rate_of_change %>%
    inner_join(old_rate_of_change, by = c("ProgramLocationID", "ProgramName")) %>%
    mutate(
      slope.new = significant_slope.x,  # from seacar_rate_of_change
      pvalue.new = pvalue.x,
      n_values.new = n_values.x,

      slope.old = significant_slope.y,  # from old_rate_of_change
      pvalue.old = pvalue.y,
      n_values.old = n_values.y,
      
      rate_of_change_diff = significant_slope.x - significant_slope.y,
      # keep only columns we need
      ProgramName = ProgramName,
      ParameterName = parameter,
      ProgramLocationID = ProgramLocationID,
      .keep = "none"
    ) -> current_comparison

  # append to results
  rate_of_change_comparison <- rbind(rate_of_change_comparison, current_comparison)
  # cat('.')
}

cat('\n\nMissing SEACAR parameters:', paste(missing_seacar_parameters, collapse = ', '))


Missing SEACAR parameters: Ammonia, Un-ionized (NH3), Ammonium, Filtered (NH4)
calculate differences in rate of change at each station
cat('\n\nMissing old parameters:', paste(missing_old_parameters, collapse = ', '))


Missing old parameters: Ammonium (NH4), Colored Dissolved Organic Matter, Light Extinction Coefficient, Nitrogen, inorganic, Secchi Depth, Total Ammonia (N)

Change in the number of values used to calculate slopes

Slopes calculated with fewer values are less reliable. The new data source is expected to have a higher n_value at each station.

n_values old vs new correlation

A line with slope 1 would indicate no change in the number of values used to calculate slopes. Data points above this line indicate an increase in the number of values used to calculate slopes. Points are expected to be above the diagonal because the new dataset has more points than the old dataset.

plot scatter plot of old vs new n_values
library(ggplot2)

# Calculate the range for both axes
max_slope <- max(c(rate_of_change_comparison$n_values.old, rate_of_change_comparison$n_values.new), na.rm = TRUE)
min_slope <- min(c(rate_of_change_comparison$n_values.old, rate_of_change_comparison$n_values.new), na.rm = TRUE)

ggplot(rate_of_change_comparison, aes(x = n_values.old, y = n_values.new)) +
  geom_point(shape=4, alpha=.2) +
  coord_equal(xlim = c(min_slope, max_slope), ylim = c(min_slope, max_slope)) +
  labs(title = "Old vs New Number of Values",
       x = "Old Number of Values",
       y = "New Number of Values")

Some station points can form lines parallel to the 1:1 line. These lines represent a set of stations that have added a similar number of points to the time series. It is likely these points from the same data provider.

Rate of Changes from slope.old and slope.new

The slopes calculated are expected to form a normal distribution around 0, with little change between the old and new data.

violin plot of slope.old and slope.new
library(ggplot2)
library(tidyr)

# Reshape to long format
df_long <- pivot_longer(rate_of_change_comparison, cols = c(slope.old, slope.new), 
                        names_to = "version", values_to = "slope")

ggplot(df_long, aes(x = version, y = slope, fill = version)) +
  geom_violin(trim = FALSE, alpha = 0.7) +
  geom_boxplot(width = 0.1, outlier.shape = NA, alpha = 0.5) +
  scale_x_discrete(labels = c("slope.new" = "New", "slope.old" = "Old")) +
  labs(title = "Slope Comparison", x = NULL, y = "Slope") +
  theme_minimal() +
  theme(legend.position = "none")

New vs Old Slopes

New vs Old Slopes Correlation

Slopes calculated from the new and old data should be highly correlated. Slopes with lower n_values are more likely to be spurious.

plot scatter plot of old vs new rate of change
library(ggplot2)

# Calculate the range for both axes
max_slope <- max(c(rate_of_change_comparison$slope.old, rate_of_change_comparison$slope.new), na.rm = TRUE)
min_slope <- min(c(rate_of_change_comparison$slope.old, rate_of_change_comparison$slope.new), na.rm = TRUE)

# Calculate quartiles for color scale
color_min <- quantile(rate_of_change_comparison$n_values.new, 0.25, na.rm = TRUE)
color_max <- quantile(rate_of_change_comparison$n_values.new, 0.75, na.rm = TRUE)

ggplot(rate_of_change_comparison, aes(x = slope.old, y = slope.new)) +
  # color by n_values
  geom_point(aes(color = n_values.new), shape=4, alpha=.3) +
  scale_color_gradient(low = "red", high = "blue", limits = c(color_min, color_max)) +
  coord_equal(xlim = c(min_slope, max_slope), ylim = c(min_slope, max_slope)) +
  labs(title = "Old vs New Rate of Change",
       x = "Old Rate of Change",
       y = "New Rate of Change",
       color = "N Values \n(quartile bounded)")

New vs Old p-values

The p-values calculated from the new and old data should be highly correlated. The p-values should become more significant (lower) as more data is added, so the majority of points should be below the diagonal.

plot scatter plot of old vs new significances
library(ggplot2)

# Calculate the range for both axes
max_slope <- max(c(rate_of_change_comparison$pvalue.old, rate_of_change_comparison$pvalue.new), na.rm = TRUE)
min_slope <- min(c(rate_of_change_comparison$pvalue.old, rate_of_change_comparison$pvalue.new), na.rm = TRUE)

ggplot(rate_of_change_comparison, aes(x = pvalue.old, y = pvalue.new)) +
  geom_point(shape = 4, alpha=.2) +
  coord_equal(xlim = c(min_slope, max_slope), ylim = c(min_slope, max_slope)) +
  labs(title = "Old vs New p Values",
       x = "Old p values",
       y = "New p values")

Rate of Change Differences

The rate of change differences should be normally distributed around 0.

plot distribution of rate of change differences
library(ggplot2)

ggplot(rate_of_change_comparison, aes(x = rate_of_change_diff)) +
  geom_histogram(bins = 50) +
  labs(title = "Distribution of Rate of Change Differences",
       x = "Rate of Change Difference",
       y = "Count")

Rate of Change Change Across Facets

Rate of change differences may be related to differences from a subset of the data.

Rate of Change Change Across ProgramName Facet

violin plot of new vs old rate of change facet programName
library(ggplot2)

ggplot(rate_of_change_comparison, aes(x = ProgramName, y = rate_of_change_diff)) +
  geom_violin() +
  labs(title = "Rate of Change Differences",
       x = "Parameter",
       y = "Rate of Change Difference")

Rate of Change Change Across ParameterName Facet

violin plot of new vs old rate of change facet parameterName
library(ggplot2)

ggplot(rate_of_change_comparison, aes(x = ParameterName, y = rate_of_change_diff)) +
  geom_violin() +
  theme(axis.text.x = element_text(angle = 45 , hjust = 1)) +
  labs(title = "Rate of Change Differences",
       x = "Parameter",
       y = "Rate of Change Difference")

Top Differences

The most different rate of change differences are plotted below. New data is plotted in red and old data in blue.

plot time series of top differences
library(here)
source(here("R", "getStationData.R"))
source(here("R", "plotStationParameterTimeSeriesComparison.R"))

# get top differences
subset_to_plot <- rate_of_change_comparison %>%
  ungroup() %>%
  arrange(desc(abs(rate_of_change_diff))) %>%
  head(10) 

# for each top diff, load the data and plot
for (i in 1:nrow(subset_to_plot)) {
  station <- subset_to_plot$ProgramLocationID[i]
  parameter_name <- subset_to_plot$ParameterName[i]
  program_name <- subset_to_plot$ProgramName[i]

  # Get data for the station+parameter
  df_station <- getStationData(station) %>%
    filter(
      ParameterName == parameter_name
    )

  # get ParameterUnits for source = "SEACAR_STD"
  seacar_units <- df_station %>% 
      filter(source == "SEACAR_STD") %>% 
      pull(ParameterUnits) %>% 
      unique() %>% 
      first()

  # get ParameterUnits for source = "OLD_STD"
  old_units <- df_station %>% 
      filter(source == "OLD_STD") %>% 
      pull(ParameterUnits) %>% 
      unique() %>% 
      first()


  # Create plot
  print(ggplot(df_station, aes(x = SampleDate, y = ResultValue, color = source)) +
      # point data
      geom_point(alpha = 0.4, shape=4) +
      labs(
      title = paste(program_name, "\n", station),
      x = "Sample Date",
      y = paste(parameter_name, "[", seacar_units, "||", old_units, "]")
      ) +
      theme_minimal() +
      theme(legend.position = "none")
  )
}

print station+parameter pairs with highest differences
library(dplyr)

rate_of_change_comparison %>%
  arrange(desc(abs(rate_of_change_diff))) %>%
  head(100) %>%
  print()
    ProgramName ProgramLocationID    slope.new   pvalue.new n_values.new
1         FKNMS               296  0.034782143 1.758528e-02          195
2          DERM              AC03  0.789230769 1.262027e-91          981
3       BROWARD               121  0.166666667 1.393746e-02           50
4          DERM              BB55 -0.800000000 2.314381e-07           43
5          DERM              BB42  0.450000000 2.492670e-05          171
6   AOML_SFPSSS                22  0.040057309 2.573111e-05          263
7   AOML_SFPSSS                 3  0.105666660 4.869302e-09          268
8   AOML_SFPSSS                 1  0.144902084 1.128928e-10          271
9   AOML_SFPSSS                21  0.070625000 7.494628e-03          191
10  AOML_SFPSSS                 2  0.071560870 2.835646e-08          276
11  AOML_SFPSSS                20  0.031789474 6.522667e-03          258
12    PalmBeach               18D  0.200000000 2.026151e-02           54
13  AOML_SFPSSS                23  0.022523538 1.251856e-02          261
14  AOML_SFPSSS                 7  0.029687500 4.507703e-02          284
15  AOML_SFPSSS                 8  0.017000000 3.022601e-02          261
16    PalmBeach                22  0.078819444 3.636730e-03          102
17  AOML_SFPSSS                 4  0.044513542 2.324120e-02          242
18  AOML_SFPSSS                 1 -0.043384615 3.388746e-07          201
19  AOML_SFPSSS                28  0.075500000 3.160677e-02          171
20  AOML_SFPSSS                22 -0.019491639 3.123551e-07          196
21         DERM              GL02  0.161739130 5.145607e-11          985
22  AOML_SFPSSS                 9  0.012904762 1.491174e-02          333
23  AOML_SFPSSS                13  0.056115789 1.563411e-04          171
24         DERM              BB29  0.148461538 1.440238e-13          560
25    PalmBeach                13  0.300000000 1.376983e-02           54
26  AOML_SFPSSS                29  0.055750000 4.947948e-02          166
27  AOML_SFPSSS                11  0.050441392 1.709283e-03          171
28  AOML_SFPSSS                34  0.075312078 1.662166e-12          331
29    PalmBeach               12A  0.060000000 1.747445e-04          121
30         DERM              BB03  0.133333333 5.576888e-06          552
31  AOML_SFPSSS                14  0.053181818 2.062367e-03          180
32  AOML_SFPSSS                26  0.133111111 3.007368e-03          162
33  AOML_SFPSSS                37  0.319751429 5.140652e-05          122
34  AOML_SFPSSS                 2 -0.011090909 2.135373e-03          219
35  AOML_SFPSSS                 4  0.067699561 2.219730e-03          160
36  AOML_SFPSSS                14  0.053181818 2.062367e-03          180
37  AOML_SFPSSS                27  0.125080357 1.300924e-03          156
38         DERM              MR04  0.108416667 2.698826e-07          654
39  AOML_SFPSSS                67  0.138333333 3.186589e-02           57
40  AOML_SFPSSS                66  0.134166667 1.793400e-02           56
41  AOML_SFPSSS                51 -0.023000000 6.299113e-03          243
42  AOML_SFPSSS                 2  0.071560870 2.835646e-08          276
43  AOML_SFPSSS                62  0.148888889 2.933131e-02           60
44         DERM              BB23  0.100000000 1.278343e-06          561
45  AOML_SFPSSS                20 -0.033153846 3.140008e-10          192
46    PalmBeach               38B  0.072250000 2.556240e-03          122
47  AOML_SFPSSS                68  0.114166667 4.993830e-02           61
48  AOML_SFPSSS                36  0.316500000 3.403107e-05          140
49         DERM              FC15  0.082222222 1.069915e-28          996
50         DERM              AC03  0.081805000 1.302439e-50          984
51  AOML_SFPSSS                58  0.013472083 1.797456e-02          179
52  AOML_SFPSSS                10  0.033000000 4.919382e-03          271
53  AOML_SFPSSS                35  0.210163636 8.247092e-04          127
54  AOML_SFPSSS                12  0.034615385 8.954981e-03          225
55    PalmBeach                16  0.051666667 1.815262e-02          122
56    PalmBeach                16  0.085857143 1.145924e-03          120
57  AOML_SFPSSS                 7 -0.016865633 1.458830e-11          357
58  AOML_SFPSSS                24  0.070221569 2.569533e-05          177
59    PalmBeach               37B  0.078452381 1.018139e-03          118
60  AOML_SFPSSS                13  0.027060185 6.482980e-03          259
61    PalmBeach                11  0.031666667 1.486842e-04          211
62  AOML_SFPSSS                 3 -0.015666667 1.890889e-04          204
63  AOML_SFPSSS                15  0.048933333 4.049203e-03          173
64         DERM              MR07  0.061250000 1.872837e-45         1024
65         DERM              MR04  0.060869565 4.874669e-32          615
66  AOML_SFPSSS                38  0.242450000 2.883084e-03          128
67         DERM              BB23 -0.060000000 7.483378e-07          182
68         DERM              BB07  0.060000000 1.536776e-06          552
69  AOML_SFPSSS                 1  0.066720000 6.443087e-05          186
70  AOML_SFPSSS                 9  0.045970588 1.677202e-03          243
71    PalmBeach                22  0.087247475 1.758732e-03          102
72         DERM              OL03  0.056250000 6.722318e-19          804
73    PalmBeach               38B  0.046250000 2.060780e-02          120
74    PalmBeach                13  0.048888889 6.955102e-09          210
75    PalmBeach                64  0.448500000 9.906663e-03           50
76    PalmBeach               31E  0.050434783 4.358391e-02          117
77    PalmBeach               12A  0.016250000 1.204480e-03          123
78      BROWARD                13  0.555000000 1.237301e-02           38
79         DERM              BB03 -0.050000000 2.921135e-04          171
80         DERM              BB19 -0.050000000 2.365126e-11          234
81         DERM              CM02  0.050000000 2.022554e-10          210
82         DERM              TM03  0.050000000 1.347230e-05          510
83    PalmBeach               31C -0.058391813 1.587244e-03          110
84         DERM              FC15  0.047777778 7.377166e-29         1032
85      BROWARD                 1  0.072916667 1.028926e-02           95
86         DERM              FC03  0.045000000 1.163791e-25          978
87      BROWARD                49  1.206857143 7.903753e-03           57
88    PalmBeach               12A  0.062991071 2.470076e-03          122
89  AOML_SFPSSS                15 -0.027113188 1.223198e-30          331
90         DERM              WC04  0.042307692 1.612091e-26          760
91         DERM              BB14  0.042139610 2.323445e-14          977
92  AOML_SFPSSS                23 -0.009166667 3.190934e-03          195
93  AOML_SFPSSS               KW1 -0.179916667 2.832611e-05          127
94  AOML_SFPSSS                 3  0.071020833 2.964449e-05          185
95         DERM              MR02  0.041052632 5.207874e-16          546
96  AOML_SFPSSS                V3  0.193750000 1.547482e-04           65
97         DERM              BB25  0.040322581 1.007066e-12          728
98  AOML_SFPSSS                 1  0.005682620 2.022737e-04          335
99    PalmBeach               27B  0.010000000 8.487097e-03          109
100        DERM              BB27 -0.040000000 4.284799e-09          231
      slope.old   pvalue.old n_values.old rate_of_change_diff
1    1.00833750 4.920279e-02           16         -0.97355536
2    0.00000000 4.950655e-02          693          0.78923077
3    0.68333333 1.814108e-02           24         -0.51666667
4   -0.30000000 5.908711e-05           43         -0.50000000
5    0.00000000 2.775608e-02          171          0.45000000
6    0.43645455 3.606127e-04          119         -0.39639724
7    0.44076250 1.811641e-03          127         -0.33509584
8    0.47885865 8.614401e-05          134         -0.33395657
9    0.36980000 5.066682e-04          120         -0.29917500
10   0.36526434 1.933060e-03          121         -0.29370347
11   0.31020417 2.507107e-03          118         -0.27841469
12   0.47750000 7.637197e-06          117         -0.27750000
13   0.29342000 1.379429e-02          119         -0.27089646
14   0.29487659 1.263164e-03          133         -0.26518909
15   0.27048500 1.907554e-04          120         -0.25348500
16   0.32250000 2.375926e-05           78         -0.24368056
17   0.26929333 3.905903e-02          120         -0.22477979
18   0.16578571 2.007155e-04          120         -0.20917033
19   0.26333929 5.461467e-03          117         -0.18783929
20   0.14385714 4.977060e-06          110         -0.16334878
21   0.00000000 3.030412e-03          672          0.16173913
22   0.17257750 8.017375e-03          126         -0.15967274
23   0.20562500 1.628271e-02           54         -0.14950921
24   0.00000000 1.688245e-02          561          0.14846154
25   0.15750000 2.114199e-02          144          0.14250000
26   0.19561000 1.683339e-02          112         -0.13986000
27   0.18900000 2.376802e-02           55         -0.13855861
28  -0.06014091 4.709357e-04          113          0.13545299
29   0.19333333 7.696948e-05           81         -0.13333333
30   0.00000000 3.197671e-02          552          0.13333333
31  -0.07441000 4.130871e-02          129          0.12759182
32   0.25201167 8.004106e-03          118         -0.11890056
33   0.20389000 2.605673e-03          111          0.11586143
34   0.10166667 3.944336e-06          111         -0.11275758
35   0.17942857 1.217996e-02           44         -0.11172901
36   0.16377778 7.257987e-03           55         -0.11059596
37   0.23528571 5.868701e-03          113         -0.11020536
38   0.00000000 3.918773e-03          558          0.10841667
39   0.24566667 8.382393e-03           53         -0.10733333
40   0.24041667 2.928813e-03           52         -0.10625000
41  -0.12720000 3.376337e-03           56          0.10420000
42  -0.03166667 4.790038e-02           55          0.10322754
43   0.25058333 3.243892e-03           56         -0.10169444
44   0.00000000 9.736670e-07          561          0.10000000
45   0.05950000 5.718036e-03          109         -0.09265385
46   0.16166667 1.196025e-02           82         -0.08941667
47   0.20350000 2.215731e-02           55         -0.08933333
48   0.22917500 9.125826e-04          129          0.08732500
49   0.00000000 2.082759e-02          694          0.08222222
50   0.00000000 2.639379e-02          700          0.08180500
51   0.09452083 3.906780e-03           53         -0.08104875
52   0.11174000 4.730608e-02          117         -0.07874000
53   0.13150000 5.676177e-03          117          0.07866364
54   0.11029875 3.614617e-05           55         -0.07568337
55   0.12618182 1.781477e-02           82         -0.07451515
56   0.16000000 1.064311e-02           80         -0.07414286
57  -0.09000665 2.244348e-07          127          0.07314102
58   0.14232143 3.775850e-02           57         -0.07209986
59   0.14777778 1.008070e-02           80         -0.06932540
60   0.09605084 3.654004e-02          120         -0.06899066
61   0.10000000 1.002137e-07          149         -0.06833333
62   0.05025000 1.014978e-02          119         -0.06591667
63   0.11225000 6.956505e-04           55         -0.06331667
64   0.00000000 1.072612e-02          704          0.06125000
65   0.00000000 2.342833e-03          519          0.06086957
66   0.18234744 4.745449e-03          117          0.06010256
67   0.00000000 4.994773e-02          182         -0.06000000
68   0.00000000 1.808247e-02          553          0.06000000
69   0.12666667 4.790038e-02           55         -0.05994667
70   0.10316667 1.634339e-03           57         -0.05719608
71   0.14428571 3.603802e-02           78         -0.05703824
72   0.00000000 3.276080e-04          514          0.05625000
73   0.10000000 4.694628e-02           80         -0.05375000
74   0.10166667 2.574723e-07          148         -0.05277778
75   0.50125000 9.306387e-03           53         -0.05275000
76   0.10200000 4.990093e-02           78         -0.05156522
77   0.06700000 3.898992e-07           83         -0.05075000
78   0.50500000 1.265262e-02           40          0.05000000
79   0.00000000 1.636747e-02          173         -0.05000000
80   0.00000000 2.098161e-24          235         -0.05000000
81   0.00000000 7.654482e-05          125          0.05000000
82   0.00000000 1.054501e-04          509          0.05000000
83  -0.10700000 8.196570e-03           71          0.04860819
84   0.00000000 1.252331e-02          735          0.04777778
85   0.12000000 4.846646e-02           81         -0.04708333
86   0.00000000 4.231642e-02          665          0.04500000
87   1.25000000 4.630620e-03           57         -0.04314286
88   0.10612500 2.408973e-02           82         -0.04313393
89  -0.07024663 9.079159e-06          119          0.04313345
90   0.00000000 1.000929e-07          503          0.04230769
91   0.00000000 1.839815e-03          674          0.04213961
92   0.03250000 3.682170e-02          109         -0.04166667
93  -0.22140000 3.009250e-02           34          0.04148333
94   0.11237500 4.115081e-04           55         -0.04135417
95   0.00000000 3.304498e-02          450          0.04105263
96   0.23462500 2.293437e-02           29         -0.04087500
97   0.00000000 3.096757e-02          558          0.04032258
98  -0.03460000 7.129366e-03           55          0.04028262
99   0.05000000 1.064802e-05           70         -0.04000000
100  0.00000000 3.618876e-23          233         -0.04000000
                              ParameterName
1                                  Salinity
2                                  Salinity
3                         Water Temperature
4                                 Turbidity
5                                  Salinity
6                                  Salinity
7                                  Salinity
8                                  Salinity
9                                  Salinity
10                                 Salinity
11                                 Salinity
12  Chlorophyll a, Corrected for Pheophytin
13                                 Salinity
14                                 Salinity
15                                 Salinity
16                         Dissolved Oxygen
17                                 Salinity
18                          NO2+3, Filtered
19                                 Salinity
20                          NO2+3, Filtered
21                                 Salinity
22                                 Salinity
23                        Water Temperature
24                                 Salinity
25  Chlorophyll a, Corrected for Pheophytin
26                                 Salinity
27                        Water Temperature
28  Chlorophyll a, Corrected for Pheophytin
29                         Dissolved Oxygen
30                                 Salinity
31                        Water Temperature
32                                 Salinity
33                                 Salinity
34                          NO2+3, Filtered
35                        Water Temperature
36                        Water Temperature
37                                 Salinity
38                                 Salinity
39                        Water Temperature
40                        Water Temperature
41  Chlorophyll a, Corrected for Pheophytin
42                                 Salinity
43                        Water Temperature
44                                 Salinity
45                          NO2+3, Filtered
46                        Water Temperature
47                        Water Temperature
48                                 Salinity
49                         Dissolved Oxygen
50                        Water Temperature
51                                 Salinity
52                                 Salinity
53                                 Salinity
54                        Water Temperature
55                        Water Temperature
56                         Dissolved Oxygen
57  Chlorophyll a, Corrected for Pheophytin
58                        Water Temperature
59                        Water Temperature
60                                 Salinity
61                         Dissolved Oxygen
62                          NO2+3, Filtered
63                        Water Temperature
64                         Dissolved Oxygen
65                         Dissolved Oxygen
66                                 Salinity
67                                Turbidity
68                                 Salinity
69                        Water Temperature
70                        Water Temperature
71                        Water Temperature
72                                 Salinity
73                         Dissolved Oxygen
74                         Dissolved Oxygen
75                         Dissolved Oxygen
76                        Water Temperature
77                                       pH
78                         Dissolved Oxygen
79                                Turbidity
80                                Turbidity
81                                Turbidity
82                         Dissolved Oxygen
83                                Turbidity
84                        Water Temperature
85                        Water Temperature
86                        Water Temperature
87                                 Salinity
88                        Water Temperature
89  Chlorophyll a, Corrected for Pheophytin
90                        Water Temperature
91                        Water Temperature
92                          NO2+3, Filtered
93  Chlorophyll a, Corrected for Pheophytin
94                        Water Temperature
95                         Dissolved Oxygen
96                                 Salinity
97                                 Salinity
98  Chlorophyll a, Corrected for Pheophytin
99                                       pH
100                               Turbidity