The India Meteorological Department publishes a forecast chart for every one of its weather stations, every day, as a picture. Aman Bhargava reads the pictures.
The source material is a meteogram: a ten-day forecast in three-hour steps, stacked into panels for temperature, humidity, pressure, wind, cloud and rain, published as a graphic for each of roughly 1,200 stations. It is designed for a human to glance at. It is not a dataset, and there is no API behind it that gives you the same numbers.
So the extraction is done on the image itself, and this is the part that makes it a piece of work rather than a chart. The cloud panel is a stacked histogram in three altitude bands. The code samples 80 evenly spaced intervals across the timeline and measures the height of the white shading in each band to recover a percentage: low cumulus at 0–2 km, mid altocumulus at 2–7 km, high cirrus above 7 km, with overall cloudiness taken as the highest of the three. Those readings are then checked against IMD’s own numeric forecasts, which is the step that turns a clever hack into something you can believe.
What comes out the other end is a green 8-bit subcontinent on a blue sea, with small white cloud sprites sitting where the cover is. Filter to HIGH, MID, LOW or RAIN; step through the day in three-hour jumps from 00 to 21; search a station and watch its corner. A thousand-station numerical model would have been legible to nobody. This is legible from across the room.
The honesty is the other reason to spend time here. Today’s map is corrected against live observations — Meteosat-9, INSAT-3DR and 3DS, plus ground-level okta readings — while historical days are left as the forecast that was actually made, uncorrected. So the archive shows you what the IMD said would happen, not a tidied version of what did. Bhargava says the same thing about his own process in the field notes: code written with an assistant, prose and graphics by hand. The code and data are on GitHub.
A national forecasting apparatus publishes twelve hundred pictures a day for people who know how to read them. One person decided everyone should be able to.