Miroslav Hallo - Software

Uncertainty of Earth's crust model in waveform-based earthquake source inversions

Open source functions for determining the (cross-)covariance matrix of Green's functions by approximate covariance function (ACF, AXCF) and stationarized approximate covariance function (SACF, SAXCF). The functions are distributed with an intuitive example, and return the full (cross-)covariance matrices.

Codes are published under the GNU General Public License (GNU GPL) for non-commercial use.

Methodology following:
  • Hallo, M., Gallovič, F. (2016). Fast and cheap approximation of Green functions uncertainty for waveform-based earthquake source inversions, Geophys. J. Int., 207, 1012-1029.
Here we dare to state some practical notes for users:
  • Magnifying of the parameter L1 leads to magnifying the variance of the covariance matrix in both ACF and SACF.
  • ACF covariance matrix is more accurate than SACF for L1<T.
  • ACF and SACF covariance matrices are very similar (in the duration of the useful signal) for L1>T.
  • The time-independence of SACF produces non-zero variance even for zero signal (prior and after the duration of useful signal).
  • Consider to use zero cross-covariance matrix (independence of two receivers), for receivers with higher mutual distance.
  • The cosine taper is applied on final covariance matrix in the case of SAXCF, you can control the taper inside the saxcf.m function


COMPLETE PACKAGE (revision 1/2018):
  • ACF.zip - Zip package containing all Matlab and Fortran codes

CONTENT (revision 1/2018):
  • axcf.m - Matlab function for determining the (cross-)covariance matrix by approximate covariance function (ACF, AXCF).
  • saxcf.m - Matlab function for determining the (cross-)covariance matrix by stationarized covariance function (SACF, SAXCF).
  • example.m - Example of Matlab code using the functions axcf.m and saxcf.m
  • approxc.f90 - Fortran subroutines for determining the (cross-)covariance matrix by (stationarized) approximate covariance function (AXCF, SAXCF).


The codes require Matlab functions: smooth from Matlab Curve Fitting Toolbox, and filtfilt from Matlab Signal Processing Toolbox.
The codes were tested on various versions of Matlab software, and it works without any problems even on older versions. Namely we tested: Matlab 2010a 32-bit (Windows XP), Matlab 2010b 64-bit (Windows 7), Matlab 2012b 32-bit (Windows 7), Matlab 2012a 64-bit (Ubuntu 14), Matlab 2014a 64-bit (Ubuntu 14), Matlab 2015a 64-bit (Ubuntu 14), Matlab 2017a 64-bit (Windows 7), Matlab 2018b 64-bit (Windows 7).
The codes should fulfill Fortran 90 Standard. The codes were successfully compiled by GFortran (GCC) and ifort (Intel) compilers on Ubuntu 14 operation system.