Environmental Seismology – harvesting the seismic signals of Earth surface processes

Environmental seismology is the science of the seismic signals that are emitted by Earth surface processes. It provides the unique opportunity to access type, timing, location, magnitude and interconnections of a wide range of the processes that shape our planet. Environmental seismology is placed at the seams of geomorphology to many neighbouring disciplines, first of all seismology but also meteorology, hydrology, glaciology and natural hazards.

Spectrogram of an Earthquake followed by a rockfall
Spectrogram of a heavy rainfall event
Spectrogram of a debris flow and hillslope activity
Spectrogram of a three day lasting storm event

Environmental seismology heavily relies on high-resolution data. Usually, the utilised seismic stations collect data from three-component broadband seismometers with recording frequencies of 100 Hz and higher. This yields more than one million samples per station and hour and requires efficient software to handle these data. However, environmental seismology is mainly a tool for geomorphologists also operating in other analysis fields such as spatial data handling, (climatic/meteorologic) time series manipulation and multivariate statistics. Hence, R is the ideal base for this setting as it is easy to learn and yet one of the most powerful and general tools for almost any kind of data.

THE PACKAGE eseis (current developer version: 0.4.0)
  • Support of sac and mseed files
  • Deconvolution of signals with preset lists of sensors and loggers (user-defined extension supported)
  • Coherent workflow from input file to event analysis
  • High-quality plot functions
  • Multicore support
  • Full documentation including code examples and sample data

The R-package eseis is hosted on GitHub. There, one can get the most recent developer distribution (0.4.0). There are a series of ways to install the package. The most convenient and coherent one is installing it through the R-package devtools.

install_github(repo = "coffeemuggler/eseis", ref = "0.4.0")

Of course, this requires installing devtools first (e.g., by typing install.packages("devtools")). If you need help installing devtools, see the help page on the CRAN website. Alternatively, if you do not want or do not manage to work with devtools these versions can be downloaded (no guarantee for the very latest version, see time stamp on GitHub) and used for installation typing

install.packages(pkgs = "~/Downloads/eseis_0.4.0.tar.gz", repos = NULL, type = "source")

where "~/Downloads/eseis_0.4.0.tar.gz" is the location where you downloaded the package source archive. Attention, before installing the package eseis make sure that all required dependencies are installed, because manual package installation does not install dependiencies along. An easy way to check/install the dependencies is the folloqing R code snippet:
pkgs <- c("sp", "multitaper", "raster", "rgdal", "caTools", "signal", "fftw", "matrixStats", "methods", "IRISSeismic", "Rcpp")
for(i in 1:length(pkgs)) {install.packages(pkgs[i])}

Linux/Mac OS eseis_0.4.0.tar.gz
compiled 2018-06-05
compiled 2017-04-11
compiled 2016-11-07
Windows OS eseis_0.4.0.zip
compiled 2018-06-05
compiled 2017-04-11
compiled 2016-11-07

There is a growing tutorial as a pdf document that can be reached following this link: eseis Tutorial

If you feel helpless with an issue or notice a bug in one of the functions of the package, if you wish to have a further feature implemented, there is a good chance that I will engange with this issue, if you let me know of it. Please send me an email and I will add this to the list of issues shown here.
  • Micha

    Write analogue function to aux_organisecubefiles() also for Centaur mseed files.

    • Micha

      Bug in aux_organisecubefiles(). File names were assigned wrongly and unsystematically during conversion procedure.

      Bug fixed. New procedure builds file names from mseed or sac meta information after all modifications were made to the files. Tests with all file formats and channel name options were successful.

    • Micha

      Bug in read_sac(). When reading more then one file and setting append = FALSE, the time vector of each element is wrapped into another list. To access it one needs to to type xyz[[1]]$time[[1]] instead of xyz[[1]]$time.

    • Micha

      Implement signal::decimate instead of current approach to downsample a signal vector. Also implement signal::interp to allow increasing the sample rate for homogenous data treament from different loggers.

    • Micha

      Implement further filter options. These can include signal::fftfilt or other filter shapes from the signal-package.

    • Micha

      implement function to write mseed files.