The other day I was out running after dark. It was -8 degrees C and I was expecting it to be bitterly cold. Instead, it felt quite mild, pleasant even. It was overcast.
One of the things I learned while working on sea ice retrieval, is that air temperature is just one of many factors that determine how an object exchanges heat with its environment, and a relatively minor one at that. We've all heard of the wind chill factor. We feel of course, much colder during a windy day than a calm one, even if the air temperature is the same. Another factor is humidity, hence the humidex. The one I'm going to discuss here is cloud cover. I'm trying to design a temperature correction for cloud cover, much like that for wind chill and humidity.
Every warm object emits radiation which is why stove elements glow red and incandescent light bulb filaments glow white. At room temperatures this radiation is too low in frequency to see with the naked eye. When an object emits radiation, an equivalent amount of heat energy is lost. When it absorbs radiation, the energy from the radiation goes towards warming it. On cold, calm days, radiative cooling is actually a much more significant source of heat loss than direct conduction into the air because air is a poor conductor. This is why down is so warm: it's not the down itself that's a good insulator, it's actually the air spaces between.
Clouds reflect a lot of the long-wave radiation we emit, making overcast days feel warmer than clear days, especially during the evenings when the sun's rays are not there to compensate. This of course is the well-worn explanation for climate change and the "greenhouse effect."
OK, so maybe you've heard all that. Here is the more technical explanation. But first, for the less technically inclined, lets go directly to the table:
In other words, the presence of cloud cover can make it seem several degrees warmer. How does that work exactly?
The basic idea is to calculate the rate of heat loss for a cloudy atmosphere and then ask the question, "what would the clear sky air temperature need to be in order to produce the equivalent level of heat loss?"
Since the human body exchanges heat with the air using approximately the same mechnanisms, let me describe the thermodynamic models I used for sea ice. These were applied for various purposes: the first one I wrote was actually for an ocean model. Surface heat exchange is the number one mechanism forcing ocean circulation. I took the same model and used it to predict the temperature profile of Antarctic icepack and also to model the growth rate and salinity profile of sea ice.
There are four mechanism by which ice (and other things, including us) exchange heat with the environment: latent heat, sensible heat, shortwave radiation and longwave radiation. Latent heat, also called evaporative cooling, is the heat lost through evaporation. Since water has a very high heat of vapourization, when water evaporates, for instance from the surface of pack ice, from the surface of the ocean or from our bodies, it takes a lot of heat with it. The main thing determining evaporative cooling is the difference in vapour pressure between the air and the thing being cooled. High humidity will slow evaporation.
Sensible heat is direct heat transfer through conduction. In still air, sensible heat is basicly nil. As the wind picks up, it can get quite high as the wind chill index will tell us.
Shortwave radiative flux is just the sun shining on us. This is determined partly by geometry: objects pointing directly at the sun will be heated faster than those at an angle. Since the sun is lower in the sky earlier and later in the day and at higher latitude, ground heating is lower. It is also determined by cloud cover. In this model, we are deliberately ignoring solar heating: lets just assume it's night time.
Finally, the one that interests us the most is longwave flux. This is heat that is radiated directly off us in the form of electromagnetic radiation. The rate at which this occurs is proportional to the 4th power of temperature times the Stefan-Boltzmann constant: this is the Stefan-Boltzmann law. This is the equation I used which also accounts for both clouds and air re-radiating the heat back:
Qlw=-ε σ [0.39*(1-ccc•cc•cc)Ts4+Ts3(Ts-Ta)]
where ε is the emissivity coefficient, σ is the Stefan-Boltzmann constant, ccc is the "cloud-cover-coefficient," cc is cloud cover as a fraction between 0 and 1, Ts is skin temperature and Ta is air temperature. I just got this from a paper on surface heat flux, but you can clearly see the Stefan-Boltzmann law embedded in there.
In the sea ice growth simulation I used net heat flux to determine the surface temperature of the ice.
The difference in temperature between the ice and the water (which is at a constant freezing temperature) is given by the heat flux times the conductivity and divided by ice thickness. Since all of the flux calculations also involve a temperature difference, this time between skin (surface) temperature and air temperature in one form or another, we need to solve for the skin temperature. In other words, we need to invert the equation for flux in order to answer the question, "what value of skin temperature will match heat conduction through the ice (between the ice-water interface and the ice surface) to heat flux between the ice and air?"
The cloud cover index was generated in a similar way, except in this case the skin temperature was held constant at 37 deg. C while it was the air temperature that was being solved for. It was also much simpler in that I didn't assume any conductive interfaces: heat was lost directly from the skin to the outside air.
While it might be possible to generate an analytic solution, I just fed the whole thing to a numerical root-finding algorithm, in this case bisection. I didn't account for latent heat since it's hard to say how high it would be: it depends very much on whether the person is sweating or not. Leaving out sensible heat so that only longwave is present, however, gave very high values, so I set the wind speed at a moderate 4 m/s (14.4 km/h) to produce some sensible heat loss. You could also assume that the person is wearing a coat and try to match air temperature to conductive heat loss, much as I did with the sea ice growth model. This would achieve a similar result.
Here is the Python program if you want to mess around with it.