The Surface Currents

The water at the surface of the whole lake, every hour for a week, as a model moves it: the wind over the lake pushes the surface downwind, piles water against the downwind shore, and the lake tilts and slides back under it; the thermocline, pushed down at the downwind end, swings back over days and moves the whole upper layer with it. Hue is the water temperature, brightness the speed, and the ripple along each streak runs the way the water is going. The drawing shows the surface, the top metre where the wind drifts it; or the whole column, the current averaged from surface to bottom, which is mostly the wind's and runs either way; or the flow through the lake, the month's drainage on its own, entering at the river mouths and leaving north at the Richelieu, in gallons. The period shown is …; the record runs from …, and the period slider picks any part of it. One buoy and two gauges measure some of this and are laid beside the model further down.

loading…
Period
…
Drawn
Size
Water temperature
——
Brightness is speed
0—
Wind from …. Temperature pulled toward the Valcour buoy's reading on a three-day time scale. Internal seiche: …. Hover the lake for the modeled current and temperature at a point. Last extended ….
—fastest surface water in this period
—drainage through the lake this month, the month’s mean, 1938–2025
—surface temperature, coldest to warmest cell

Where the model can be checked

Two instruments on the lake measure something this model computes. The Valcour buoy, run by the Lake Champlain Research Institute at SUNY Plattsburgh, measures the current with an acoustic profiler and the temperature with a thermistor chain; the USGS gauges at Burlington and Rouses Point measure the lake's surface, and their difference is the tilt the wind puts on it. Each chart is the period shown above, measured in gold and modeled in blue.

Current at the Valcour buoy

The profiler's 2.5 m bin against the model's surface current at the buoy's cell ( of water): the depth-averaged current, the wind drift and the two-layer model's upper-layer current added together. The buoy's 7.5 m bin runs about as fast as its 2.5 m bin, so what it measures is the upper layer moving as a whole.

Surface temperature at the Valcour buoy

The thermistor at 1 m against the model's slab at the same cell. The model's whole field is pulled toward this reading on a three-day time scale, so the two lines cannot part for long; what the model does from hour to hour, and everywhere else on the lake, is its own heat budget.

Tilt, Burlington minus Rouses Point

The two gauges' difference, and the model's surface at the cells nearest them, each with its own weekly mean removed. Positive is higher at Burlington. The seiche page follows this tilt back to 2007.

How the model works

The grid
The lake is cut into cells 254 m square, 17,668 of them, from the shoreline and the ten-foot depth contours this site draws elsewhere. The causeways at Colchester and the Sand Bar, the drawbridge at the Gut and the bridge at Carry Bay are closed walls, their openings being narrower than a cell; the one exception is the Cut in the Colchester causeway, two hundred feet wide, through which the Lamoille's water leaves Malletts Bay. So Malletts Bay runs its own circulation and the Inland Sea exchanges with the main lake only past the north end of North Hero.
The water
Depth-averaged shallow-water equations, stepped every four seconds: the wind's stress on the surface, the slope of the surface pushing back, the Coriolis force, quadratic friction on the bottom and a small lateral viscosity. The result is the current averaged from surface to bottom in each cell, with the surface tilt and the seiche that follows it.
The drainage
The month's mean outflow at Fryers Rapids on the Richelieu, from the 1938–2025 record the water-budget page uses, enters the model at the mouths of the eighteen gauged rivers, each river's share set by its drainage area, and leaves at Rouses Point. It is the flow through the lake in the plain sense, and it is slow: about a centimetre and a half a second up the South Lake, several at the outlet, and a few hundredths in the main lake, where the wind's currents are a hundred times larger and hide it. The THROUGH THE LAKE view draws that drainage by itself, run with no wind until it settles, with brightness on a log scale so the main lake's slow northward drift shows beside the South Lake's; hover it for the net flow north past any latitude.
The surface
The current drawn is that depth-averaged current plus a wind drift of two per cent of the wind speed at ten metres, turned ten degrees to the right; two to three per cent is the usual figure for the top metre of open water. The two per cent is the one number in the model chosen rather than computed, and the Valcour chart above is where it is tested.
The internal seiche
The thermocline's own motion moves the whole upper layer, and off Valcour that current is as large as everything above put together. It comes from the one-dimensional two-layer model this site runs for the seiche page, the same run, wind and parameters: its upper-layer current at each latitude is laid on every main-lake cell at that latitude, pointing north or south along the lake, and Malletts Bay and the Inland Sea get their own along their own axes. It runs while the Valcour buoy is reporting, which is where its wind and its thermocline come from; the figure's note states whether it ran.
The temperature
Each cell is a slab of water as deep as the mixed layer or the bottom, whichever is shallower, so a bay ten feet deep warms and cools several times faster than the main lake. The slab takes the sun, radiates to the sky, and exchanges heat and vapour with the air by the usual bulk formulas; it is carried by the surface current and smoothed a little. The mixed-layer depth comes from the Valcour thermistor chain while the buoy is out and from the calendar when it is not. The record began from a flat field at the buoy's temperature with thirty days of weather run through it before the first day kept, and has run on continuously since; the whole field is pulled toward the buoy's surface reading on a three-day time scale, so the one measured point keeps the level honest while the differences between places are the model's own.
The wind
Hourly wind at ten metres, air temperature, humidity, sunshine, cloud and pressure from NOAA's HRRR model, the 3 km forecast that is rerun every hour, at 45 points over the lake, by way of Open-Meteo's archive of past forecasts. When that cannot be fetched the run uses the Burlington and Plattsburgh airport records this site already keeps, raised by a quarter for the open water, and the buoy's own weather, and the figure's note names which it got.
Every day
The daily data run fetches the newest weather, picks the lake up where the last run left it and steps it forward to the present hour, writing each completed day as one sheet of 24 tiles, three bytes a cell, and keeping every day since the record began. The period slider above reads any stretch of that record.

Weather: NOAA HRRR via Open-Meteo, or the ASOS records at KBTV and KPBG via the Iowa Environmental Mesonet. Current and temperature at Valcour: the Lake Champlain Research Institute, SUNY Plattsburgh. Lake level: USGS National Water Information System, gauges 04294500 (Burlington) and 04295000 (Rouses Point). Depth and shoreline: the contours and hydrography described on the sources page. The drawing is line integral convolution (Cabral and Leedom, 1993) in WebGL. Model and page: pipeline/currents.py and assets/currents.js in this site's repository.