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.

 

    • Day 1: Morning sessions
      • 1
        Welcome

        A short welcome to the participants and speakers.

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

        Overview of some recommendable packages

    • 12:30
      Lunch break
    • Day 4: Afternoon sessions
      • 24
        Exercise
      • 25
        Feedback
      • 15:45
        The End
    • 15:30
      The End