After the course the participant will be able to program and apply Python software tools for time series and seismogram analysis.

6.5.2020 at 08:00 - 28.5.2020 at 23:59


Optional course for Master´s Programme in Geology and Geophysics (Solid Earth Geophysics)

A background in basic linear algebra and analysis will facilitate manipulation of basic trigonometric functions and the regression examples.

Some basic Python programming experience is useful, e.g. completion of an introductory Python programming course such as

GEOK_3030 Geo_Python

GEOM_S2073 Seismic structural studies
GEOM_S2072 Theory of seismic waves

For geophysics students with a focus on seismology, this is “initiation material for becoming a seismologist”, i.e., there is a strong emphasis on actual processing.

The fundamental concepts of time series analysis covered in this course are also attractive for students from other natural sciences backgrounds or data science.

The learning outcomes are intended to enhance the essential field-specific skills of time series and seismogram manipulation, interpretation, and analysis that underpins the degree graduate’s identity of an Earth Scientist who can decipher information about the subsurface from earthquake and seismic noise records. Applying and developing seismic analysis code is a prime example of transferring theoretical concepts underpinning data acquisition and seismic wave propagation into practice.

Based on the theoretical data acquisition and time series concepts introduced in the lecture-part of the course the course participant will be able to properly apply existing and program new software tools for time series, earthquake seismogram and noise records analysis and interpretation.

More specifically, the learning goals and possible assessment criteria and methods are

  • To understand underlying principles of data acquisition and fundamental properties of digitized time series with a focus on recorded ground motion

E.g., explain aliasing by showing the effects of downsampling after applying no filter and after using an appropriate low-pass filter

  • To translate mathematical concepts of signal processing into analysis software

E.g., present a key formula in the lecture and ask for the numerical implementation of it

  • To know resources that the student or practitioner can consult if skills need to be further developed and specific problems need to be solved (books, online material and tutorials, e.g., for ObsPy)

E.g., task to load the ObsPy package and apply a series of standard processing steps to some provided data

  • To manipulate actual earthquake seismograms to be able to analyze earthquake source or propagation medium properties

E.g., have the student to filter a P-wave arrival and to estimate the seismic moment or corner frequency

  • To code / program new analysis tools using (some of) the (basic) building blocks met and mastered in this course

E.g., convolve a simple source wavelet with a medium response; implement beamforming on provided array data

Learning Outcome Method + Action Assessment
Understand principles of digital data acquisition

All: lecture + Python notebook.

Here: Proper / improper handling of basic pre-processing

Evaluate discussion of Nyquist criterium using proper / improper filter before downsampling on time series
Translate theoretical concept into analysis software Lecture on beamforming or particle motion analysis plus formulae Code these math-formulae using Python and apply to synthetic and/or real time series
Know and apply advanced processing resources Brief Introduction to ObsPy, SAC, etc Load and apply basic Python-based ObsPy functions to provided time series
Process earthquake seismogram to estimate source properties Lecture and research material / papers Sketch previously met processing steps, student should code / implement in right order
Code new analysis tools Provide a range of common seismological tasks Let the student choose the processing tools needed for the completion of the task and implement it properly

The topics covered on the five days of the course are basic and intermediate-to-advanced concepts in time series and signal processing with a focus on recordings of seismometers, i.e., earthquake seismograms and ambient noise.

  1. Time series, sampling, frequency, spectra, Fourier series (basic)
  2. Fourier transform and F-K analysis (basic)
  3. Correlation, convolution / deconvolution (intermediate)
  4. Linear systems and filters (intermediate)
  5. Beamforming and other advanced wave field analysis techniques (advanced)

The course is an alternation between classic lecturing and heavy hands-on “tinkering” of the participants with Python computer code snippets in so-called Jupyter notebooks. These are environments that run Python code in a browser (think of an “online shared document” with executable code statements). The Python code in that Jupyter notebook can be simply executed, modified (e.g., different filter parameters in an executable statement) and executed, and new lines of code can be added. Time series data that should be analyzed will be disseminated together with the notebook to the participants, so that an efficient learning environment for actual data processing is provided that can act as a starting point for time series and seismogram analysis.

I intend to make this a very interactive environment. Participants will be activated by using, manipulating and extending the provided Python notebooks.

Each session consists of an introductory lesson (with research examples from publications, i.e., by showing key figures of analysis results and how that is used to infer something about Earth properties) to make the link between the coding examples and the science that can be done with this evident.

This is followed by a lecture on the theoretical background of the method, always “starting from scratch”, e.g., by not assuming any (or too much) knowledge in linear algebra (though it helps to have it, then these basics-recaps will be a welcome reminder).

The second part of each session is of the interaction with the Python notebook. Code examples are provided and discussed line-by-line, before the students are asked to manipulate parameters and “play” with the results or code up new tools.

Full presence required to pass (get 3CP), active participation in the exercises recommended.

An assessment of the learning outcomes can be achieved by providing an empty assessment notebook environment where participants are asked to add lines of code along with a few explanatory statements or comments in response to a specific task.

Such a task can be formulated for a range of problems with increasing degree of difficulty. The filled-up assessment notebook (possibly in teams of two) should be saved and submitted to me at the end of each day (or some agreed-on homework period).

Grading is 0-5, depending on activity / participation and returned coding examples.

There are 5 contact session days. Students should attend all days to complete (100%).

Gregor Hillers