This occurred first as a Marine Surge arrived for Southern California waters bringing strong southerly winds, cooler air yesterday and after dusk fog.
Then this morning this pattern was reinforced by a counterclockwise eddy that formed just west of Pt. Reyes and directed even more fog through the Golden Gate.
This blog shows some of these factors as well as the complex pathway the wind takes as moving through the Bay Area during a Marine Surge.
In the first animation notice the Marine Surge moving up the coast from the south.
Especially notice how its southerly winds make the fog stack up in the gaps in the Coast Range.
The first gap it encounters is Pacheco Pass east of Monterey Bay. This feeds strong winds to San Luis Reservoir.
The next gap is the Hwy. 92 Gap between Half Moon Bay and San Mateo. SW winds through this gap create a wind battle in the area near the San Mateo Bridge.
The next gap is the San Bruno Gap. This gap normally feeds WNW wind to SFO, Coyote Park and the 3rd Ave. kite/windsurf launches. But during a Marine Surge, it sends W winds to the SFO to Oyster Point area.
The biggest gap in the Coast Range is the Golden Gate and SW winds roar through this gap heading past Pt. Richmond and towards Sherman Island.
Just north of the Golden Gate is the Muir Gap that feeds wind into Larkspur Landing and San Pablo Bay.
Notice how all the wind starts as NW ocean wind from the North Pacific High.
Then it turns into South wind in the Marine Surge along the coast.
Then, as it enters the Bay, it turns into SW winds.
Lastly, it curves back into NW winds as it is pulled down the Central Valley towards the pressure gradient in Bakersfield far to the south.
As you can imagine forecasting all of this is a challange.