10 July 2009

Solar System Creator

Posted by Ryan

As I mentioned last month, on top of research and grad school duties, I’m in the process of planning out a sci-fi novel. It began with the month-long outlining challenge “Midsommer Madness” over at the Liberty Hall writing site, and I am continuing with it in my spare time.

I am trying to make my novel grounded in reality whenever possible. It is set in a known star system, 55 Cancri. The 55 Cancri system has 5 known planets, but I also took some artistic license and added moons and small planets that observations would likely have missed. Then, once I had planets and moons, I needed to figure out which ones would be habitable!

I happen to know a thing or two about planets, so I put together a handy spreadsheet to use to calculate things like surface temperature, surface gravity and orbital period given things like how bright the star is, how far away the planet is, etc. Once I had the spreadsheet made, I realized that there are likely other people out there who might find it useful.

So, whether you are a writer trying to come up with a plausible setting for your bestselling sci-fi epic, or a student learning about the solar system, or just plain curious about planets, please feel free to use and modify this spreadsheet. Right now it is set up for our solar system to give you an idea of what reasonable values are for the different variables, and to show that the results are generally pretty good despite the simplicity of the calculations. If you find this useful or have any questions, feel free to contact me by leaving a comment on this post.

I described how I calculated the surface temperature below. You don’t need to read the explanation to use the spreadsheet: it should just work if you enter numbers, but I encourage you to try to follow the derivation. Even if you don’t follow the algebra, I tried to explain everything in words to give some conceptual understanding of the ideas behind the math, and the ideas are what matter.

Note for Students: The spreadsheet is free for you to use, but be sure you cite this page as a source. Also show your work for all calculations! Copying values from the spreadsheet without showing your work probably won’t earn you any points, and may be considered plagiarism, which is grounds for failure and/or expulsion at most schools. And really, it’s not that hard to do the calculations, especially since the rest of this post is spent walking you through them! You might even learn something!

Ok, so how does it work? Well, the calculation of a planet’s surface temperature is based on the very simple idea that if its average temperature is not changing, then the amount of energy the planet absorbs must match the amount that it emits. Pretty much common sense! If the amount in and out were different, then the temperature would change until they balanced!

First, the absorption. The energy source is the star, which has a certain luminosity L (given in watts). This says how much energy the star puts out in all directions per second. We want to know how much energy per square meter hits the planet, so we take the luminosity and spread it out evenly over the surface of a sphere with a radius R equal to the distance from the planet to the star. The surface area of a sphere is A=4\pi R^2, so the amount of energy from the star hitting each square meter of the planet’s cross section is: L/A=\dfrac{L}{4\pi R^2}

The planet’s cross section is just the area of a circle with the planet’s radius: \pi r^2. Note that we’re using the area of a circle and not a sphere! That’s because the starlight doesn’t hit the whole planet, it just hits the part of the planet that is visible. Can you see all sides of a sphere at once? Neither can I, and neither can the star. What we see is the 2 dimensional cross section: a circle.

So now we have an equation for how much energy the planet absorbs per second: Energy Absorbed Per Second= \dfrac{L \pi r^2}{4\pi R^2}

But that is assuming that the planet absorbs every bit of light that hits it, which we know isn’t true: we see planets in the night sky by their reflected light! So we can add a correction called albedo. Albedo, A, is the fraction of starlight that the planet reflects back out into space, and (1-A) is the fraction of starlight a planet absorbs. So with that correction, our equation becomes: Energy Absorbed Per Second= \dfrac{(1-A) L \pi r^2}{4\pi R^2}

Now we have to figure out an expression for the energy that the planet emits. Here we have to make an assumption to simplify things: we assume that the energy absorbed by the planet is immediately redistributed evenly over the whole planet. Obviously this isn’t right, it is much warmer on the day side than the night side, but this assumption makes our lifes much easier. We just have to remember that the value we get is going to be an average of day and night temperatures.

We also assume that the planet radiates away its energy like a blackbody. A blackbody is something that absorbs and emits all radiation perfectly. We’re not going to worry too much about this assumption. For our purposes, planets are close enough to being blackbodies that it doesn’t matter much. I know, I know, we just made an adjustment for albedo two paragraphs ago, implying that the planet is not a perfect blackbody! Just calm down. It works pretty well, and that’s all we need.

Anyway, if we assume the planet is a uniform temperature blackbody, then we can use the handy equation for blackbody emission: Energy Emitted Per Square Meter Per Second = \sigma T^4. Sigma is called the Stefan-Boltzmann constant, and is given by \sigma = 5.67\times 10^{-8} W m^{-2} K^{-4} To get rid of that pesky “per square meter” part of the equation, we just multiply by the surface area of the thing doing the emitting: in this case, the planet. Here we do use the surface area of a sphere, remember our assumption that the energy absorbed gets spread out over the whole surface? This is why we did that. The result is:

Energy Emitted Per Second = 4 \pi r^2 \sigma T^4

Now that’s a fine equation if your planet emits every bit of energy that it receives straight back to space. But that’s not how it works for planets with atmospheres. There’s this effect where the atmosphere traps energy in the system for a longer time, resulting in a warmer planet…  you may have heard of it: the Greenhouse Effect! It would be nice if we could add that to our model! If we don’t, we’ll never get the surface temperature right for a planet like Venus, where the greenhouse effect dominates.

gheffect

To actually do a proper simulation of the greenhouse effect is very difficult and complicated, so instead we are going to use a fudge factor. The bottom line is that the greenhouse effect GE reduces the amount of energy radiated from the surface that escapes to space. So we can do something very similar to our albedo adjustment: GE gives the amount of energy that the atmosphere absorbs, and 1-GE gives the amount of energy that actually escapes to space. For the Earth GE \approx 0.4 and for Venus GE \approx 0.99. Our modified equation is now:

Energy Emitted Per Second = (1-GE) 4 \pi r^2 \sigma T^4

Now, remember why we were doing all of this? We want to find the planet’s average surface temperature T. To get this, we have to set our two equations equal to each other and solve:

Energy Emitted Per Second = Energy Absorbed Per Second

(1-GE) 4 \pi r^2 \sigma T^4 = \dfrac{(1-A) L \pi r^2}{4\pi R^2}

Look! The planet’s radius appears on both sides of the equation! That means it cancels out, and that a planet’s radius has no effect on its surface temperature! Ok, don’t get too excited, we still need to solve for T.

T^4 = \dfrac{L (1-A)}{16\sigma\pi R^{2}(1-GE)}

T = \left(\dfrac{L (1-A)}{16\sigma\pi R^{2}(1-GE)}\right)^{1/4}

Voila! There is the expression for the equilibrium surface temperature of a planet, taking into account the planet’s reflectivity and the greenhouse effect. I hope this sheds a little light into how to think about the energy budget of a planet, and how my spreadsheet works. Again, if you have any questions, post them in the comments and I’ll answer them!