Recreates the violin + GAM trend plots described in Rachel Jakuba's (Buzzards Bay Coalition) "Baywatchers long-term analysis" email: for each water-quality parameter, the annual distribution of values (violin) overlain with a GAM smooth trend curve, colored by periods of statistically significant change (red = increasing, blue = decreasing, gray = not significant).
Parameters covered: water temperature, ammonium (NH4), chlorophyll-a, and Secchi depth.
Buzzards Bay Coalition Baywatchers water quality monitoring program, 1992-2023 (~116k QC'd
samples, 414 stations). See data/README.md for how to fetch the source
spreadsheet from the MBL/WHOI Data Archive.
analysis/load_data.py— loads and caches the raw spreadsheet.analysis/trends.py— GAM trend fitting, bootstrap significance testing, and static matplotlib figures (python analysis/trends.py, writes tofigures/).notebooks/baywatchers_trends_hvplot.ipynb— interactive version (hvplot/holoviews/panel): a station map, the four violin+trend plots with pan/zoom/hover, and a dropdown dashboard.figures/— static PNG output ofanalysis/trends.py.
pip install pandas numpy scipy matplotlib openpyxl pyarrow pygam hvplot holoviews panel