SSBW - Jupyter Tutorial 4: GitHub and Removing the Instrument Response

Mike Brudzinski, Miami University-Oxford
Author Profile
Initial Publication Date: August 18, 2021


In this interactive tutorial built for a learning management system, students 1) download a Jupyter notebook from GitHub, 2) practice using basic Python syntax, 3) use the ObsPy library to retrieve a large number of seismograms from a single earthquakes using metadata criteria, 4) use the ObsPy library to remove the instrument response from downloaded seismograms, 5) calculate the local magnitude of the earthquake using the largest displacement amplitudes from each of the seismograms.

Used this activity? Share your experiences and modifications



The IRIS Seismology Skill Building Workshop (SSBW), which is a free, online, open-access, large-enrollment, 12-week summer workshop for upper level undergraduates.

Skills and concepts that students must have mastered

This assignment builds on prior experience using basic Python command syntax and variables, using a Jupyter notebook creation environment, basic components of the ObsPy library (catalog, stream, and trace objects, Client functions), and the ability to retrieve relevant information about programming and seismology from internet research or help pages.

How the activity is situated in the course

This is assignment number 34 of 35 in the Seismology Skill Building Workshop (SSBW).


Content/concepts goals for this activity

Proficiency with creating Jupyter notebooks, GitHub, Python, ObsPy, object structures, seismograms, and calculating earthquake magnitude.

Higher order thinking skills goals for this activity

Retrieving relevant information from digital sources to accomplish tasks, using correct programming syntax, evaluating and describing computing output in the context of science concepts.

Other skills goals for this activity

Description and Teaching Materials

Students will:
1. Learn how to create a repository, branch, commit changes, pull request, clone, and merge on GitHub
2. Download code in the form of a Jupyter notebook from GitHub
3. Load the downloaded Jupyter notebook into an interactive environment
4. Use ObsPy to retrieve information for an earthquake in the Eastern Tennessee Seismic Zone
5. Retrieve a large number of seismograms thae meet a set of metadata criteria using the ObsPy MassDownloader function
6. Remove the instrument response from all downloaded seismograms and convert them to displacement over time using the ObsPy remove_response function in a loop
7. Use the downloaded Jupyter notebook code to calculate the local magnitude based on each seismogram and then report the average value


Teaching Notes and Tips

This assignment was constructed in the Moodle learning management system, and has been exported in the GIFT format. More information about the syntax of this format can be found here:


This assignment is automatically graded by the learning management system. The number of questions of each type used are:
16 multiple choice questions
6 multiple answer question
1 matching question
5 numeric questions (output values, code evaluation)
1 short answer (auto-graded) question

References and Resources

During the Seismology Skill Building Workshop, students are provided with a virtual Linux machine that was tailored to include the software specifically needed to complete the assignments. This software is all freely available on the internet, but interested parties are encouraged to contact the instructor for access to this tailored virtual machine.