Repository navigation
Releases
Releases · RobertsLab/acantha
v0.3.0: Farm temperature record and a simpler Water card
Two years of measured temperature from the farm itself are now on the site, and the Water card answers one question at a glance: is the water warmer or cooler than usual right now? Live site: https://robertslab.github.io/acantha/
On the dashboard
- Simpler Water card. The current water temperature is shown as one large number with a plain status: Typical for October, Warmer than usual or Cooler than usual. A range bar shows this month's farm normal and usual range (the middle 80% of readings), with today's reading as a dot. The LiveOcean model normal, each station's values and the offline-buoy notes move under Details.
- Bag temperature record card. It shows the water temperature this week in earlier years, how many days the bag reached your heat threshold (it is a setting), the peak (79.5°F on Jul 13, 2025) and the coldest reading (23.9°F on Feb 13, 2025), plus a chart of the whole record.
- Data page: a new section explains how the record was built and its caveats.
The farm temperature record
- What it is. 15-minute readings from two HOBO loggers inside a research bag on Step 4, from Oct 31, 2024 to Sep 22, 2026. The source is
output/baywater_temperature_20260922.csvin RobertsLab/10K-seed-Cgigas. - Water vs. air. The bag sits at about 2 ft MLLW (fitted from the data; it matches the elevation map). Each reading is tagged as exposed, early flood or well covered, using Lofall tide predictions. Only well-covered readings count as water temperature. For the first ~3 h after the tide returns, the water has just crossed the flats and runs about 4–5°F warmer than the bay in summer.
- Cleaning.
- The CSV's timestamps are marked UTC but are really the loggers' fixed UTC−7 clock; the build corrects this.
- Readings near field visits are flagged.
- Aug 20–21, 2025 is excluded, because the loggers were out of the bag.
- Download. The full 15-minute data (~133k rows) is on the
sensor-databranch underhobo/. To update it after a logger download, re-runbaseline/hobo_archive.py, which uses the standard library only.
Docs
docs/solar-gateway-assembly.md: assembly, bench testing, field installation and maintenance for the solar power system that runs the Milesight UG67 LoRaWAN gateway.docs/archival-temperature-plan.md: how the record was built and what is still open.
Known gaps
- Until a farm sensor reports from under water, "current" water temperature comes from Port Townsend, 34 km away, so the comparison with the farm normal is rough. The card switches to the farm sensor automatically once one is live and submerged.
- Two years of data is a short baseline; treat the farm normal as "what this record saw".
- Logger 22023395 (shown as "Thorndyke" in SHIELD) was not in the Step 4 bag. Its location is still to be confirmed.
Full changelog: v0.2.0...v0.3.0
🤖 Generated with Claude Code
v0.2.0: Farm map, water forecast and satellite views
The map now centers on the farm itself, and the water forecast and satellite views from the last release are on the site. Live site: https://robertslab.github.io/acantha/
On the map
- Farm layout. The bag blocks and the research-bags line, drawn from the farm schematic, with a popup per block. The map now opens zoomed to the farm (
web/farm-layout.geojson; edit it in geojson.io). - Tide height lines. Contours every 2 ft from −6 to +12 ft MLLW around the farm, the same datum as the tide predictions, so a −2 ft low uncovers everything above the −2 ft line. Built from NOAA's 1/9 arc-second Puget Sound DEM by
baseline/tide_contours.py, with NAVD88 shifted to MLLW using the Whitney Point (9445246) datums. - Farm photos. Geotagged photos dropped into
photos/become clickable markers with the picture, caption and date.photos/build.pypublishes metadata-free web copies only; originals stay out of the repo. JPEG, HEIC and PNG work. Seephotos/README.md. - Satellite view (Sentinel-2). A scene picker with capture time, clear % at the bay and tide at capture, plus a Satellite card linking to the last clear view.
- LiveOcean model cells drawn as hollow markers with a forecast chart.
On the dashboard
- Water forecast card. UW LiveOcean surface temperature and salinity: now, the 3-day range, a 10-day chart with Port Townsend observations overlaid, and the recent model-vs-observation bias.
- Flags use the model. The Vibrio check falls back to the model surface temperature when no observation is current and warns when the forecast reaches the threshold. A drop in salinity at the bay mouth adds a runoff note. Both thresholds are user settings.
Farm sensors
- The Dragino D20-LB test unit now reports through The Things Network.
- Every reading is archived to monthly CSVs on the
sensor-databranch, so data is no longer lost after the site's 7-day window. - New guide for adding gateways and sensors:
docs/sensors.md. - Clearer TTN errors, and paged storage requests so fetching doesn't hit TTN's limit.
Known gaps
- The test sensor is listed at 8 ft (an estimate), but the elevation model puts that spot near 0 ft MLLW, so its in-water/exposed status may be off until the elevation is measured.
- The farm layout is missing the lower-right block, buoys and edge lines from the schematic.
- Still no live dissolved-oxygen or pH source for northern Hood Canal while the ORCA buoys are offline.
Full changelog: v0.1.0...v0.2.0
🤖 Generated with Claude Code
v0.1.0: Phase 1 MVP (beta)
First tagged release of the Thorndyke Bay conditions portal (beta). The live site is https://robertslab.github.io/acantha/.
On the site
- Map and "Today at Thorndyke" panel with tides and low-tide work windows (Lofall), NWS forecast and marine alerts, sunrise and sunset, and WA DOH biotoxin and growing-area status.
- Low-tide calendar with .ics export.
- Weather radar overlay with regional and KATX high-resolution loops.
- Rain closure watch. Observed rain from Stage IV radar at the site and nearby CoCoRaHS gauges, plus the NWS forecast, against the closure threshold.
- Water card. Temperature from the nearest reporting station; the ORCA buoys are picked up automatically when they come back online. New in this release: a "vs. normal" line comparing the current reading with the UW LiveOcean monthly surface climatology (2014–2024) at the Thorndyke Bay mouth, with the bottom-oxygen normal shown as context.
- Farm temperature sensors via The Things Network. They show mock data until the hardware is deployed.
Built but not shown yet
- LiveOcean nowcast and forecast ingest (
ingest/sources/liveocean.py): surface temperature, salinity and free surface at the Thorndyke and Dabob model cells. It currently fails because the IOOS mirror is returning 502; the site keeps working without it. Seedocs/liveocean-plan.md. - LiveOcean monthly climatology baseline (
baseline/): a one-off script and a committed 7 KB JSON of surface and bottom temperature, salinity and oxygen. - Sentinel-2 imagery pipeline (
imagery/, twice daily to theimagery-databranch). Seedocs/imagery-plan.md.
Known gaps
- No live dissolved-oxygen or pH source for northern Hood Canal while the ORCA Hansville and Dabob buoys are offline.
- Public LiveOcean data is surface-only physics; bottom oxygen and pH need UW to publish them.
🤖 Generated with Claude Code