Lesson Plan: Create Your Climate Model- Earth’s Energy Balance using Python

As an Undergraduate teacher of Earth Sciences or Physics or Math, you can teach how to build a mathematical model of the Earth’s climate system using Python. This lesson plan includes discussions, activities, and a detailed guide of how to create a computational model of Earth’s energy balance to understand its role in determining the surface temperature of the planet.

This lesson plan uses resources developed by Prof. David Archer from the University of Chicago. Specifically, it focuses on the “Time dependent Energy-Balance Model for the Earth” that includes fundamental thermodynamics concepts such as blackbody radiation and heat capacities. The model applies these concepts to study how the energy balance between the incident solar radiation and the outgoing terrestrial radiation governs the surface temperature of the planet, and consequently, how it evolves over time. The activity section of this lesson plan includes a detailed instruction manual that serves as a step-by-step guide to conceptualize David Archer’s model in numerical and algorithmic terms, eventually developing a computational model using Python programming.
Thus, the use of this lesson plan allows you to integrate the teaching of a climate science topic with a core topic in Math, Earth Sciences and Physics.
This lesson plan was developed by Tatsam Garg, Ashoka University, India.


Use this lesson plan to help your students find answers to:

  1. What is a Blackbody?
  2. What determines the average surface temperature of planet Earth?
  3. How do you use a mathematical model to build a computational model?
  4. How do you write a simple computational model in Python?

About Lesson Plan

Grade Level High school, Undergraduate
Discipline Mathematics, Earth Sciences, Phyics
Topic(s) in Discipline Thermodynamics, Blackbody Radiation

Heat Capacity, Computational Modelling with Python

Climate Topic Planetary Energy Balance, Planetary Climate

Climate Variability Record

Location Global
Language(s) English
Access Online, Offline
Time Required
2-3 hours


Video Lecture

(45 min)

A video lecture by Prof David Archer that explains electromagnetic radiation, the concept of blackbodies and blackbody Radiation. This video also includes discussions on the use of these concepts to explain a basic climate model for determining the surface temperature of a planet.

Go to the Video

Teaching Module

(45 min)

A set of tutorials to learn basic syntax in Python: ‘Introduction to Python: Beginners Guide and Tutorials’

Go to the Resource

Classroom/ Laboratory Activity

(60 min)

A programming activity with a detailed step-by-step guide to building the computational time-dependent energy balance model for Earth using Python based on the schematics explained in the video lecture.

The guide for this activity is provided here.


Here is a step-by-step guide to using this lesson plan in the classroom/laboratory. We have suggested these steps as a possible plan of action. You may customize the lesson plan according to your preferences and requirements.

1 Introduction to the Time-Dependent Energy Balance Model for the Earth 1.     Play the video lecture, ‘Our first Climate Model’, by Prof David Archer, University of Chicago, to enable your students to understand the scientific background and the schematics of the climate model.

2.     Emphasize the following topics from the video lecture: Incident Solar Energy, the Solar Constant, behavior of a Blackbody, the Stephan-Boltzmann Law, heat capacities, and the heat capacity of water.

3.     Discuss what every parameter in the model means physically.

4.     Remind your students about the units of each quantity that would be required to verify dimensionally correct equations.

Go to the Resource

2 Prepare for Python Programming: By installing Jupyter Notebooks 1.     Ask your students to install a Python programming environment on their computers.

2.     For beginners, we recommend using Jupyter Notebooks. This environment allows you to access tutorials and a programming space where students can simultaneously read instructions and try their hands at programming.

3.     To access Jupyter Notebooks, install the ‘Anaconda-Navigator’ using this link.

4.     Once it is successfully installed on your computer, navigate to the homepage of the software, and click on ‘Install’ in the ‘Jupyter Notebook’ tab.

5.      Once installed, launch the notebook- the ‘Jupyter notebook Homepage’ will open as a webpage.

6.     Open a new ‘Python 3’ file to begin coding.

3 Introduction to Programming with Python Use the link to the Python tutorial database to teach the basics of Python programming such as printing text, defining variables, simple arithmetic operations, import and use of the ‘numpy’ and ‘matplotlib’ libraries, defining arrays and lists, using indices with arrays and lists, and loops (specifically ‘for’ loops). These introductory skills will be required for the ensuing classroom/laboratory activity.

The Python tutorial database can be accessed here. 

4 Classroom/Laboratory Activity Begin by recalling the Time-Dependent Energy Balance Model described in the first resource. Inform your students that this classroom activity involves developing the climate model using Python. This exercise has been adopted from Prof David Archer's course titled “Global Warming II: Create your own models in python”, available on Coursera here.

A detailed step-by-step guide for this activity is provided here for download.

1.     Share the instruction manual for the exercise with each student. The manual  walks you through the entire process of developing the model on Python.

2.     If you want the students to work their way through the exercise themselves, you may avoid sharing the manual with them. Instead, use it to motivate them in the right direction with hints.

%d bloggers like this: