Ground fog creates an ethereal, otherworldly atmosphere - a thin blanket hugging the surface while everything above stays clear. It forms when humidity is very high (90%+), wind is nearly calm, and the air temperature drops close to the dew point. These conditions are most common in autumn and early winter during the pre-dawn hours.
Inverza watches for the triple convergence of high humidity, low wind speed, and a minimal temperature-dew point gap. Calmer winds and tighter temperature gaps score higher, as they indicate denser, more stable fog formation. This classic radiation fog path remains the byte-for-byte default whenever no body of water is nearby.
Near coastlines, lakes, and large rivers, two additional fog physics come into play. Coastal advection fog forms when warm, humid air flows over a cooler sea - the air-vs-SST gap matters more than absolute temperature. Inverza pulls real sea-surface temperature from the Open-Meteo Marine API and triggers the advection branch when the air is 2-10 °C warmer than the sea, wind is 4-30 km/h, and the wind direction is onshore (within ±60° of the water-to-observer bearing). This is the fog you see along the UK coast, San Francisco Bay, and the Pacific Northwest in summer. Steam fog (evaporation fog) is the opposite story: cold, dry air over a warmer lake or river produces visible vapour ribbons rising off the surface. Inverza estimates inland water temperature as a 3-day trailing mean of recent air temperature and triggers steam fog when water is 4-12 °C warmer than the air and wind is below 6 km/h - the calm autumn-morning effect over alpine lakes.
All three pathways still get the METAR cross-check: if the nearest airport is currently reporting fog, mist, or BR/FG groups, the detection is promoted to the Live confidence tier. The water-body lookup is fail-silent - if Open-Meteo Marine, the OSM Overpass query, or the air-temperature history fails for any reason, Ground Fog quietly reverts to the radiation-only path and you still get the classic forecast unchanged.