This lesson is being piloted (Beta version)

Python for Dynamics and Evolution of Earth and Planets


The course is aimed at PhDs, postdocs and other researchers who are working on Dynamics and Evolution of Earth and Planets and are willing to learn Python. For the first 2 days you don’t need to have any previous knowledge of python programming while for the last 3 days we build on the knowledge acquired during the beginning of the course towards advanced python programming.


You need to understand the concepts of files and directories and how to start a Python interpreter before tackling this lesson. This lesson sometimes references Jupyter Notebook although you can also use any Python interpreter mentioned in the Setup.

The commands in this lesson pertain to Python 3.


Setup Download files required for the lesson
00:00 1. Analyzing Tabular Data How can I process tabular data files in Python?
01:30 2. Repeating Actions with Loops How can I do the same operations on many different values?
02:00 3. Storing Multiple Values in Lists How can I store many values together?
02:30 4. Analyzing Data from Multiple Files How can I do the same operations on many different files?
02:50 5. Making Choices How can my programs do different things based on data values?
03:20 6. Working with Pandas dataframes What is Pandas?
How can I import data with Pandas?
Why should I use Pandas to work with data?
How can I access specific data within my data set?
How can Python and Pandas help me to analyse my data?
03:20 7. Working with xarray What is xarray?
What data formats can be read with xarray?
What is the difference between xarray and pandas?
03:20 8. Making plots with python What is matplotlib?
What are the differences between imshow, pcolor and pcorlormesh?
How to customize plot?
How to create maps with python?
How to change map projection?
03:20 9. Creating Functions How can I define new functions?
What’s the difference between defining and calling a function?
What happens when I call a function?
03:50 10. Errors and Exceptions How does Python report errors?
How can I handle errors in Python programs?
04:20 11. Command-Line Programs How can I write Python programs that will work like Unix command-line tools?
04:50 12. Defensive Programming How can I make my programs more reliable?
05:20 13. Debugging How can I debug my program?
05:50 14. Data analysis with Python What Python packages for analyzing data?
What is scipy?
05:50 15. Visualize and publish with Python How to generate interactive plots?
How to generate animations?
How to create publication ready jupyter notebooks?
How to publish jupyter notebooks?
05:50 16. Object Oriented Programming with Python Why Object-Oriented programming is crucial in Python?
Why you should create your own classes?
How to start OO with Python?
05:50 17. Automated testing Why does testing need to be part of the software development cycle?
how can software development cycle be implemented?
05:50 18. Organize and distribute a Python package What license for Python projects?
How to organize and distribute a python package on pypi?
How to distribute a python package with conda?
How do Python projects deploy their documentation?
What is DevOps?
05:50 19. Parallelize your code What python package could I use to parallelize my Python code?
What is Data parallelism?
05:50 20. Check and improve the performance of your code How to assess the performance of Python codes?
05:50 Finish

The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.