Water clarity
How the app estimates water clarity at each area, and how clarity picks lure colors.
In plain words
Waves stir fine sediment off the bottom in shallow water, and the water turns stained or muddy. When the wind drops the particles settle again over a day or two. Rivers add their own sediment, most after rain: the Clinton River near area US2 and the Thames River near CA3.
The app keeps a clarity index for each area, from 0 (clear) to 3 (muddy). It uses the index to choose lure colors (clear-water or stained-water colors from the lure table) and to match lures to the water, and on days before and during a front it keeps the clarity factor of the score at 0.5 or more, for vibration baits (Scoring). For scale: Michigan DNR measured a mean Secchi depth of 1.95 m (6.4 ft) in Lake St. Clair in 2002-2006 (Thomas and Haas, 2012; SPEC 17).
The index
Wind stirring: for each of the last 48 hours with over-water wind of 15 mph or more, from a direction with at least 10 km of open water upwind of the area, add the excess wind over 5 mph, divided by 12, halved for every 24 hours since:
: over-water wind in hour , mph; : hours ago; for the river plume areas until river gauges arrive (Phase 2), otherwise 0. So 12 hours of wind 5 mph over the threshold add 1 to the index, one class darker, and a blow that ended 24 hours ago counts half.
Example (the engine's test case): 24 hours of 25 mph wind across a long fetch that just ended. Each hour adds before decay; the sum is 2.84, muddy. A day later the same blow counts 1.42.
A visibility reading entered on the water replaces the model: over 8 ft gives 0, 3-8 ft gives 2, under 3 ft gives 3. Classes: clear below 1, stained from 1 to 2.5, muddy above 2.5.
Every constant here is a Starting value: to calibrate against visibility readings in logbooks.
Source: SPEC 5.7. Engine: clarityIndex, clarityClass in packages/engine/src/clarity.ts.
Calculator
Clarity after a blow
Runs the app's engine in this browser: clarityIndex, clarityClass (packages/engine/src/clarity.ts).
Engine basis: wind stirring 2.84 from the last 48 h (starting value).
Constants
| Constant | Value | In the code | Basis |
|---|---|---|---|
| Stirring wind | 15 mph | STIR_WIND_MPH | Starting value |
| Fetch needed | 10 km | STIR_FETCH_KM | Starting value |
| Stirring scale | 5 mph for 12 h adds 1 | STIR_MPH_PER_UNIT, STIR_HOURS_PER_UNIT | Starting value |
| Half-life | 24 h | STIR_HALF_LIFE_H | Starting value |
| Look-back | 48 h | STIR_LOOKBACK_H | Starting value |
| River plume | +0.5 | PLUME_CONSTANT | Starting value: constant until river gauges (Phase 2) |
| Index cap | 3 | CLARITY_INDEX_MAX | Scale 0 clear to 3 muddy (SPEC 5.7) |
| Visibility limits | 3 and 8 ft | VISIBILITY_MUDDY_FT, VISIBILITY_CLEAR_FT | SPEC 5.7 |
| Class limits | 1 and 2.5 | CLEAR_BELOW_INDEX, MUDDY_ABOVE_INDEX | Starting value |
Constants are in packages/engine/src/clarity.ts.
Sources
- Thomas, M.V. and Haas, R.C. (2012). Status of Lake St. Clair Submerged Plants, Fish Community, and Sport Fishery. Michigan DNR Fisheries Research Report 2099.
- Lure colors by clarity: the lure table (Data and sources) and the trip analysis, section 5.
- Links: References.