Python Course for Geoscientists

Europe/Berlin
Caroline Arnold (DKRZ), Fabian Wachsmann (DKRZ), Jannek Squar (Uni HH), Karin Meier-Fleischer (DKRZ), Marco Kulüke (DKRZ), Ralf Mueller (DKRZ)
Description

Target group: beginner

In today's world, there is usually no way around the Python programming language in the geosciences. However, learning Python on your own is associated with many difficulties and leads only to unsatisfactory results, which is why this course was developed especially for beginners.

Python is an easy to learn but powerful programming language. It has abstract data structures and a simple approach to object-oriented programming. The very extensive standard library offers almost everything you need. And if you need something more specific, you can usually download it for free from third-party distributions.

This workshop will take place via videoconference.

We only offer a limited number of course seats to ensure there is enough time to help with problems.

In advance, due to high demand, we will not be able to provide everyone registered to attend this course, but the next course will take place at the end of September.

 

We are sorry, but the registration is now closed.

 

    • 09:00 12:15
      Day 1: Morning sessions
      • 09:00
        Welcome 10m

        A short welcome to the participants and speakers.

      • 09:10
        Hardware for Python: Difference between a supercomputer and your mobile phone 20m
        • what is a node, cpu
        • Historical development
        • Architecture
      • 09:30
        What is Python – short intro 30m
        • Difference between programming language and Python
        • Assembler, compiler, interpreter
      • 10:00
        Introduction to Linux system and setting up work environment 1h
        • terminal
        • via WSL
        • command line and shell: (basics to transfer/run files and data in/out Mistral)
        • editor
      • 11:00
        Break 15m
      • 11:15
        Installation 1h
        • conda
        • python
        • modules/environments
        • envkernel conda --name=kernel-name --user $conda-env
        • python-related package management
        • testing installation and libraries
    • 12:15 13:15
      Lunch Break 1h
    • 13:15 16:15
      Day 1: Afternoon sessions
      • 13:15
        Installation - Questions/Answers 15m
      • 13:30
        Jupyter notebooks, connecting to Mistral 1h
        • Jupyter lab
        • Jupyter hub
        • Jupyter lab
      • 14:30
        Syntax 30m
        • case-sensitive
        • print
        • indentation and code blocks
        • line continuation
        • comments
      • 15:00
        Data types 15m
        • boolean
        • integer
        • floating-point
        • complex
        • conversion between types
        • None
      • 15:15
        Strings 15m
        • formatting
        • string functions
      • 15:30
        Questions/Answers // End 15m
    • 09:00 12:30
      Day 2: Morning sessions
      • 09:00
        Warmup about content of Day 1 15m
      • 09:15
        List, Tupels, sets, arrays, ... 1h 30m
        • slices
        • dictionaries
        • intro to logic
        • copying objects, deep copy
        • mathematical operators and math functions
      • 10:45
        Break 15m
      • 11:00
        Conditional statements, ... 1h 30m
        • Iteration
        • Loops
        • List comprehensions
    • 12:30 13:30
      Lunch break 1h
    • 13:30 16:00
      Day 2: Afternoon sessions
      • 13:30
        Functions, classes, scripts, ... 2h 15m
        • Functions
        • Classes and methods
        • Command line arguments for python scripts
        • File I/O
      • 15:45
        Questions/Answers // End 15m
    • 09:00 12:00
      Day 3: Morning sessions
      • 09:00
        Warmup about content of Day 2 15m
      • 09:15
        Numpy 1h 30m
      • 10:45
        Break 15m
      • 11:00
        Xarray - read/write netCDF and GRIB files 1h
    • 12:00 13:00
      Lunch break 1h
    • 13:00 16:00
      Day 3: Afternoon sessions
      • 13:00
        Exceptions/error handling 30m
        • try, except
        • logging
      • 13:30
        Data analysis 1h 15m
        • python-cdo
      • 14:45
        Python in action GLOBAGRIM 1h
      • 15:45
        Questions/Answers // End 15m
    • 09:00 12:30
      Day 4: Morning sessions
      • 09:00
        Warmup about content of Day 3 15m
      • 09:15
        Visualization 2h
        • matplotlib
        • cartopy
        • seaborn
      • 11:15
        Break 15m
      • 11:30
        Interesting packages 1h

        Overview of some recommendable packages

    • 12:30 13:30
      Lunch break 1h
    • 13:15 16:00
      Day 4: Afternoon sessions
      • 13:30
        Exercise 2h
      • 15:30
        Feedback 15m
      • 15:45
        The End 15m
    • 15:30 15:45
      The End 15m