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.
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.
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.
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.
No new sensors required to start.
Connect what you already collect
Satellite observations, open environmental monitoring feeds, and user-configured simulation scenarios are harmonized across lake basins.
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.
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.
Limnology Framework & Core Math
Project Charter & Science Documentation
A digital twin prototype for research on lake water-quality modelling. It runs screening simulations alongside sampling; it does not replace monitoring.
To model phosphorus precipitation (Hydroxyapatite formation), the engine calculates the Ion Activity Product (IAP):
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).
Automated cloud-based STAC harvesters compute multispectral indices for Chlorophyll-a and turbidity detection:
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:
Provides live precipitation intensity and air temperature parameters based on specific lake GPS boundaries.
Stores time-series volunteer water quality samples (Secchi depth, DO, pH) and historical weather normals.
Ingests Copernicus Sentinel-2 Level-2A surface reflectance data to monitor biological blooms and anomalies.
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.
Primary Ingestion Feeds
| Provider | Scope | License | Citation & Catalog URL |
|---|---|---|---|
| Ontario GeoHub / Land Information Ontario | Reference 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.0 | Ontario 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.0 | Ontario 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) - Waterbody | Lake 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 - Ontario | Land 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 III | Candidate 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.0 | Ontario 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 reports | Otty 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.0 | Ontario 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 Use | European 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.0 | Lake 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 contributors | Farren 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 Licence | Data Source: Environment and Climate Change Canada. |
| Open-Meteo Weather API | 7-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.0 | Zippenfenig, P. (2025). 'Open-Meteo Historical & Real-time Weather API.' |
| OpenWeatherMap API | 5-day rainfall forecast by city, used by the weather engine; no climatology is derived from it. | CC BY-SA 4.0 | OpenWeather Ltd. 'Current weather and forecast API.' |
| USGS NWIS Water Data API | Water 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) API | Discrete total phosphorus, calcium and alkalinity samples for the US lakes via the US lakes harvester. | Public Domain / Open Data | National Water Quality Monitoring Council. 'Water Quality Portal API Gateway.' USGS, EPA, and USDA. |
Waterbody Data Sources & Parameters
What each lake's inputs are, where they come from, and their registry status (verified, derived, assumed or placeholder).
Data Sources (5)
Provenance TierDays 1–7: forecast precipitation and 2 m air temperature at the lake coordinates. Days 8–30: unsourced monthly climatology placeholders (registry).
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.
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.
Area 6.4 km², volume 56.41 × 10⁶ m³, maximum depth 27 m (verified); mean depth 8.8 m (derived: volume ÷ area).
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).
Catchment Lineage & Parameters
Code & RegistryInflow 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.
Burgess Bay and McLaren's Bay are inflows; Jebbs Creek is the outlet to the Tay River and is excluded from inflow loading.
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.
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).
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).
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.