Author: Olivia Cronin-Golomb  
Affiliation: Woods Hole Oceanographic Institution
Contact: olivia.cronin-golomb@whoi.edu
GitHub: 

This repository contains code used to evaluate how temporal mismatches between satellite observations and in situ measurements influence reported chlorophyll-a agreement. The analysis combines a literature review of Sentinel-2 validation studies with simulations based on high-frequency chlorophyll measurements from the Jordan Lake buoy monitoring network.

The workflow consists of four steps:

(1) Compile literature evidence on temporal mismatch and reported algorithm error.
(2) Process raw buoy chlorophyll measurements from the Jordan Lake monitoring network.
(3) Aggregate buoy observations into a standardized 30-minute chlorophyll time series.
(4) Simulate how temporal offsets between satellite overpasses and field sampling influence chlorophyll differences.

Scripts:

1_Literature_Review

This script analyzes literature review tables describing temporal mismatch and reported algorithm mean absolute error (MAE) values from Sentinel-2 chlorophyll studies. The script summarizes how frequently different mismatch intervals are reported and evaluates the relationship between temporal mismatch and algorithm error using Spearman rank correlation with bootstrap confidence intervals. Outputs include a bar chart of mismatch categories and scatterplots of MAE versus temporal mismatch.

2_Combine_Raw_UNC_Buoy_Chl_Data

This script reads raw .dat files from the Jordan Lake buoy monitoring network and produces cleaned chlorophyll datasets for individual buoy locations (Haw River, White Oak, and New Hope). The script removes descriptive text lines from the raw files and parses the sensor measurements. Measurements are filtered to retain only observations from the upper water column (≤0.5 m) and between 09:00 and 15:00. A filtered chlorophyll dataset is exported for each buoy.

3_Aggregate_UNC_Buoy_Chl_Data

This script combines the filtered buoy datasets and aggregates chlorophyll observations into 30-minute intervals. Median chlorophyll, standard deviation, mean depth, and mean turbidity are calculated for each interval. The resulting time series is exported as chlData30min.csv. Optional sections generate daily chlorophyll statistics and seasonal time-series plots for exploratory analysis.

4_Temporal_Mismatch_Simulation

This script simulates how temporal mismatches between satellite observations and field measurements affect observed chlorophyll differences using the 30-minute buoy time series.

The one-day simulation treats the noon chlorophyll value as the satellite observation and evaluates how measurements within ±3 hours differ from that value. Chlorophyll observations are grouped by trophic category and mean absolute deviation is calculated as temporal mismatch increases.

A second simulation examines longer timescales using the longest continuous buoy record. The analysis evaluates sampling times at 10:00, 12:00, and 14:00 and calculates the probability that an in situ measurement falls within ±20% of the satellite value as temporal mismatch increases.

Data Source

Chlorophyll observations used in the simulation are derived from the Jordan Lake Water Column Data dataset available on HydroShare. The dataset contains measurements from autonomous vertical profilers deployed at three sites in Jordan Lake, North Carolina: Haw River, White Oak, and New Hope.

Dataset citation:

Luettich, R. 2020. Jordan Lake Water Column Data. HydroShare.
http://www.hydroshare.org/resource/671fefb82cc94504a6734717d8aae48d

Notes

File paths in the scripts reference local directories and may need to be modified before running the code.

Nomenclature:

HW= Haw River
WO= White Oak
NH=New Hope  
Chlorophyll-a (chl) units = ug/L
sd = Standard deviation
Depth units = meters (m)
loc=Location
jlnewhope=Jordan Lake New Hope
jlhaw= Jordan Lake Haw River
jlwhiteoak=Jordan Lake White Oak 
n_obs_chl=number of chlorophyll-a observations
Time=Eastern Time Zone
Temperature units=degrees Celsius
Conductivity units= milliSiemens per centimeter (mScm)
Salinity units=pratical salinity units
Turbidity units=NTU
Dissolve oxygen units=mg/L
R2=coefficient of determination
RMSE=root mean square error
Bias=Bias
MAE=mean absolute error
MAE_multi=mean absolute multiplicative error
Bias_multi=multiplicative bias
MAPE=mean absolute percent error
NRMSE=normalized root mean square error
RAE=relative absolute error
RRMSE=relative root mean square error
RMSLE=root mean square logarithmic error


