Bangalore Wind
Some explorations on wind patterns in Bangalore, and what brings rain
The more perceptive of you might know that I’ve been tracking Bangalore weather (rain and temperature) data for the last few years now, and producing visualisations that look like this ( inspired by Edward Tufte). Recently I added some AI annotations to it, and this is what that graph looks like right now.
One a rather still day last week, I wanted to check if there is a pattern in Bangalore’s wind as well, and realised that Oikolab publishes that data as well. So some quick vibe coding (I had run out of Claude limits that day, so I used Antigravity for this) later, I had that wind data as well.
Now, a note on LLMs. My usual workhorse (and the one that I pay for ) is Claude. However, based on what I’ve been seeing on social media, it appears as if Claude is going to get either expensive or worse (tighter limits) in the coming days, so I’ve started heavily testing Codex and Antigravity as well (I don’t pay for either - I have ChatGPT Go, and some Gemini Pro via my Jio mobile connection).
So far I’m not impressed that much with either. Antigravity did a very good job in downloading the wind data and setting up scripts to make this an automatic download daily, but when I asked it to do some analysis and visualise, it came up with much worse stuff than what Claude had come up with.
Anyway, if you look at “raw wind speeds” in Bangalore, that it was a rather still day last week is borne out in the data - late April is the stillest time of the year in Bangalore. There is no surprise that this is also the hottest time of the year. Check out this annual cycle:
Soon, in early May, wind speeds should start picking up, until the arrival of the monsoons. And then there the winds slow down from August, troughing in October, before they pick up again.
And where do these winds come from? This has been a bit hard to visualise (actually I want to do a combined plot of wind magnitude and direction, but haven’t precisely figured out how to!) so what I went with is a “weighted average wind direction mapper”.
Again this uses 45 years of data. We have wind data hourly. For each calendar day, figure out what proportion of the wind came from what direction (using 8 cardinal directions), and weighting it by the velocity. So if we had an Easterly 5m/s wind and a Westerly 10m/s wind, then we’ll count this as “2/3 westerly, 1/3 easterly”.
This is what that looks like (I’ve taken the data and bucketed into 8 cardinal directions):
The next question is “where do rain bearing winds come from?”. A couple of parts are obvious - during the south west monsoon, the rain bearing winds should come from south west? And during the north east monsoon, they should come from the north east? Again, I got Claude to do some analysis on this, and this is what it produced:
During south west monsoon months, most of the rain is caused by westerly, rather than south-westerly winds. During the North East monsoon months, easterly and northeasterly winds each account for a quarter of the rains, and the rest is caused by winds from other directions.
And what about pre-monsoon rains? Those are caused by winds coming from pretty much all directions! There is no one direction that is prominent at this time!
Anyway, if you have a good idea on how we can visualise wind speed and direction together (and represent a time series that way), I’d love to know!
PS: All code for this and visualisations generated using claude code






This was a wonderfully unexpected rabbit hole. I clicked thinking it would be a simple weather post and instead found a genuinely creative exploration of how to think about directional data, rainfall, and Bangalore’s seasonal character. The entire exercise has the energy of someone following curiosity seriously enough to invent new visual language for a familiar phenomenon. That’s rare, and awesome!
A wind rose might be a very natural fit here since you’re essentially trying to jointly encode directionality + magnitude + seasonal frequency in one visual grammar. The weighted-average approach is elegant, but it compresses away dispersion and multimodality - two periods with the same mean direction can still have very different underlying structures.
Seasonal wind roses (perhaps split across monsoon/pre-monsoon/winter) could preserve the directional “texture” of the data while still showing intensity distributions. You could even overlay rainfall contribution as color intensity or opacity if you want to keep the rain-attribution angle alive.