Micro-Climate Forecasting: Rain & Wind
A weather station on our office window in Istanbul, and wind and rain forecasts for that one spot for the next 24 hours.
Overview
In November 2026 we put a small weather station on the window of our office in Istanbul and connected it to our own server. The aim is to forecast wind and rain for this one spot, rather than for the several-kilometre grid cell a weather service covers. Every hour the server makes new forecasts with several models, and each forecast is kept so it can be checked against what the station measures once the hour has passed. This page shows the readings, the latest forecast and how often each model has been right so far.
Current conditions
Forecast for the next 24 hours
The solid line is the expected wind, the dashed line the gusts and the bars the chance of rain in each hour. The table gives the same forecast hour by hour. It shows the Online blend by default; the buttons switch to a single model.
no forecast yet
How often the forecasts are right
Every forecast is stored when it is made and compared with the station's measurement once its hour is over. A wind forecast counts as correct when it is within 1 m/s of the measured hourly mean, a gust forecast within 2 m/s, and a rain forecast when it called rain or no rain correctly. Our target is 85 to 90 % for every model at every horizon: green is on target, amber close, red below.
No checked forecasts yet.
Forecasts against measurements
Each coloured line shows what a model forecast for each hour, made 1, 6 or 24 hours before. The white line is what the station then measured. The closer a line follows the white one, the better that model did.
No checked forecasts in this period yet.
Latest forecast from each model
Every model's latest forecast side by side. Left of the dashed line is the past day's measurement, right of it the forecast. Where the lines agree, the forecast is more certain.
Measured data
How the Online blend weighs the models
The Online blend gives each model a share based on how close it has been over the last days, separately for each horizon. A model that has been far off, like the raw weather service at this sheltered spot, ends up with almost no say.
No record yet.
Testing before going live
Before the LightGBM models went live we tested them on the last six months of the nearby stations' data, which they had not seen in training. The bars show how much smaller their error was than assuming nothing changes.
How the forecasts are made
Single models use only the station's own measurements: the last hours of wind, gust and rain, the pressure trend and the time of day. We run LightGBM (gradient-boosted decision trees) and SARIMA (a classical time-series model with a daily cycle). They are good for the next hour or two but cannot see weather that has not arrived yet.
Hybrid models start from the weather-service forecast (the mean of three global models from Open-Meteo) and learn how this spot differs from it, for example that the building cuts the wind to a fraction. We run LightGBM with the forecast as an extra input, and SARIMAX. They are usually the best from 6 to 24 hours ahead.
Online models update after every hour instead of once a day. The River model learns from each new measurement as it arrives, and the Online blend mixes all the forecasts above, plus the Weather.com daily forecast, giving more weight to whichever has been closest lately.
Both LightGBM models were first trained on 11 years of data from 13 nearby Weather Underground stations, so they could forecast from the first day. Once the station has a week of its own data, they are fine-tuned on it every night.
Station and data path
The station runs on an ESP32 with a cup anemometer, a wind vane, a tipping-bucket rain gauge and a BME280 sensor for temperature, humidity and pressure. It signs each reading with a secret key and sends it over USB to a Raspberry Pi, which forwards it to our server on AWS. The server stores the readings in PostgreSQL, downloads weather-service forecasts every hour and runs the models.
Known limitations
For now the station sits on the office window, which limits what it can measure. The building shelters the anemometer, so wind and gusts read far below open-air values; the temperature sensor heats up in direct sun; and the rain gauge has missed rain that nearby stations recorded. The models learn what the station measures, so their scores describe this spot as it is. Moving the sensors onto a mast, with a radiation shield for the temperature sensor, would fix most of this.