If the Earth behaved as a perfect black body and absorbed all incoming solar radiation (and radiated with 100% emissivity) the we calculated that the average surface temperature would be about 7 degrees Celsius above freezing (279 K). Keeping with this simplification we can think about how the Earth’s temperature could change with time if it was not at equilibrium.
If the Earth started off at the universe’s background temperature of about 3K, how long would it take to get up to the equilibrium temperature?
Using the same equations for incoming solar radiation (Ein) and energy radiated from the Earth (Eout):
Symbols and constants are defined here except:
- rE = 6.371 x 106 m
At equilibrium the energy in is equal to the energy out, but if the temperature is 3K instead of 279K the outgoing radiation is going to be a lot less than at equilibrium. This means that there will be more incoming energy than outgoing energy and that energy imbalance will raise the temperature of the Earth. The energy imbalance (ΔE) would be:
All these energies are in Watts, which as we’ll recall are equivalent to Joules/second. In order to change the temperature of the Earth, we’ll need to know the specific heat capacity (cE) of the planet (how much heat is required to raise the temperature by one Kelvin per unit mass) and the mass of the planet. We’ll approximate the entire planet’s heat capacity with that of one of the most common rocks, granite. The mass of the Earth (mE) we can get from NASA:
- cE = 800 J/kg/K
- mE = 5.9723×1024kg
So looking at the units we can figure out the the change in temperature (ΔT) is:
Where Δt is the time step we’re considering.
Now we can write a little program to model the change in temperature over time:
EnergyBalance.py
from visual import * from visual.graph import * I = 1367. r_E = 6.371E6 c_E = 800. m_E = 5.9723E24 sigma = 5.67E-8 T = 3 # initial temperature yr = 60*60*24*365.25 dt = yr * 100 end_time = yr * 1000000 nsteps = int(end_time/dt) Tgraph = gcurve() for i in range(nsteps): t = i*dt E_in = I * pi * r_E**2 E_out = sigma * (T**4) * 4 * pi * r_E**2 dE = E_in - E_out dT = dE * dt / (c_E * m_E) T += dT Tgraph.plot(pos=(t/yr/1000,T)) if i%10 == 0: print t/yr, T rate(60)
The results of this simulation are shown at the top of this post.
What if we changed the initial temperature from really cold to really hot? When the Earth formed from the accretionary disk of the solar nebula the surface was initially molten. Let’s assume the temperature was that of molten granite (about 1500K).