UPCODES Lab
University of Potsdam Code Development for Seismology
With the UPCODES Lab, we aim to equip our scientists and students with the best possible software tools for seismological research and education. We develop and contribute to open source codes and provide training on software development for our students.
Contributions to Open Source Software Packages
With the immensly growing amount of observational data, open source software plays a fundamental to keep research transparent and reproducible. Therefore our team actively contributes to the development of free and open source software packages in our field.
UPCODES is the homebase for:
Education
Programming is a key skill in any research dealing with digital data. This is especially true for seismology. Here at the UPCODES Lab, we help students to learn the arts of coding and seismological data management.
We may also have some student assistant job offers. Please contact our staff members if you are interested.
Projects
2023-06-07 - The Sparrow - Geospatial Data Visualization
We are releasing Pyrocko Sparrow, a new interactive tool to explore geo-datasets through space and time.
- Easy to use interface.
- Make animations from your research results.
- Built on VTK, Qt and NumPy - fully open source.
2022-04-28 - Pyrocko Squirrel - A New Framework for Seismological Data Access
After many iterations and lessons learned, we are now releasing a new framework for seismological data access.
The Squirrel framework provides a unified interface to query and access seismic waveforms, station meta-data and event information from local file collections and remote data sources. For prompt responses, a database setup is used under the hood. To speed up assemblage of ad-hoc data selections, files are indexed on first use and the extracted meta-data is remembered for subsequent accesses. Bulk data is lazily loaded from disk and remote sources, just when requested. Once loaded, data is cached in memory to expedite typical access patterns. Files and data sources can be dynamically added and removed at run-time.
Features
- Efficient (O log N) lookup of data relevant to a time window of interest.
- Metadata caching and indexing.
- Modified files are re-indexed as needed.
- SQL database (sqlite) is used behind the scenes.
- Can handle selections with millions of files.
- Data can be added and removed at run-time, efficiently (O log N).
- Just-in-time download of missing data.
- Disk-cache of meta-data query results with expiration time.
- Efficient event catalog synchronization.
- Always-up-to-date data coverage indices.
- Always-up-to-date indices of available station/channel codes.
2021-07-05 - Bringing the Pyrocko Toolbox for Seismology to Windows
Pyrocko is an open source seismology toolbox which has been constantly evolving for over 10 years now. It contains all the building blocks needed for seismological research in a tightly integrated package. It also contains several tools for everyday seismological practice, like the Snuffler, a fancy seismogram browser and workbench. Most of Pyrocko is written in the Python programming language, performance-critical parts in C.
Until now Pyrocko has only been available on the Linux and macOS platforms. As open source developers we strongly encourage seismologists to work on open source operating systems like Linux, of course. This is where the whole ecosystem of research software thrives. But we do recognize that, especially in education and for casual users, the option to use Pyrocko on Windows would be benefitial. UPCODES has now finally made it possible to add Windows to the supported platforms of Pyrocko.
With the release of Pyrocko v2021.06.29, experimental Windows support is now available. We have updated all the C codes in the Pyrocko library so that they compile with MSVC, updated the Python codes where necessary, updated the installation procedure and installation manual, and integrated Windows into our testing and continuous integration (CI) pipelines. Furthermore, we can now build and upload PIP and Anaconda packages also for Windows with every new release of Pyrocko.
Trying out Pyrocko on Windows is easy: download and install Anaconda or Miniconda and then run 'conda install -c pyrocko pyrocko' on the Anaconda command line prompt. A good place to start learning Pyrocko is the Snuffler tutorial.