Weather

Parameters

Wind calm mean speed

8

Average daily wind on a normal map (classic and large). A light breeze that stays below WIND_FIRE_CALM_SPEED, so it never affects fire — wind is present everywhere, but only Velaria’s is strong enough to bite.

Source: NOAA NCEI — Comparative Climatic Data, Average Wind Speed at US cities

Wind calm speed sd

4

Day-to-day spread of the daily mean wind on a normal map. With the cap at WIND_FIRE_CALM_SPEED, calm maps drift between still air and a gentle breeze and never cross the line where wind drives fire.

⚠️ Source pending

Wind windy mean speed

24

Average daily wind speed on the windy river map (Velaria). Set just above the long-run means of the windiest major US cities (Dodge City ~13.9 mph ≈ 22 km/h, Amarillo ~13.5 mph) so the map reads as genuinely, dangerously breezy rather than merely above-average. It is ~3x the calm-map mean and, unlike it, sits above the fire threshold.

Source: NOAA NCEI — Comparative Climatic Data, Average Wind Speed at US cities

Wind windy speed sd

9

Day-to-day spread (standard deviation) of the daily mean wind around WIND_WINDY_MEAN_SPEED. At ~9 km/h the map sees calm-ish days back down near a light breeze (~12 km/h) and gusty, gale-leaning days past 40 km/h — the wide day-to-day swing real daily wind records show. This is the long-run spread; wind.ts shrinks the per-day random kick to account for the persistence below so the realized spread still lands here.

Source: NOAA NCEI — Comparative Climatic Data, Average Wind Speed at US cities

Wind windy max speed

60

Upper clamp on the windy map’s daily wind so the random walk stays realistic (a strong gale, not a hurricane). The fire multiplier is separately capped by WIND_FIRE_MAX_MULTIPLIER, which binds first — speeds past ~48 km/h already sit at the ceiling — so this mostly just keeps a displayed wind speed sane.

⚠️ Source pending

Wind daily persistence

0.7

How strongly one day’s wind carries into the next — the lag-1 autocorrelation of daily mean wind speed. Real daily wind series are strongly autocorrelated (windy days cluster), so the model is an AR(1) process: each day reverts toward the regime mean but keeps ~70% of yesterday’s departure from it. This is what makes the wind evolve from the previous value instead of jumping around as white noise.

Source: Generation of autocorrelated wind speeds for wind energy conversion system studies (Solar Energy, 1984)

Wind fire calm speed

12

Wind at or below which there is no effect on fire (the multiplier is 1), and the speed a normal map’s wind is capped at. ~12 km/h is the top of a Beaufort ‘light breeze’; below a gentle breeze the wind doesn’t measurably push a fire front, and the empirical ‘forward rate of spread ≈ 10% of wind speed’ rule only takes over once wind is actually driving the fire.

Source: Cruz & Alexander (2019) — The 10% wind speed rule of thumb for a wildfire’s forward rate of spread; Beaufort scale

Wind fire spread doubling speed

18

Extra wind (above WIND_FIRE_CALM_SPEED) that DOUBLES a fire’s chance to start and to spread. McArthur’s forest fire-danger meter roughly doubles fire danger / rate of spread for every ~18-20 km/h of added wind, so the multiplier is 2^((wind - WIND_FIRE_CALM_SPEED) / 18): ~1.6x at the windy map’s 24 km/h average, ~2.9x on a 40 km/h gusty day.

Source: Noble, Bary & Gill (1980) — McArthur’s fire-danger meters expressed as equations

Wind fire max multiplier

4

Hard ceiling on the wind fire multiplier. Past roughly gale force the real rate of spread stops rising and can even fall — the flame is bent flat and the front disrupted (McArthur’s data rolls over near 11 m/s ≈ 40 km/h), and very strong winds also suppress new ignitions. Capping at 4x keeps a windy day dangerous without spawning a runaway firestorm when a rare gust stacks on top of a heatwave.

Source: USDA Forest Service — Exploring fire response to high wind speeds: rate of spread and ignition

Temp annual mean high

21.2

The regional daily HIGH averaged over the whole year, before any seasonal swing. The city’s own heat island is measured as a departure from this regional baseline, never added into it — the countryside outside the map is what this number describes.

Source: AEMET — Standard climate values for Barcelona Airport (1991–2020 normals)

Temp annual mean low

13.4

The regional overnight LOW averaged over the whole year. The gap to TEMP_ANNUAL_MEAN_HIGH (~7.8 °C) is the diurnal range a coastal climate has — narrower than an inland one, because the sea gives back at night what it soaked up by day.

Source: AEMET — Standard climate values for Barcelona Airport (1991–2020 normals)

Temp seasonal swing

7

Half the distance between the coldest and warmest months, i.e. the amplitude of the seasonal sine. Barcelona runs from a ~14.8 °C January high to a ~28.6 °C August high, a 13.8 °C spread, so the amplitude is ~6.9. Applied to the high and the low alike, which is why summer nights get hot on their own before the city adds anything.

Source: AEMET — Standard climate values for Barcelona Airport (1991–2020 normals)

Temp warmest day of year

213

Where the seasonal sine peaks — August 1st. Not the solstice: the ground and the sea keep absorbing more than they release for weeks after the longest day, so the warmest part of the year lags it by about six weeks. Putting the peak here is what makes August, not June, the month a dense city suffers.

Source: NOAA SciJinks — Why is the hottest day of the year not in June?

Temp daily persistence

0.75

How much of today’s departure from the seasonal normal carries into tomorrow — the lag-1 autocorrelation of the daily temperature anomaly. Real daily anomalies are strongly autocorrelated because they are driven by air masses that sit over a place for days, so warm spells arrive as spells. Slightly stickier than the wind’s 0.7 for the same reason a heatwave outlasts a windy afternoon.

Source: NOAA Physical Sciences Laboratory — persistence and autocorrelation of daily surface temperature anomalies

Temp daily anomaly sd

3

Long-run day-to-day spread of the anomaly around the seasonal normal. At 3 °C an ordinary week wanders a few degrees either side of normal and a genuinely unusual day sits 6 °C out, which is about right for a coastal climate — maritime air damps the swings an inland plain would have. As with the wind, the per-day random kick is shrunk to account for the persistence above so the REALISED spread still lands here.

⚠️ Source pending

Temp heatwave offset

7

How far the heatwave incident lifts BOTH the day’s high and its low above the seasonal normal. Real heatwaves are declared on roughly this kind of departure, and lifting the low matters more than lifting the high: a heatwave kills through the nights that never cool down, and this is what pushes a dense city’s low past the warm-night line for days on end. The incident’s existing 5x fire multiplier is NOT touched — it already prices the fire risk, and adding a second temperature-driven one would charge the player twice for one heatwave.

Source: US EPA — Climate Change Indicators: Heat Waves