FOR ONTARIO MUNICIPALITIES & CONSERVATION AUTHORITIES

Screening simulations of lake water quality, up to 30 days ahead.

Lake Twin screens lakes for phosphorus, chloride and beach-bacteria risk across lakes, stormwater ponds and urban catchments — from public satellite, weather and monitoring data.

Screening-level modelling for Ontario watersheds.

PHOSPHORUS RISK — ILLUSTRATIVE EXAMPLE
906030ACTION THRESHOLDTODAY+15 D+30 D

Example: threshold crossed on day 21. Illustrative curve, not a live forecast. Run the 30-day screening for a lake on the platform.

Right now, you find out too late.

The bloom is already there

Grab samples take days to come back from the lab. By the time the result lands, the beach is closed and the calls have started.

You're wearing salt you didn't spread

Chloride in the creek gets attributed to municipal road salt. There has been no practical way to show how much came off private and commercial lots.

The data is in a binder

Pond monitoring, sonar surveys, lab results and volunteer readings sit in separate files that nobody can act on together.

WHAT IT DOES

Three things, done properly.

30-day phosphorus risk screening

A daily balance of catchment runoff, wetland retention and settling in the lake, run many times (Monte Carlo) to estimate the chance that total phosphorus exceeds Ontario's interim objective.

Explores where road salt comes from

Explores how road-salt loads might split between municipal roads and private and commercial lots, from a chloride level you enter. Currently one catchment, with restricted access.

Models development before you approve it

Draw a proposed subdivision boundary. Where soil and slope layers are loaded, the engine intersects it with them, then shows post-development runoff, peak flow and phosphorus load with LID controls applied.

WHO IT'S FOR

Built around four jobs.

Stormwater & public works

Salt liability, pond maintenance priorities, and Code of Practice reporting.

Environmental services & parks

Beach-bacteria screening estimates, bloom-risk scenarios, and a status page residents can read.

Conservation authorities

Sub-catchment nutrient budgets and documented evidence for watershed report cards.

Developers & consultants

LID sizing and runoff scenarios for stormwater management reports, in an afternoon.

HOW IT WORKS

No new sensors required to start.

01

Connect what you already collect

Satellite observations, open environmental monitoring feeds, and user-configured simulation scenarios are harmonized across lake basins.

02

The model runs every day

Physics and chemistry rather than pattern matching: catchment hydrology, nutrient chemistry, thermal structure and satellite indices, run across thousands of scenarios.

03

You get something you can act on

A dated risk curve, an alert when a threshold is crossed, and the specific coordinate worth sampling next — not another dashboard to check.

How each number is traced.

Every parameter is recorded with its source and status; many are still placeholders, and the tool flags each one. Open models, transparent assumptions, and documented limits.

Read the technical documentation →

Open, auditable methods

Published equations and named models, not proprietary scoring.

Public data sources

Sentinel‑2, Environment and Climate Change Canada (daily climate data), USGS NWIS, DataStream (Ontario Lake Partner Program, Living Lakes Canada Lake Blitz, Big Rideau Lake Association).

Full citations →

Your data stays yours

Row-level isolation per organisation. No pooling between clients.

See it on your own lake.

Tell us which waterbody or catchment and we'll load it before the call. You'll be looking at your own data, not a demo dataset.

TECHNICAL DOCUMENTATION

Limnology Framework & Core Math

CENTAURI RESEARCH • LAKE DIGITAL TWIN

Project Charter & Science Documentation

v1.2.5 Architecture

A digital twin prototype for research on lake water-quality modelling. It runs screening simulations alongside sampling; it does not replace monitoring.

Stumm-Morgan Chemical Equilibrium

To model phosphorus precipitation (Hydroxyapatite formation), the engine calculates the Ion Activity Product (IAP):

log₁₀(IAP) = 5·log₁₀({Ca²⁺}) + 3·log₁₀({PO₄³⁻}) + log₁₀({OH⁻})

The Saturation Index (SI = log₁₀(IAP) - log₁₀(K_sp)) determines phosphorus bioavailability:

  • SI > 0: Precipitation thermodynamically favored (Self-cleansing).
  • SI < 0: Phosphorus remains soluble (High algae risk).
Sentinel-2 Multispectral Remote Sensing

Automated cloud-based STAC harvesters compute multispectral indices for Chlorophyll-a and turbidity detection:

NDCI (Chlorophyll Index): (B5 - B4) / (B5 + B4)
NDTI (Turbidity Index): (B4 - B3) / (B4 + B3)
NDWI (Water Index): (B3 - B8) / (B3 + B8)
Connected Live Data Streams & Third-Party API Feeds

The Lake Digital Twin operates a fully synchronized ingestion pipeline linking real-time meteorological models, Sentinel-2 spectral grids, and database hypertables to fuel the physics simulators:

Open-Meteo API

Provides live precipitation intensity and air temperature parameters based on specific lake GPS boundaries.

URL: api.open-meteo.com
Neon DB Hypertables

Stores time-series volunteer water quality samples (Secchi depth, DO, pH) and historical weather normals.

Stores: water-quality samples, weather records
Satellite Observations

Ingests Copernicus Sentinel-2 Level-2A surface reflectance data to monitor biological blooms and anomalies.

Table: satellite_observations
v1.2.5 Decoupled FastAPI + Next.js Stack Specification
Frontend
Next.js 16 (React 19)
API Services
FastAPI + Uvicorn
Data Layer
Neon PostgreSQL
Remote Ingest
Open-Meteo & STAC
PLATFORM OVERVIEW

Explore the Lake Twin Digital Twin System

Access the complete multi-lake metrics, 3D bathymetry Command Center, virtual jar testing lab, and full analysis module directory.

Open System Overview
DATA INGESTION

Primary Ingestion Feeds

ProviderScopeLicenseCitation & Catalog URL
Ontario GeoHub / Land Information OntarioReference for inland lake depth soundings. The platform builds 3D depth meshes only from user-uploaded sounding CSVs; lake volumes come from lake records (Otty: MNR 1975 via OLA 2007), not from these soundings.Open Government Licence - Ontario 1.0Ontario Ministry of Natural Resources and Forestry (MNRF). 'Bathymetry Index / Inland Lake Depth Soundings.' Land Information Ontario (LIO), Queen's Printer for Ontario.
Ontario Hydro Network (OHN v2.0)Reference hydrography for flow direction (inflows versus outlets such as Jebbs Creek to the Tay River). Not ingested; reach directions are set in the platform's watershed configuration.Open Government Licence - Ontario 1.0Ontario Ministry of Natural Resources and Forestry (MNRF). 'Ontario Hydro Network (OHN) - Watercourse.' Land Information Ontario (LIO), Queen's Printer for Ontario.
Ontario Hydro Network (OHN) - WaterbodyLake outlines for the eight pilot lakes (OHN waterbody polygons, simplified to about 50 m), stored with the platform's lake data and used to check that each lake's map point and Sentinel-2 sample point lie on the lake, and to keep only DataStream stations within 3 km of the lake.Open Government Licence - OntarioLand Information Ontario (LIO). 'Ontario Hydro Network (OHN) - Waterbody' (LIO open-data MapServer, layer 25). Contains information licensed under the Open Government Licence – Ontario.
Ontario Watershed Information Tool (OWIT) / OFAT IIICandidate source for sub-catchment delineation. Not used yet: the reach areas in the code (e.g. Burgess Bay 17 km², McLaren's Bay 8 km²) are unverified placeholders.Open Government Licence - Ontario 1.0Ontario Ministry of Natural Resources and Forestry (MNRF). 'Ontario Watershed Information Tool (OWIT) & OFAT III.' Queen's Printer for Ontario.
Rideau Valley Conservation Authority (RVCA) catchment reportsOtty Lake – Jebbs Creek catchment report: 2014 land cover (Section 4.1, Table 14) behind the registered Otty land-use shares, and the deep-point TP mean (Section 2.1.1, Table 3) behind the verified TP baseline. Report values, not a data feed.Report citation (RVCA website)Rideau Valley Conservation Authority (2017). 'Otty Lake – Jebbs Creek Catchment Report.' Tay River Subwatershed Reports.
Ontario Lake Partner Program (LPP)Cited through secondary reports (RVCA 2017, Table 3) as a benchmark for spring total phosphorus and Secchi depth. Raw LPP observations are harvested separately through DataStream (see the DataStream row).Open Government Licence - Ontario 1.0Ontario Ministry of the Environment, Conservation and Parks. 'Lake Partner Program Total Phosphorus and Secchi Depth Baselines.' Dorset Environmental Science Centre.
Copernicus Sentinel-2 (ESA)NDCI (chlorophyll proxy), NDTI = (B4 − B3)/(B4 + B3) (turbidity screening) and NDWI from the mean water reflectance in a 400 m window around one open-water point per pilot lake (Element84 Earth Search, Collection 1). Uncalibrated; one spot per lake, not a whole-lake average. Only non-synthetic stored observations are used.Copernicus Sentinel Data Terms of UseEuropean Space Agency (ESA). 'Copernicus Sentinel-2 MSI Level-2A Imagery.' Contains modified Copernicus Sentinel data 2026.
DataStream Initiative (datastream.org)Lake water quality (pH, total phosphorus, calcium, dissolved oxygen, water temperature, Secchi depth) from three DataStream datasets for Big Rideau, Scugog, Otty, Simcoe, Muskoka and Farren lakes; harvested weekly. Observed (field sample) data. Ontario Lake Partner Program station coordinates also set the Sentinel-2 sample points for Muskoka, Rice, Otty, Big Rideau and Wilcox lakes. Big Rideau Lake Association readings are collected through the Water Rangers community monitoring program.Per dataset: ODC-BY 1.0 (Lake Partner Program, Lake Blitz); ODC PDDL 1.0 (Big Rideau Lake Association)Government of Ontario, Ministry of the Environment, Conservation and Parks (MECP). 2026. "Ontario Lake Partner Program (LPP)" (dataset). 12.0.0. DataStream. https://doi.org/10.25976/fxsw-ym39. Living Lakes Canada National Lake Blitz volunteers. 2025. "Living Lakes Canada - National Lake Blitz" (dataset). 3.0.0. DataStream. https://doi.org/10.25976/07y1-x981. Big Rideau Lake Association. 2026. "Big Rideau Lake Association Water Testing" (dataset). 4.6.0. DataStream. https://doi.org/10.25976/6v2c-kw75.
Lake Simcoe Region Conservation Authority (LSRCA)Station coordinate only: the 'Lake Simcoe - Middle 66' monitoring station location sets the Sentinel-2 sample point for Lake Simcoe. No LSRCA observations are harvested.LSRCA Open Data Licence v1.0Lake Simcoe Region Conservation Authority (LSRCA). 2026. "Lake Simcoe Region Conservation Authority – Water Quality Data" (dataset). 7.2.0. DataStream. https://doi.org/10.25976/vdy6-zh72. Contains Information made available under Lake Simcoe Region Conservation Authority Open Data Licence v1.0.
OpenStreetMap contributorsFarren Lake extent (Nominatim lookup) used to place the Sentinel-2 sample point for Farren Lake; also the base map data behind the CARTO map tiles.Open Database License (ODbL) 1.0© OpenStreetMap contributors. Data available under the Open Database License.
Environment and Climate Change Canada (MSC GeoMet climate-daily)Observed daily temperature, precipitation and snow from ECCC climate stations, used by the access-restricted road-salt module. Downloaded on demand; no hourly weather harvester runs.ECCC Data Server End-use LicenceData Source: Environment and Climate Change Canada.
Open-Meteo Weather API7-day hourly precipitation, 2 m air temperature, wind and humidity per lake coordinates; forecast days 8–30 use unsourced monthly climatology placeholders.CC BY 4.0Zippenfenig, P. (2025). 'Open-Meteo Historical & Real-time Weather API.'
OpenWeatherMap API5-day rainfall forecast by city, used by the weather engine; no climatology is derived from it.CC BY-SA 4.0OpenWeather Ltd. 'Current weather and forecast API.'
USGS NWIS Water Data APIWater temperature, dissolved oxygen, pH and specific conductance for the US lakes via the US lakes harvester; nothing is written if the API fails.Public Domain (US Government Work)U.S. Geological Survey (USGS). 'National Water Information System (NWIS) Web Services.'
Water Quality Portal (WQP) APIDiscrete total phosphorus, calcium and alkalinity samples for the US lakes via the US lakes harvester.Public Domain / Open DataNational Water Quality Monitoring Council. 'Water Quality Portal API Gateway.' USGS, EPA, and USDA.
Developer Infrastructure & AI Services: Sentry SDK (application diagnostics & error tracing), Google Gemini API (field sampling inspection draft memos).
Operational diagnostics only, no environmental data
Interactive Inspector•Progressive Disclosure

Waterbody Data Sources & Parameters

What each lake's inputs are, where they come from, and their registry status (verified, derived, assumed or placeholder).

Otty Lake
Authority:Rideau Valley Conservation Authority (RVCA)

Data Sources (5)

Provenance Tier
Weather Forcing•Open-Meteo forecast API
Modeled (Simulation)

Days 1–7: forecast precipitation and 2 m air temperature at the lake coordinates. Days 8–30: unsourced monthly climatology placeholders (registry).

Provider: Open-Meteo (external numerical weather forecast)
Satellite Remote Sensing•Sentinel-2 L2A harvester (NDCI, NDTI)
Observed (Field Sample)

NDCI and NDTI = (B4 − B3)/(B4 + B3) per scene. Used only when a non-synthetic observation is stored; seeded rows are ignored. Turbidity from NDTI is an uncalibrated placeholder regression.

Provider: Copernicus Sentinel-2 via Earth Engine or STAC
Water Quality Baseline•RVCA (2017) Otty Lake – Jebbs Creek catchment report
Observed (Field Sample)

Deep-point mean TP 0.013 mg/L (Section 2.1.1, Table 3; owner-verified). The model uses the retained value 0.012 mg/L (OLA 2012–2017) until recalibration. Lake Partner Program means are cited in the same report and are not ingested.

Provider: Rideau Valley Conservation Authority (report, not an ingested feed)
Lake Morphometry•MNR (1975) Lake Survey, as reported in OLA (2007)
Observed (Field Sample)

Area 6.4 km², volume 56.41 × 10⁶ m³, maximum depth 27 m (verified); mean depth 8.8 m (derived: volume ÷ area).

Provider: Report values (owner-verified)
Tributaries & Runoff•Daily runoff model on delineated reaches
Modeled (Simulation)

Burgess Bay 17.0 km² and McLaren's Bay 8.0 km² inflows plus rain on the 6.4 km² lake; baseflow 0.16 + 0.08 m³/s (placeholders). Jebbs Creek outflow = same-day sum of inflows (no storage).

Provider: CR Digital Twin (models/landscape/watershed_routing.py)

Catchment Lineage & Parameters

Code & Registry
1. Drainage Areas

Inflow reaches 17.0 and 8.0 km² (code values, not registered); Jebbs Creek contributing area 31.1 km² shown for display only (unverified placeholder). Catchment 41 km² in the model; 49.2 km² (OLA 2007) is the assumed canonical value.

2. Flow Direction

Burgess Bay and McLaren's Bay are inflows; Jebbs Creek is the outlet to the Tay River and is excluded from inflow loading.

3. Land Cover Fractions

RVCA 2014 land cover (Table 14), open water removed: forest 47.2%, agriculture 15.3%, urban 9.5% ('derived'); wetland and meadow-thicket fall into the 28.0% residual class (assumption). Applied uniformly to every reach.

4. Runoff Coefficients (registry)

Runoff coefficient × (rain − initial abstraction) per land class: forest C 0.10 behind a 15 mm canopy store, agriculture C 0.45 (Ia 2 mm), urban C 0.70 (Ia 1 mm), residual C 0.15 (Ia 2 mm). All 'assumed' in the registry (legacy code values, not sourced).

5. Phosphorus Leaching & Wetland Retention (registry)

Land P = leaching rate × area × effective rain / 800 mm: agriculture 0.098 kg/ha/yr ('derived' — provincial pasture coefficient, Lakeshore Capacity Assessment Handbook), urban 1.2 (unverified placeholder), forest 0.05 ('assumed'), residual 0.05 (unverified placeholder). Wetland retention: Kadlec P-k-C* (k 10 m/yr, C* 0.010 mg/L, 'assumed'); wetland area 5% of catchment (placeholder).

6. Pathogen Decay & Status (registry)

E. coli decay k = 0.5 × 1.07^(T − 20) + 0.002 × solar (unverified placeholders); event mean concentrations by land class (placeholders); status compares the whole-lake mean with the Health Canada (2023) Beach Action Value, 235 cfu/100 mL.