20 March 2012

Return of the simplest climate model

The simplest climate model balances the energy leaving the earth to space with the energy coming in from the sun.  If the climate is not changing, these two will be the equal.  As long as climate is not changing rapidly, a modifier we can make quantitative, they'll be very nearly equal.  It turns out that even for fairly rapid climate changes, by standards of geological history, the earth is very close to that balance.

I'm actually going to take a different approach this time around.  Key to deciding how much solar energy comes in to the earth (more precisely, the climate system) is knowing the albedo -- what fraction of incoming energy gets bounced right back out.  That makes the model unsatisfactory to me on a theoretical basis.  We have to know the earth's albedo to compute its blackbody temperature (the temperature which provides that balance).  The problem with that is that the albedo itself is a climate term.  The state of the climate -- how many clouds we have, how large the sea ice pack is, how large the continental ice sheets and deserts are, how green the forests are -- determines the albedo.  Knowing either the blackbody temperature or the albedo is a climate observation.  Given one, we can compute the other from that simple model.  And, which is a good point, we can compare our computed temperature with the observed.

Is it possible to remove or weaken that restriction on the albedo?  And if so, can we learn anything about the climate system?  Yes, and yes.

I'll do something that would be quite improper if I were to claim that it was exactly true, but which will turn out to be extremely educational.  Namely, I will make up a relationship between albedo and earth's blackbody temperature. 
At very low temperatures, albedo will be something like the albedo of snow and ice.  After all, at very low temperatures, the entire earth freezes over.  That's about 0.8 albedo.  At very high temperatures, the earth becomes cloud-covered, rather like Venus actually is.  That also happens to be an albedo of 0.8.  The earth's current albedo, at a blackbody temperature of 255 K, is about 0.3.  What I'll do is take the decrease in earth's albedo to be a bell curve with magnitude 0.5 (to get from 0.8 to 0.3), peak at 255 K (current temperature -- but, since I've got no particular reason to think we're at the peak, I'll make it a variable and come back to it) and a standard deviation of, oh, 5 K (another made up number, so, again, we will come back and see if it matters).  The earth's albedo, then, looks like figure 1:

The equation is albedo = 0.8 - 0.5 exp( - (T-255)^2/2/sdev^2) where sdev is that 5 K standard deviation.  This is all in a spread sheet with the variables named and marked for you to experiment.  (You can also change that 255 to a temperature you're more interested in; it is labelled T0.)

The simplest model is to look for a temperature which makes this equation true:
T^4 = S*(1-albedo)/4/sigma
where S is the solar constant (1367 W/m^2),  albedo is given by the first equation, and sigma is the Stefan-Boltzmann constant = 5.67e-8.

This is known as an implicit equation.  There's no way to get temperature entirely by itself on one side of the equation, the way we normally try to (an explicit equation).  It can still be solved by hunting for a T which makes the equation true.  The method I use in the spreadsheet is to start off with a guess temperature.  Then see what albedo that gives.  Pretend for a moment that albedo doesn't vary with temperature, and see what temperature the second equation (the simplest model) gives.  Keep repeating this process until consecutive temperature and albedo guesses are pretty much the same.  There's one more thing involved, which I'll save for a later post (after you have a chance to experiment).

So, what to guess for our starting point?  Well, if it's nature that is at hand, it shouldn't matter.  Or, if it does, how it matters should tell us something about climate.  So I'll try 288 K, the current global mean surface temperature.  After a bit, the search settles on 255 K as expected (I did, after all, contrive the function to look like the present climate).  But try something colder than 255.  Say 220.  After a while, the iterations settle down on a temperature, but it's 186 K (-87 C, -124 F).  Almost 90 K colder!  Try it yourself -- any first guess 255 K or warmer leads the iterations to an earthly blackbody temperature of 255 K.  Any first guess colder than 255 heads off to an earth temperature of 186 K.

To come next: analyzing the results and sensitivities.


Nick Barnes said...

See code to illustrate this here which produces the image here.

Nick Barnes said...

You have albedo = 0.8 - 0.3 ... where you mean 0.8 - 0.5 ...

Robert Grumbine said...

Thanks Nick!

This is also a much better starting point for me to learn Python than the Lutz book from O'Reilly was.

Robert Grumbine said...

Oops. Thanks again, fixed now.

Nick Barnes said...

I wouldn't start learning Python with matplotlib (or with my crappy off-the-cuff scripts) but it's actually not a bad approach for a scientist. I've updated the source to also draw another chart. This one has temperature against albedo for both the equations given: the "expected albedo" (the Gaussian which we hypothesize is the result of thermal effects) and the "required albedo" (for a sphere in Earth's orbit to have the given temperature). The purpose of this plot is to illustrate the approximation method you describe (for a given T, find the expected albedo a, then calculate the T which has required albedo a, etc).

Arthur said...

But Venus' black-body temperature is not all that high (because its albedo is high). Isn't the more direct link between albedo and temperature going to be to the *surface* temperature? But including surface temperature necessarily adds more complexity to your model (difference between surface and black-body temp is not a constant, depends on water vapor content in the atmosphere and lapse rate...)

Anyway, just I'm not sure how informative this particular model is about reality...

Alastair said...

Hi Bob,

You wrote "This is all in a spread sheet with the variables named and marked for you to experiment." But when I click on the "spread sheet" hyperlink I get a message saying that

Your current account (xxxxxx@gmail.com) does not have access to view this page.

I have tried another account but that is no better. Is the spreadsheet protected?

Robert Grumbine said...

Sorry, I klutzed the link. It's fixed now. (Or at least it works for me now.)

I certainly agree that the surface temperature is the more interesting thing for us. It's just that, as you say, such a model will not be nearly as simple. But I'll soon (fingers crossed) be starting in to dealing with the difference between what's easy and what we're more interested in, and how to get from one to the other.

Nick Barnes said...

I was wondering why our numbers came out differently. Your post says the albedo Gaussian width parameter is 5C, but your spreadsheet has sd set to 10.
Also, your iteration algorithm is curious. Each step moves 1% of the distance to the new temperature (instead of either stepping directly to it or 'splitting the difference'). I'm thinking about a graphical illustration of this.

Robert Grumbine said...


There is at least one reason 'rate' is only 0.01, rather than being 1 (going straight to the temperature suggested by our first guess albedo) or 0.5 (half way). You'll see it if you plot up the solution you get as a function of 'rate', starting with 288 as your first guess temperature. (Anything much warmer than 255.)

The standard deviation doesn't matter to the final solution, but can to how you get there. Play with that, too. I hadn't reset everything to the original values in the spreadsheet I uploaded; the 10 you see is one of my experiments.

Our numbers will almost certainly differ, for reasons which underlie why I don't use spreadsheets for professional modeling. But more on that in the next post.

EFS_Junior said...


So I've assumed that a Python distro is required and installed?

Because the ZIP file does not appear to be in any form of a standard spreadsheet (meaning all data in one file).

From the Python website I have two choices; (1) 2.7.2 or (2) 3.2.2, so I'll install 3.2.2 unless told otherwise.

Never used Python before, but I'm interested in this simplest climate model discussion and where it will end up at.

Thanks for the simplest climate model effort though.

Robert Grumbine said...

If you have python handy, go with the link in Nick's comment. Otherwise, use the 'spread sheet' link in the original post.

Alastair said...

Hi Bob,

I can download it now, thanks.

I notice the spreadsheet is in Open Office format .ods. I was expecting it to be a Microsoft Excel file. I just mention this as others may make the same mistake.

It might be an idea if you save a copy as an .XLS file for folks to use as well.

Cheers, Alastair.

Nick Barnes said...

But this post isn't about Python! Sorry if I have derailed the conversation.
[For scientific Python, use 2.7 (because a number of important scientific packages have not yet made the transition to 3). You need a number of libraries etc; it's probably easiest to install the free Enthought bundle.]

Robert Grumbine said...

Thanks for the links Nick. Very appropriate, I think. Python is a tool that's being used, so is relevant. Language wars wouldn't be, of course.

Could you email me about your (Google/Clear Climate Code) summer project for a post? Write a guest post yourself? You notice I've posted about summer programs before.

David B. Benson said...

This is fun, but in so-called snowball Earth conditions volcanoes continue to erupt, spewing ash all over the snow and ice. So you'll have to have new snowfall frequently in order to maintain such a high albedo.

jg said...

Hi Bob,
I hate to be a burdon, but I think I need some remedial level help. I've opened your spreadsheet in Excel, but I don't see any formulae, just static numbers on both worksheets. Can you tell me what I'm missing?


arcticio said...

Would it help to take the albedo from the latest GFS model analysis (albdosfc)?

Robert Grumbine said...

Using the GFS's albedo helps with having an albedo, but doesn't resolve the climate issue of what relationship there is between the temperature and the albedo. I do actually have the GFS (n.b.: global forecast system -- US National Weather service weather model) albedo in mind for some related experiments.