An earthquake catalog is a chronologically ordered list of time, coordinates of epicenter, magnitude and focal depth of all recorded earthquakes with magnitudes greater than or equal to a certain threshold that occurred inside or in the vicinity of a geographical region during a specified time period. Among different proposed models, the epidemic type aftershock sequence (ETAS) model is the most widely used statistical model to describe the underlying process that generates an earthquake catalogs.
The space-time version of the ETAS model is a spatio-temporal marked
point process model. It is a semi-parametric model that describes the
background and triggering seismic activities in a geographical region
and can be used for earthquake declustering. However, estimation of the
ETAS model parameters is computationally challenging. The ‘ETAS’ package
fits the ETAS model to an earthquake catalog. The etas
function in the package is based on a C port of a Fortran program
by Jiancang Zhuang, Yosihiko Ogata and their
colleagues.
To install the package from CRAN, run the following in R:
install.packages('ETAS')
You can also install the current version of the package on GitHub by running:
require(remotes)
install_github('jalilian/ETAS')
If remotes is not installed, you should first run:
install.packages('remotes')
Jalilian, A. (2019). ETAS: An R Package for Fitting the Space-Time ETAS Model to Earthquake Data. Journal of Statistical Software, 88(CN 1), 1-39. DOI:10.18637/jss.v088.c01
Computations of the conditional intensity function, the
log-likelihood function, declustering probabilities and the
Davidon-Fletcher-Powell algorithm for optimization are all written in C
code. As of version 0.3, a new C++ code is implemented using the Rcpp package which allows multi-thread
parallel computing on multi-core processors with OpenMP and suported
platforms. The argument nthreads
in etas
function determines the number of threads to be used in the parallel
region of the code. If nthreads = 1
(the default), then a
serial version of the C++ code carries out the computations. The
detectCores
function in parallel
package can be consulted to find out the overall number of available
threads on a given machine:
::detectCores() parallel
Parallel computing (nthreads > 1
) reduces the
computation time for large earthquake catalogs. However, resource usage
and limitations should be considered when setting
nthreads
.