Wednesday, August 17, 2011

Digging into a "simple" weather model

I often use complex, 4-dimensional weather models and show their output here as an indication of what our weather forecasts look like.  But today I wanted to show how a much simpler weather model works--and how sensitive these models can be to their parameters.

I wrote up what would be considered a small surface parameterization scheme to simply forecast the air temperature at the surface at a point over the next 24 hours.  This is based on equations from the book Parameterization Schemes: Keys to Understanding Numerical Weather Prediction Models by David Stensrud.  It's not a book for the novice meteorologist--you definitely have to have gone through at least some undergraduate meteorology to follow what's going on there.  But the first chapter basically discusses what I did.

So what is a "parameterization scheme"?  It's a way of trying to predict something that we can't explicitly measure or figure out.  When it comes down to it, a lot of features of weather models are parameterized.  We can't track every single raindrop or every single little breeze of air being tossed and turned through trees and buildings.  Yet, these processes collectively are extremely important and feed back into the larger-scale weather processes.  So, we try to estimate their net effect using parameterization schemes.

I wrote up a very basic one that looks at several radiative processes and tries to predict the surface temperature over the next 24 hours.  I started it at around 1:00 PM local time here in Seattle using my "optimal" initial conditions.  Here are the parameters:
  • Latitude: 47.6928 N, Longitude 122.3038 W
  • Day of year: 229
  • Initial surface air temperature: 72 Fahrenheit
  • Precipitable water: 1.27 cm
  • Ground reservoir temperature: 12 Celsius (54 Fahrenheit)
  • Cloud fraction: 0.0
  • Bowen ratio: 0.9
 I'll get into what some of these mean in a minute. Here's the output:
I initialized the model at 72 degrees Fahrenheit.  You can see that the model expects us to warm up a little bit this afternoon, then cool off as the day progresses, bottoming out to around 46 degrees as a low overnight.  Then, the sun comes up at about 17 hours in and you can see the temperature starts rising again.

Is that low temperature tonight reasonable?  Here's a 24-hour meteogram showing the past 24 hours at this location (my weather station at my house, actually...):
Temperature is shown by the red curve in the top panel.  You can see that last night the low temperature reached was 48.2 Fahrenheit--not too far from our 46 Fahrenheit forecast.  So at least the model seems to be reasonable.

Now lets look at these different parameters that we can adjust.  I'm not going to change the latitude, longitude, day of year or initial surface air temperature, because those are all things we directly know and observe.  So, let's look at precipitable water.  This is something that is measurable (if you have a weather balloon, which sadly I do not...), and I recently wrote a blog post describing it.  It describes the total amount of water vapor in the air overhead.  So what happens if we adjust this a bit--say, increasing it to 2.0 cm or decreasing it to 0.5 cm?  Here's what happens:
In the graph above, the "optimal" run from before is shown in black.  The temperature results when the precipitable water is increased to 2.0 cm is in red and the temperature results when the precipitable water is decreased to 0.5 cm is in blue.  You can see that there is a pretty strong effect on the temperature path.  The temperature stays warmer when there is more water in the atmosphere, mostly because water has a higher heat capacity than air.  Therefore, moist air retains more heat, keeping it warmer longer.  Notice that with the lower precipitable water values, the temperature immediately began decreasing after the start of the model--the air was so dry that it immediately started cooling off.  However, with more precipitable water, the greater heat capacity of the water vapor keeps the air from losing heat as quickly.  This still allows the temperature to build a little before it starts cooling.

So that's the effect of precipitable water.  What about the effect of the ground reservoir temperature?  This temperature is, in simple terms, just the average temperature of the soil underfoot.  You might guess that a warmer soil temperature would help keep the temperature warmer, particularly overnight as the air cools down.  Does this actually happen?  Let's try increasing and decreasing the ground reservoir temperature by 2 degrees Celsius.  Here's the results:
Just like we might have guessed--if the ground is warmer (the run with the red curve), the air temperature also stays warmer.  Notice that same "reservoir" effect like we saw with precipitable water--the air temperature still continues to rise a bit once we start the model with a warmer ground temperature, whereas with a cooler ground temperature the model air temperature cool immediately.  Both moisture and soil temperature are important for determining how warm or cold we get and when we reach those high and low points.

The next parameter is called "cloud fraction" and it's simply an estimate of how much cloud cover there is in the sky--1.0 is completely overcast and 0.0 is completely clear.  Since it's a clear day today in Seattle, my optimal value is 0.0.  But, we can always try increasing it.  What if we had spotty cumulus clouds covering half the sky (cloud fraction = 0.5)?  Or what if it were overcast?  We might expect it to stay cooler during the day because the sun is being blocked out.  But what about at night?  Here are some results:
Well these results look a bit different.  The red line shows the temperature forecast with a cloud fraction of 0.5, and the blue line shows the temperature trace with a cloud fraction of 1.0.  We can now begin to see some of the hazards of using parameterizations and incompleteness in the model. With more clouds, we kind of expected the clouds to block out the sun and keep it cooler during the day.  That doesn't seem to have happened.  However, at night things stay much warmer with more clouds--this is definitely realistic.  Without clouds, as the earth cools at night, most of that energy would just be lost to space.  Clouds, however, can absorb much of that radiation and re-emit it back down toward the earth's surface.  Thus cloudy nights are warmer than clear nights, and the model definitely seems to capture this.

But, our intuition still tells us that more clouds should keep us cooler during the day.  So what's wrong here?  My guess is that while the model seems to be handling the impact of clouds on longwave radiation (the radiation emitted from the earth) well, it doesn't handle the potential blocking effects of clouds on shortwave radiation (radiation from the sun) well, if at all.  This gives us a clue that we may want to fix something in the model.

Let's try experimenting with the final parameter, the Bowen ratio.  This is a somewhat complex parameter that technically describes the ratio between sensible and latent heat emitted from the surface.  What this is talking about (in simpler terms) is, out of all the heat being emitted from the surface, how much of it is being lost through evaporating water (latent heat) and how much is being lost through simply radiating away the heat (sensible heat).  The AMS glossary gives typical values for this ratio:
  • 5 over semi-arid regions
  • 0.5 over grasslands and forests
  • 0.2 over irrigated orchards or grass
  • 0.1 over the ocean
These values make quite a bit of sense--over semi-arid regions (like deserts), there's not a lot of water vapor--so a Bowen ratio of 5 means that 5 times as much heat is released from the desert surface as sensible heat as opposed to heat being lost to evaporating water vapor.  Over the ocean, on the other hand, there's lots of water present--so the amount of heat released from the ocean as sensible heat is only 1/10 of the amount released through the evaporation of water from the surface.

Let's experiment with this value.  Here in Seattle there are a lot of trees and water, so maybe the Bowen ratio is closer to, say, 0.5.  But, on the other hand, this is a city with lots of pavement and buildings.  Those surfaces seem like they'd be hotter (and wouldn't have a lot of moisture).  So, maybe the Bowen ration is more like 2.0.  Let's see what happens:
Wow.  Some significant differences here.  Increasing the Bowen ratio really warms us up a lot, though we cool off to about the same temperature overnight.  Decreasing the Bowen ratio (the blue line) really cools us off--it makes us lose that reservoir of heat and we start cooling off immediately.  You can see that during the next day we start warming up really slowly.  Since the lower Bowen ratio means that more energy is going to evaporating water, there's less energy being used to increase the warmth of the air itself (the warmth we sense--hence the term: "sensible" heat).  Neither of these extreme values seem realistic--we haven't gotten up to 80 in Seattle, nor is the temperature plummeting this afternoon.  So, sticking to a middle value--0.9 to 1.0 is probably good.

This was a very simple model, a "parameterization scheme", if you will.  You can see that just by varying these parameters by a little bit, the results can change quite a lot.  We also can use our intuition and knowledge about the way temperatures typically go to both identify flaws in the model (like how it's probably not handling the effects of clouds on shortwave radiation well) and try to estimate unknown parameters (like trying to pick the right Bowen ratio). 

But I emphasize that this is a very, very simplified model over just one location.  I mean, none of these parameters change throughout the run of the model and there is no advection--this model has no idea if a cold front moves through or if the day starts clear and ends cloudy or anything like that.  And even in this simple model it's very sensitive to changes.  Imagine trying to forecast temperature AND moisture AND winds AND pressure for thousands of points across the country.  It's amazing that our models do as well as they do.

Hope you found this useful and not too boring.  If you'd like a copy of the Python script I used to run this simple model, let me know...

1 comment:

  1. Thanks - I've been looking to see a little behind the curtain on how these models work. This was perfect. Thanks so much for posting all this great information, and with a Seattle focus.