Windy Afternoons in San Francisco
A San Francisco day can look perfectly pleasant until you walk somewhere near the water and get absolutely folded by the wind. I wanted to see whether that daily change showed up in actual weather data, so I pulled a month of observations from five stations around the Bay Area: an offshore buoy, the Golden Gate, Richmond, San Francisco airport, and Livermore.
Measured afternoon wind directions across the Bay Area
Each arrow shows the average direction the air was actually moving at that station on July afternoons. Weather stations report the opposite bearing: where the wind came from. Offshore, that was about 281 degrees; at the Golden Gate, 238 degrees; at Richmond, 187 degrees.
These are measurements at different locations, not a tracked parcel of air. But the shift makes the geography easier to read: the wind does not arrive over the Bay Area as one uniform sheet. Hills, coastal gaps, and the bay all sit in the way.
The timing is just as recognizable. As the inland air warmed relative to the coast, the wind at the Golden Gate strengthened through the afternoon.
Inland-coastal temperature difference and Golden Gate wind across the day
Across 30 complete July days at the Golden Gate, the sustained-westerly rule I used detected the pattern on 26. Its median arrival was 1 p.m. By afternoon, the inland station was typically about 5.5 degrees Celsius warmer than the airport near the bay, based on 29 days of valid Livermore observations.
Golden Gate wind arrival on each complete July day
The mechanism starts outside the city. The Pacific stays relatively cold while the inland valleys warm up, lowering inland air pressure compared with the coast. Air moves toward that lower pressure, bringing cooler marine air inland. The Coast Range gets in the way, so the airflow concentrates through lower openings: the Golden Gate, the San Bruno Gap, and the Petaluma Gap. The National Weather Service describes this as the region's afternoon sea breeze.
That pressure difference also shows up in the data. The median gap between San Francisco airport and Livermore rose from roughly 0.7 hectopascals at 8 a.m. to 2.1 by 2 p.m. Over the same part of the day, wind at the Golden Gate increased from about 2.6 metres per second at 8 a.m. to 5.1 by 4 p.m. That timing does not prove every gust followed the same chain of events, but it matches the physical explanation.
The stations themselves are measuring different parts of the system. The offshore buoy sits over open water, with its wind sensor 4.1 metres above the sea. The Golden Gate and Richmond stations are waterfront instruments recording conditions every six minutes. The airport readings come from a separate hourly archive: San Francisco airport is near the bay, while Livermore sits farther inland at about 121 metres above sea level. Different heights, terrain, surroundings, and reporting intervals affect the numbers, so the stations cannot be treated as identical sensors following the same parcel of air.
What they do show, together, is a cold ocean, a warming interior, and a landscape that funnels marine air through the gaps. We're not imagining the chill after all.
How the wind maps were made51,114 NOAA observations and observed USGS elevation contours from July 2025.
The source package combines NOAA National Data Buoy Center station 46026, NOAA CO-OPS stations 9414290 and 9414863, and NOAA NCEI airport observations from San Francisco International Airport and Livermore. The Golden Gate analysis retains 30 complete local calendar days in July 2025; Livermore contributes 29 days of valid afternoon observations. All times use America/Los_Angeles.
Map arrows show the circular mean wind direction measured at each station during the afternoon window. They indicate the direction air moves toward, converted from the meteorological wind-from values in the source data. They are not particle tracks, simulated trajectories, or evidence of a specific parcel moving between stations.
The onset measure is an explicitly authored sustained-westerly rule, not a formal published weather threshold. It appears on 26 of 30 eligible days, with a median of 13:00 local. Temperature comparisons use Livermore minus San Francisco airport; pressure comparisons subtract Livermore sea-level pressure from San Francisco airport sea-level pressure. Quoted hourly values are medians across eligible July observations, not individual-day extremes. Elevation contours come from real USGS 3DEP terrain windows; all geometry has been simplified for display.
Station elevation, instrument height, exposure, and reporting definitions differ across the five sites. The sample cannot establish pedestrian wind, long-term climatology, or a causal sequence.
Sources
- NOAA National Data Buoy Center. Station 46026: San Francisco 18 nautical miles west
Observed offshore wind and historical station records.
- NOAA Center for Operational Oceanographic Products and Services. San Francisco Bay PORTS
Golden Gate and Richmond waterfront wind, temperature, and pressure observations.
- NOAA National Centers for Environmental Information. Global Hourly Integrated Surface Database
San Francisco and Livermore airport station observations.
- National Weather Service. Climate of San Francisco
How coastal cooling, inland heating, pressure differences, and terrain shape the Bay Area's afternoon sea breeze.
- National Weather Service. Delta Breeze and stratus case study
The Golden Gate, San Bruno, Petaluma, and Carquinez openings through regional terrain.
- U.S. Geological Survey. 3D Elevation Program products and services
Observed Bay Area terrain used to derive the elevation contours.