True color satellite image showing showing clouds and smoke from wildfires over eastern Australia on 13 November 2019
A true color image showing clouds and smoke from wildfires over eastern Australia on 13 November 2019 from the Suomi NPP satellite. Credit: NASA Worldview (public domain)

Thousands of satellites are orbiting the Earth and observing conditions in the atmosphere, the oceans, and the land surface. Vast amounts of information are being collected all the time, but raw data needs manipulation before it becomes useful for scientific analysis. Python is a programming language that can be used to process satellite data sets for Earth science research. Earth Observation Using Python: A Practical Programming Guide is a new book recently published in AGU’s Special Publications series. It presents an introduction to basic Python programming that can be used to create functional and effective visualizations from earth observation satellite data sets. We asked the author about her vision for the book and how people can best utilize it.

What is Python and what makes it a useful tool for geoscientists?

Python is a free, easy to learn programming language that has grown in popularity. Compared with Fortran, the first programming language that I learned, Python is especially useful for Earth science research because it has add-on packages that facilitate reading, analyzing, and visualizing satellite observations.

Python is open-source and maintained by a community of coders. It evolves in tandem with new research trends and data sources.

There are other programming languages, but in the spirit of “open-science,” I appreciate that Python is open-source and maintained by a community of coders and not a single commercial entity. This means that code can be freely shared between scientists without any expensive commercial licenses. Also, because Python is maintained by the community it is a “living language” that evolves in tandem with new research trends and data sources.

What motivated you to write a programming guide about Python?

Because Python is a general-purpose language, there is already a lot of great content about Python programming on the web. However, there were fewer resources that focused on using Python for Earth-observing satellite datasets. Even as an experienced programmer, it was challenging for me to bridge general code examples online with field specific problems in my research.

I strongly believe in open science and skill sharing, so I began teaching Python workshops to provide a structured way for Earth scientists to learn the Python language that was also relevant to their research. Later, I wrote this book to provide more detail than I can teach in the workshop and to share the content with a wider audience. I also wanted to use the book to showcase some interesting real-world examples of satellite observations using my experience as a researcher for the JPSS and GOES satellite programs.

How would you convince someone new to Python the merits of learning a new programming language?

We live in the “golden age” of satellite data. Python makes these satellite datasets more accessible to scientists across the world.

We live in the “golden age” of satellite data and there are also many powerful programming languages that a scientist can use to analyze the data. However, some of these languages are not tailored for the Earth sciences or require a prohibitively expensive software license. Python is both powerful and free, making these (public!) satellite datasets more accessible to scientists across the world.

If you are new to scientific programming, Python is a great language to invest your time in. If you are already familiar with another language, you will find Python is relatively easy to learn and has a great set of packages that may make your workflow easier, providing another programming tool you can use in your work.

Who might find this guide useful?

This book is written for scientists who are hands-on and want to learn about Python for their research using relevant examples. When I was learning Python, I started with an in-person boot camp, then I tried an online course, and then I studied a textbook. Ultimately, what really helped to solidify my knowledge were practical, real-world examples using satellite data. So, I recommend this text to those who prefer working through simple examples that can be translated and applied to the readers area of interest.

How to you suggest readers use this guide?

I based the content of this book on the live classroom workshops that I taught over the past three years. Although these workshops are now captured in book format, I would like this guide to be an active learning experience.

The book is structured so that the readers can progress at their own personal pace.

The book is structured so that the readers can progress at their own personal pace and from anywhere in the world. I recommend working through a section each day. Once you learn a new skill, I recommend sharing your knowledge with a colleague or uploading your example to an online code repository, such as GitHub.

What knowledge and skills do you hope readers will develop from using your book?

My hope is that readers will work through the coding examples to improve their general Python coding knowledge, and more importantly, explore and model data, and share what they discover. Just as writers read other authors work, I encourage Earth scientists to study examples of working code in addition to writing their own.

By the end of the book I hope that readers will transfer their new skills to their own research area and then share their code online with other scientists so others can learn from them too! In a world where data are free and abundant, we can all contribute to learning the basic skills and new scientific problem-solving paradigms using the tools that Python offers.

Earth Observation Using Python: A Practical Programming Guide, 2021, ISBN: 978-1-119-60688-8, list price $169.95 (print), $136.00 (ebook). AGU members receive 35 percent off all books at Log in to your AGU member profile to access the discount code.]

―Rebekah B. Esmaili (; 0000-0002-3575-8597), Science and Technology Corp, USA

Editor’s Note: It is the policy of AGU Publications to invite the authors or editors of newly published books to write a summary for Eos Editors’ Vox.


Esmaili, R. B. (2021), A new practical guide to using Python for Earth observation, Eos, 102, Published on 06 August 2021.

Text © 2021. The authors. CC BY-NC-ND 3.0
Except where otherwise noted, images are subject to copyright. Any reuse without express permission from the copyright owner is prohibited.