CastScience

Science Info and Calculations

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:

Clarity index
C=min⁡(3, ∑hUh−155⋅112⋅0.5 ah/24  +  P)C = \min\left(3,\ \sum_{h} \frac{U_h - 15}{5} \cdot \frac{1}{12} \cdot 0.5^{\,a_h / 24} \; + \; P\right)

UhU_h: over-water wind in hour hh, mph; aha_h: hours ago; P=0.5P = 0.5 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 (25−15)/5/12=0.167(25 - 15) / 5 / 12 = 0.167 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).

Clarity index (0 clear to 3 muddy)2.84
Classmuddy
Lure colorsstained-water colors

Engine basis: wind stirring 2.84 from the last 48 h (starting value).

Constants

ConstantValueIn the codeBasis
Stirring wind15 mphSTIR_WIND_MPHStarting value
Fetch needed10 kmSTIR_FETCH_KMStarting value
Stirring scale5 mph for 12 h adds 1STIR_MPH_PER_UNIT, STIR_HOURS_PER_UNITStarting value
Half-life24 hSTIR_HALF_LIFE_HStarting value
Look-back48 hSTIR_LOOKBACK_HStarting value
River plume+0.5PLUME_CONSTANTStarting value: constant until river gauges (Phase 2)
Index cap3CLARITY_INDEX_MAXScale 0 clear to 3 muddy (SPEC 5.7)
Visibility limits3 and 8 ftVISIBILITY_MUDDY_FT, VISIBILITY_CLEAR_FTSPEC 5.7
Class limits1 and 2.5CLEAR_BELOW_INDEX, MUDDY_ABOVE_INDEXStarting 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.