Inside the physics
The main model, our physics forecast (The models), is a small physics model written for this one spot, stepped through night and day in one run: a night half of the grass, the soil and the air above them cooling from sunset to sunrise, and a day half of the sun heating the ground and the mixed layer growing from sunrise to sunset. It is deliberately simple, with a few constants fitted to this station's own minute-by-minute record. This page opens it up: the equations, the constants, tonight's night half step by step, and knobs you can turn.
Tonight's runTurn the knobsWhich knobs matter tonight The night equationsThe day modelFitting and testing Back to Physics
The night of Thursday, October 29, rerun in your browser
This is the night run the station computer made at sunset that evening, from the station's reading then and the forecast inputs it had at that hour (the average of the ECMWF and ICON forecasts: cloud by layer, the 10 m wind, and the 925 mb temperature brought down to the station dry-adiabatically). The station's own night is drawn over it, so you can see where the physics went right or wrong, then turn the knobs to see what it would have taken. Turn the knobs and the charts follow.
Inputs move tonight's forecast inputs; constants move what was fitted. Nothing here changes the station's forecast. Constants that must stay positive move on a ratio scale (one quarter to four times).
Temperatures: the 2 m air, the grass surface (the model's "skin") and the dew point. The air aloft that the night layer mixes toward is drawn too, or noted at the top when it is far above the others. Once you turn a knob, the run as sent stays as a dotted gray line.
Energy budget: W/m² into the grass surface. At night the net longwave is negative (the ground radiating to the sky). The air, the soil and dew forming pay part of it back. The rest comes out of the heat stored in the skin, which is what cools it.
What cools the air: °F per hour for the 2 m air: heat exchanged with the surface below, mixing with the air aloft, and the change of the air mass aloft (advection). Their sum is the air's cooling rate.
Clouds and wind: cloud cover by layer (%) and the 10 m wind (mph), as the models forecast them, with any knob applied.
Which knobs matter tonight
Each knob nudged on its own, everything else as sent. The bars show how far tonight's low moves. Tonight's weather decides the order: on a clear calm night the sky and the decoupling wind lead, under cloud the cloud factors and soil.
| Knob | Nudge | Low moves |
|---|
The night half's equations
Time steps of \(\Delta t = 300\) s from sunset (or the latest reading) to sunrise. Three prognostic variables: the surface skin temperature \(T_s\), the 2 m air temperature \(T_a\) and its specific humidity \(q_a\). The deep soil temperature \(T_d\) is held at the 4 and 8 inch probes' reading.
Sky and clouds. Clear-sky emissivity in Brutsaert's form, with cloud filling the gap toward a black body:
Turbulent exchange with stability. The 10 m wind is brought to 2 m with a log profile (\(z_0 = 3\) cm) and floored at \(u_{min}\), the decoupling wind. A bulk Richardson number cuts the exchange as the inversion strengthens (a Louis-type function):
The skin has an effective heat capacity \(C_s\) (grass, thatch and the top of the soil), stepped implicitly with the budget linearized in \(T_s\):
The air is one layer of effective depth \(z_e\). It exchanges heat with the skin, relaxes toward the air aloft \(T_{ref}\) (the 925 mb temperature brought down at \(\Gamma_d = 9.8\) K/km) at a rate that also falls with stability, and takes a share \(\beta\) of any change in the air mass aloft:
where \(q_{mod}\) is the models' own 2 m humidity, so the air can dry or moisten with the air mass. The skin starts \(\Delta T_{s0}\) below the air at sunset unless the grass probe gives it. In the main model the half in progress is reset to the station's latest reading at each hourly issue, with the station's departure fading over about three hours; treatments change one term of these equations at a time (what each changes).
| Symbol | In the code | What it is | Value | Units |
|---|
The day model
From sunrise to sunset. The sun heats the ground, a share of that heat goes into the air, and the air near the ground is the bottom of a mixed layer that grows into the morning's temperature profile (the 925, 850 and 700 mb levels, with a shallow surface inversion of depth \(z_{inv}\)).
\(S^{\downarrow}\) is the models' forecast sunshine, scaled to this station's solar sensor. The share of the net radiation that heats the air depends on the evaporative fraction, which follows the topsoil moisture and the crop calendar (green corn and beans evaporate most in July):
The heat added since sunrise, increased by a share \(A\) for entrainment, deepens the mixed layer to the height \(h\) where it fills the area between the profile and a dry adiabat:
The third term is the superadiabatic surface layer, stronger in light wind. The last is the evening cooling once \(R_n\) turns negative. Advection is each level's change since sunrise after its usual daily cycle is removed: \(0.71\,\Delta T'_{925} + 0.02\,\Delta T'_{850} + 0.14\,\Delta T'_{2m}\).
Thursday, October 29's run from the station's sunrise reading (55.9°F at 8:09 AM): the 2 m air against the station, the mixed layer's depth (right scale, feet) and the sensible heat flux. Physics high 75.5°F; the global models' own 2 m high 75.1°F; the mixed layer reached 2,704 ft; the station's high 79.2°F.
The day as a forecast sounding
Temperature against height above the station: the morning profile the run starts with (dashed: the 925, 850 and 700 mb forecast, with the surface inversion), then the mixed layer every two hours. Each colored line is the air the sun has mixed into a dry adiabat, from the ground up to where it meets the morning profile. That meeting point is the top of the mixed layer, and how high it climbs sets how warm the afternoon gets.
| Symbol | What it is | Value |
|---|---|---|
| \(\alpha\) | Albedo of the field (0.63 under snow) | 0.20 |
| \(L_0\) | Net longwave loss under a clear sky, W/m² | 48.0 |
| \(g\) | Share of the net radiation going into the ground | 0.15 |
| \(e_a,\ e_b\) | Evaporative fraction at 0.30 soil moisture, and its change per unit of soil moisture | 0.77, 0.39 |
| \(e_c,\ e_s\), second harmonic | The crop calendar: the season's swing in evaporation and its spring and fall lean | 0.063, -0.021, 0.035, 0.006 |
| \(A\) | Entrainment at the top of the mixed layer | 0.20 |
| \(z_{inv}\) | Depth of the morning surface inversion, m | 220 |
| \(s_x,\ w\) | Superadiabatic excess at the surface, °C, and its wind exponent | 4.65, 0.20 |
| \(c_{night},\ z_{eve}\) | Evening: share of the radiative loss taken from the air, and the depth it is spread over, m | 0.30, 53.9 |
| Offset | The real-forecast offset (L-020), °F, full through the warm part of the day | +0.84 |
How the constants were fitted, and how the models have done
Fitting. The night constants were fitted on 474 dry nights from March 2024 to September 2025 (the "discovery" months), sunset to sunrise in 5-minute steps against the station's minute record. The loss was the mean squared error of the whole cooling curve plus the squared error of the night's low. The minimizer was Nelder-Mead, with the always-positive constants fitted on a log scale. Inputs for learning were the models' first forecast hours (near-analysis quality). The test year and the newest months were never seen in the fit. The day model was fitted the same way on dry days with Powell's method within physical bounds.
Testing. Every change is written down as a lab test with its plan and pass bar before any scored day, then judged on days the fit never saw, using the forecasts as they were actually issued (not near-analysis inputs).
| Test | What was tested | Result |
|---|---|---|
| L-007 | Night low: physics alone, and the rule "ours + 0.25 × (physics − ours)", on 149 test-year nights with real forecast inputs | Passed. Mean miss: ours 1.52°F, physics alone 1.80°F, the rule 1.38°F (a gain of 0.14°F, 95% interval 0.05 to 0.23). The rule is live. |
| L-009 | Day high from the day physics with forecast clouds | Failed. Physics alone 2.08°F against ours 1.46°F on 135 days: forecast clouds were the weak input, worst on cloudier days. |
| L-020 | The crop calendar in the evaporative fraction, and the real-forecast offset | Passed. 1.59°F against 1.79°F for the earlier day model on 78 days (ours 1.71°F). |
| L-010 | Day high: the rule "ours + 0.30 + 0.54 × (physics − ours)", fresh days from October 19, 2026 | Closed October 22, 2026 without a verdict: the blend belongs to the structure the main model replaced. |
| L-026 | Night version 1G against version 1 | Running; to be converted into single-change treatments of the main model. |
| L-032 | The physics' own chained forecast for days 1 and 2, uncorrected | Closed October 22, 2026; its question continues as L-038, the main model with its calibration. |
| L-038 | The main model: the physics forecast, corrected with the station's record, beside ours at the same cut-offs | Pre-registered; first forecast of record November 1, 2026; judged in May 2027. Treatments L-039 to L-042 beside it. |
The live record of every night and day run is on the Physics page. The full research thread, including what did not work, is in the lab notebook.