# Zambretti Forecaster

The Zambretti Forecaster is a weather forecasting tool in the form of a circular slide rule introduced in 1920.  It claims to accurately predict near-term weather based on barometric pressure, the trend in the pressure (rising, steady, or falling), and wind direction. It relies on the fundamental meteorology of pressure fronts. Watch any TV weather forecast and you will see high- and low-pressure areas prominently displayed on the map. The boundaries between pressure areas are strongly associated with wind and precipitation. Additionally, high-pressure is usually associated with fair weather while low-pressure is associated with cloudy, rainy, or snowy weather.

The are many interesting things about the Zambretti Forecaster. First, there was no Mr. or Ms. Zambretti, rather, it was a trade name used by Negretti and Zambra, a famous London instrument-making company from the mid-19th Century through 1999. Second, there was a modern reproduction on sale in the mid-aughts of the 21st Century though it does not appear to be currently available.

Kevin Scott, Ph. D. has reverse-engineered the modern reproduction in very fine work reported at http://integritext.net/DrKFS/zambretti.htm. He derived an algorithm that is easily implemented in computer code.

Since the D1M-WX1 weather stations accurately monitor barometric pressure, it is easy to apply the Zambretti Forecaster technique to a ThingSpeak channel. My adaptation of Dr.  Scott’s algorithm is provided below as a snippet for a MatLab visualization. To see this in action, open https://thingspeak.com/channels/286120. The Zambretti Forecast is at the bottom of the Current Values display.

Next steps:

1.  Consider including the rate of barometric change in the forecast.
2. Track the Zambretti Forecast against weather service predictions.
3. Publish a pdf with instructions for making your own Zambretti Forecaster.

#### MATLAB code snippet:

```%{
Zambretti Forecaster by
Karl W. Berger
08 October 2018
based on work by Dr. Kevin F. Scott
https://integritext.net/DrKFS/zambretti.htm
curSLP is the current Sea Level Pressure in millibars or hPa
baroTrend is an index of the change in SLP over three hours:
mb    Indication            baroTrend
>  6.0 Rising Very Rapidly   4
>  3.6 Rising Quickly        3
>  1.6 Rising                2
>  0.1 Rising Slowly         1
> -1.6 Falling Slowly       -1
> -3.6 Falling              -2
> -6.0 Falling Quickly      -3
<=-6.0 Falling Very Rapidly -4
}%

risingIndex = 1;         % set to baroTrend index for
fallingIndex = -1;       % determination of rising or falling
zambretti = "Forecast";  % forces 'zambretti' to be a string
if baroTrend <= fallingIndex  %% FALLING %%
if curSLP > 1045
zambretti = "A: Settled Weather";
elseif curSLP > 1032
zambretti = "B: Fine Weather";
elseif curSLP > 1020
zambretti = "D: Fine, Becoming Less Settled";
elseif curSLP > 1014
zambretti = "H: Fairly Fine, Showers Later";
elseif curSLP > 1006
zambretti = "O: Showery, Becoming More Unsettled";
elseif curSLP > 1000
zambretti = "R: Unsettled, Rain Later";
elseif curSLP > 993
zambretti = "U: Rain At Time, Worse Later";
elseif curSLP > 987
zambretti = "V: Rain At Times, Becomng Very Unsettled";
else
zambretti = "X: Very Unsettled";
end
elseif baroTrend >= risingIndex  %% RISING %%
if curSLP > 1025
zambretti = "A: Settled Weather";
elseif curSLP > 1016
zambretti = "B: Fine Weather";
elseif curSLP > 1009
zambretti = "C: Becoming Fine";
elseif curSLP > 1003
zambretti = "F: Fairly Fine, Improving";
elseif curSLP > 997
zambretti = "G: Fairly Fine, Possible Showwers Early";
elseif curSLP > 992
zambretti = "I: Showers Early, Improving";
elseif curSLP > 986
zambretti = "J: Changeable, Mending";
elseif curSLP > 980
zambretti = "L: Rather Unsettled, Clearing Later";
elseif curSLP > 973
zambretti = "M: Unsettled, Probably Improving";
elseif curSLP > 967
zambretti = "Q: Unsettled, Short Fine Intervals";
elseif curSLP > 961
zambretti = "T: Very Unsettled, Finer At Times";
elseif curSLP > 953
zambretti = "Y: Stormy, Possibly Improving";
else
zambretti = "Z: Stormy, Much Rain";
end
if curSLP > 1028
zambretti = "A: Settled Weather";
elseif curSLP > 1017
zambretti = "B: Fine Weather";
elseif curSLP > 1011
zambretti = "E: Fine, Possible Showers";
elseif curSLP > 1003
zambretti = "K: Fairly Fine, Showers Likely";
elseif curSLP > 996
zambretti = "N: Showery, Bright Intervals";
elseif curSLP > 991
zambretti = "P: Changeable, Some Rain";
elseif curSLP > 984
zambretti = "S: Unsettled, Rain At Times";
elseif curSLP > 978
zambretti = "W: Rain At Frequent Intervals";
elseif curSLP > 966
zambretti = "X: Very Unsettled, Rain";
else
zambretti = "Z: Stormy, Much Rain";
end
end
%% End of Zambretti snippet %%```