<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing with OASIS Tables v3.0 20080202//EN" "journalpub-oasis3.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:oasis="http://docs.oasis-open.org/ns/oasis-exchange/table" dtd-version="3.0">
  <front>
    <journal-meta>
<journal-id journal-id-type="publisher">SE</journal-id>
<journal-title-group>
<journal-title>Solid Earth</journal-title>
<abbrev-journal-title abbrev-type="publisher">SE</abbrev-journal-title>
<abbrev-journal-title abbrev-type="nlm-ta">Solid Earth</abbrev-journal-title>
</journal-title-group>
<issn pub-type="epub">1869-9529</issn>
<publisher><publisher-name>Copernicus GmbH</publisher-name>
<publisher-loc>Göttingen, Germany</publisher-loc>
</publisher>
</journal-meta>

    <article-meta>
      <article-id pub-id-type="doi">10.5194/se-6-701-2015</article-id><title-group><article-title>Instaseis: instant global seismograms based on a broadband waveform database</article-title>
      </title-group><?xmltex \runningtitle{Instaseis: instant global seismograms based on a broadband waveform database}?><?xmltex \runningauthor{M.~van~Driel et al.}?>
      <contrib-group>
        <contrib contrib-type="author" corresp="yes" rid="aff1">
          <name><surname>van Driel</surname><given-names>M.</given-names></name>
          <email>martin@vandriel.de</email>
        <ext-link>https://orcid.org/0000-0002-8938-4615</ext-link></contrib>
        <contrib contrib-type="author" corresp="no" rid="aff2">
          <name><surname>Krischer</surname><given-names>L.</given-names></name>
          
        </contrib>
        <contrib contrib-type="author" corresp="no" rid="aff2 aff3">
          <name><surname>Stähler</surname><given-names>S. C.</given-names></name>
          
        <ext-link>https://orcid.org/0000-0002-0783-2489</ext-link></contrib>
        <contrib contrib-type="author" corresp="no" rid="aff2">
          <name><surname>Hosseini</surname><given-names>K.</given-names></name>
          
        </contrib>
        <contrib contrib-type="author" corresp="no" rid="aff4">
          <name><surname>Nissen-Meyer</surname><given-names>T.</given-names></name>
          
        </contrib>
        <aff id="aff1"><label>1</label><institution>Dept. of Earth Sciences, ETH Zürich, Sonneggstrasse 5, 8092 Zurich,
Switzerland</institution>
        </aff>
        <aff id="aff2"><label>2</label><institution>Dept. of Earth Sciences, Ludwig-Maximilians-Universität München,
Theresienstraße 41, 80333 Munich, Germany</institution>
        </aff>
        <aff id="aff3"><label>3</label><institution>Leibniz-Institute for Baltic Sea Research, Warnemünde, Seestraße 15,
18119 Rostock, Germany</institution>
        </aff>
        <aff id="aff4"><label>4</label><institution>Dept. of Earth Sciences, University of Oxford, South Parks Road, Oxford OX1
3AN, UK</institution>
        </aff>
      </contrib-group>
      <author-notes><corresp id="corr1">M. van Driel (martin@vandriel.de)</corresp></author-notes><pub-date><day>16</day><month>June</month><year>2015</year></pub-date>
      
      <volume>6</volume>
      <issue>2</issue>
      <fpage>701</fpage><lpage>717</lpage>
      <history>
        <date date-type="received"><day>16</day><month>January</month><year>2015</year></date>
           <date date-type="rev-request"><day>6</day><month>March</month><year>2015</year></date>
           <date date-type="rev-recd"><day>4</day><month>May</month><year>2015</year></date>
           <date date-type="accepted"><day>8</day><month>May</month><year>2015</year></date>
      </history>
      <permissions>
<license license-type="open-access">
<license-p>This work is licensed under a Creative Commons Attribution 3.0 Unported License. To view a copy of this license, visit <ext-link ext-link-type="uri" xlink:href="http://creativecommons.org/licenses/by/3.0/">http://creativecommons.org/licenses/by/3.0/</ext-link></license-p>
</license>
</permissions><self-uri xlink:href="https://se.copernicus.org/articles/.html">This article is available from https://se.copernicus.org/articles/.html</self-uri>
<self-uri xlink:href="https://se.copernicus.org/articles/.pdf">The full text article is available as a PDF file from https://se.copernicus.org/articles/.pdf</self-uri>


      <abstract>
    <p>We present a new method and implementation (Instaseis) to store global Green's
functions in a database which allows for near-instantaneous (on the order of milliseconds)
extraction of arbitrary seismograms. Using the axisymmetric spectral element method
(AxiSEM), the generation of these databases, based on reciprocity of the Green's
functions, is very efficient and is approximately half as expensive as a single
AxiSEM forward run. Thus, this enables the computation of full databases at half
the cost of the computation of seismograms for a single source in the previous scheme and
allows to compute databases at the highest frequencies globally observed. By storing
the basis coefficients of the numerical scheme (Lagrange polynomials), the Green's
functions are 4th order accurate in space and the spatial discretization respects
discontinuities in the velocity model exactly. High-order temporal interpolation using
Lanczos resampling allows to retrieve seismograms at any sampling rate. AxiSEM is
easily adaptable to arbitrary spherically symmetric models of Earth as well as other
planets. In this paper, we present the basic rationale and details of the method as well
as benchmarks and illustrate a variety of applications. The code is open source and
available with extensive documentation at <uri>www.instaseis.net</uri>.</p>
  </abstract>
    </article-meta>
  </front>
<body>
      

<sec id="Ch1.S1" sec-type="intro">
  <title>Introduction</title>

      <fig id="Ch1.F1" specific-use="star"><caption><p>Global stack of 1 h of seismograms accurate to a
shortest period of 2 s for an earthquake in 27 km depth computed
with Instaseis. The displacement is color-coded analogous to the
IRIS global stack <xref ref-type="bibr" rid="bib1.bibx2" id="paren.1"/>, i.e. red: transversal component,
green: radial component, blue: vertical component. An automatic gain control
(AGC) with a window of 100 s length is used to balance large
amplitude variations between the various phases. Note that creating this
plot does not require to define the source depth at the time of database
calculation. A high-resolution version of this plot and one for 5 h
long seismograms is added as an electronic supplement.</p></caption>
        <?xmltex \igopts{width=483.69685pt}?><graphic xlink:href="se-2015-11-f01.pdf"/>

      </fig>

      <p>Despite the exponential growth of computational power and substantial progress of 3-D
numerical methods for seismic wave propagation in the last 15 years <xref ref-type="bibr" rid="bib1.bibx20 bib1.bibx24 bib1.bibx46 bib1.bibx47" id="paren.2"/>, the simulation of the highest frequencies observed
in seismic waves on the global scale remains a high-performance computing challenge and is
not yet done routinely. This is why many seismologists still rely on approximate methods
to compute and analyze high-frequency body waves such as ray-theoretical travel times
<xref ref-type="bibr" rid="bib1.bibx10" id="paren.3"><named-content content-type="pre">e.g. the TauP-toolkit described in</named-content></xref>, WKBJ synthetics
<xref ref-type="bibr" rid="bib1.bibx8" id="paren.4"/>, the reflectivity method <xref ref-type="bibr" rid="bib1.bibx13" id="paren.5"/> or the frequency–wave number
integration method <xref ref-type="bibr" rid="bib1.bibx23" id="paren.6"/>. More recently, several methods that include the full
physics in solving the seismic wave equation while reaching the highest observable
frequencies by assuming spherically symmetric models have become available, see
Fig. <xref ref-type="fig" rid="Ch1.F1"/> for an example. These methods include the direct solution
method <xref ref-type="bibr" rid="bib1.bibx14 bib1.bibx21" id="paren.7"><named-content content-type="pre">DSM,</named-content></xref>, the frequency domain integration
method <xref ref-type="bibr" rid="bib1.bibx11" id="paren.8"><named-content content-type="pre">GEMINI,</named-content></xref> and a generalization of it including self
gravitation <xref ref-type="bibr" rid="bib1.bibx1" id="paren.9"><named-content content-type="pre">Yspec,</named-content></xref>.</p>
      <p>As detailed by <xref ref-type="bibr" rid="bib1.bibx33" id="text.10"/>, the main drawback of these methods when applied
to computing wave fields rather than single seismograms, is their scaling proportional to the
number of points in space where the wave field is sampled. This motivated the development
of a direct time-domain approach, where the displacement as a function of space and time
is a natural field variable and only needs to be written to disk
<xref ref-type="bibr" rid="bib1.bibx32 bib1.bibx33 bib1.bibx34" id="paren.11"/>. The implementation of this axisymmetric spectral
element method AxiSEM was recently extended to include anisotropy and attenuation
<xref ref-type="bibr" rid="bib1.bibx50 bib1.bibx51" id="paren.12"/>, published under public license
<xref ref-type="bibr" rid="bib1.bibx35" id="paren.13"/> and is available at <uri>www.axisem.info</uri>.</p>
      <p>As computing full global waveforms especially at higher frequencies requires substantial
computational resources, several initiatives serve to deliver waveforms  by means of
databases without having to run a full numerical solver.  The ShakeMovie project
(<uri>http://global.shakemovie.princeton.edu</uri>) provides synthetics for earthquakes from
the CMT (Global Centroid-Moment-Tensor) catalogue (<uri>www.globalcmt.org</uri>) recorded at permanent
Global Seismic Network (GSN) and International Federation of Digital Seismograph Networks (FDSN) stations
in 1-D and 3-D velocity models <xref ref-type="bibr" rid="bib1.bibx47" id="paren.14"/>. The Pyrocko toolbox
(<uri>http://emolch.github.io/pyrocko</uri>) provides a Python interface to generate and
access Green's function databases, which for the global case are based on GEMINI,
several databases are offered for download.</p>
      <p>In this paper we present a method that uses AxiSEM to generate global Green's
function databases and provides a Python interface for convenient extraction of
seismograms. The advantage over ShakeMovie synthetics are the possible higher
frequencies and arbitrary source and receiver combinations independent of catalogues and
real stations. Compared to Pyrocko with GEMINI synthetics,
AxiSEM is more efficient in generating the databases, allowing to routinely
compute them for a large number of different background models or specialized
applications (e.g. limited depth/distance ranges). Also, by using the Lagrangian
polynomials in the SEM (spectral element method) mesh as basis functions, it achieves higher spatial accuracy.</p>
      <p>This paper is structured as follows. In Sect.  <xref ref-type="sec" rid="Ch1.S2"/> we present the technical
aspects and argue for the choices made in the spatial and temporal discretization.
Section <xref ref-type="sec" rid="Ch1.S3"/> gives a short overview of the Python interface. In
Sect. <xref ref-type="sec" rid="Ch1.S4"/> we show the performance with respect to accuracy, speed and
disk space requirements for the databases. Finally, we depict a variety of applications in
Sect. <xref ref-type="sec" rid="Ch1.S5"/>.</p>
</sec>
<sec id="Ch1.S2">
  <title>Methods</title>
<sec id="Ch1.S2.SS1">
  <title>Computing Green's functions with AxiSEM</title>

      <?xmltex \floatpos{t}?><fig id="Ch1.F2"><caption><p>The 3-D wave field is decomposed analytically into
monopole, dipole and quadrupole radiation patterns (left) and the remaining 2-D
problem is solved on a D-shaped domain (right) using the spectral element
method. While the forward databases require a total of four 2-D computations,
it is only two for the backward databases using reciprocity of the
Green's function: one for the vertical and one for the horizontal
components <xref ref-type="bibr" rid="bib1.bibx35" id="paren.15"><named-content content-type="pre">modified from</named-content></xref>.</p></caption>
          <?xmltex \igopts{width=236.157874pt}?><graphic xlink:href="se-2015-11-f02.pdf"/>

        </fig>

      <p>AxiSEM was designed from the beginning with the application of computing
global wave fields rather then single seismograms in mind <xref ref-type="bibr" rid="bib1.bibx33" id="paren.16"/>. This
becomes apparent in the following main advantages in this application: it uses a 2-D
discretization (Fig. <xref ref-type="fig" rid="Ch1.F2"/>), with an analytical decomposition of the 3-D
wave field into several 2-D wave fields. For moment tensor sources, four 2-D wave fields are
needed, for force sources, two. As it is a time domain method, the displacement field in
space-time is a natural field variable of the numerical scheme and simply needs to be
written to disk without any extra computational cost when larger regions of Earth are
included in the database. AxiSEM uses a spectral element scheme for spatial
discretization which lends itself well to parallelization on High Performance Computing (HPC) systems. As it is based
on the weak formulation of the wave equation, it naturally includes the free surface
boundary condition and allows for highly accurate modeling of surface waves.</p>
      <p><xref ref-type="bibr" rid="bib1.bibx35" id="text.17"/> argued against using collective parallel I/O since the
availability of the NetCDF libraries <xref ref-type="bibr" rid="bib1.bibx38" id="paren.18"/> was not granted on all
supercomputers. For that reason, we implemented a round robin I/O scheme, which remains
advantageous when running AxiSEM on less than about 100 cores in parallel and to
avoid installation problems on systems where NetCDF is not available as a pre-compiled
package. On supercomputers however, the situation has since improved and NetCDF compiled
with parallel support seems now to be widespread. For this reason, we implemented a
collective parallel I/O scheme that performs well, even when running on more than 1000
cores, see Table <xref ref-type="table" rid="Ch1.T1"/>. In this scheme, all processes that have to write data
to disk communicate via the message passing interface (MPI) and then write collectively at
the same time to the parallel file system. This way we achieved throughputs of up to
4 GB s<inline-formula><mml:math display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula> on SuperMUC.</p>
</sec>
<sec id="Ch1.S2.SS2">
  <title>Forward and backward databases</title>
      <p>Instaseis has the capability of dealing with forward wave fields,
i.e. the waves are propagated from a moment-tensor point source at fixed depth (i.e. receivers
exist throughout the medium), as well as backward or reciprocal
wave fields, where the wave fields are propagated from a single-force point source at fixed
depth and recorded throughout the medium (i.e. sources exist throughout the medium).</p>
      <p>Potential applications of forward databases are the generation of 3-D
wave-propagation movies <xref ref-type="bibr" rid="bib1.bibx17" id="paren.19"/>, the computation of incoming teleseismic
waves in 1-D/3-D hybrid methods <xref ref-type="bibr" rid="bib1.bibx30 bib1.bibx27" id="paren.20"><named-content content-type="pre">e.g.</named-content></xref> or the forward
field in the computation of sensitivity kernels <xref ref-type="bibr" rid="bib1.bibx32" id="paren.21"/> for seismic
tomography. To generate a forward database, a total of four runs with
AxiSEM are needed <xref ref-type="bibr" rid="bib1.bibx33" id="paren.22"/>.</p>
      <p>In contrast, reciprocal databases utilize the reciprocity of the Green's
functions, and are useful in all cases where the receivers are at fixed depth, thus for
instance mimicking earthquake catalogues recorded at stations along the surface. The
source can be located anywhere in the region where the Green's functions are recorded in
the simulation, thus allowing for unlimited choices in the source–receiver geometry. To
generate a reciprocal database, a total of two runs with AxiSEM are
needed, one for the vertical component and one for both horizontal components of the
seismogram <xref ref-type="bibr" rid="bib1.bibx33" id="paren.23"/>. It is also possible to compute a database for the
vertical component seismograms only, which is then a factor of 3 faster and uses only
about 40 % of the disk space.</p>
</sec>
<sec id="Ch1.S2.SS3">
  <title>The spatial scheme</title>

      <?xmltex \floatpos{t}?><fig id="Ch1.F3"><caption><p>Lagrangian basis polynomials <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi>l</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="italic">ξ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> of fourth order in
one dimension. At the collocation points, all but one are zero, such that the
value of the interpolated function at this point coincides with the
coefficient in this basis expansion.</p></caption>
          <?xmltex \igopts{width=236.157874pt}?><graphic xlink:href="se-2015-11-f03.pdf"/>

        </fig>

      <?xmltex \floatpos{t}?><fig id="Ch1.F4"><caption><p>Lagrange interpolation points inside an element (gray)
and its neighbors. Coordinates <inline-formula><mml:math display="inline"><mml:mi mathvariant="italic">ξ</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math display="inline"><mml:mi mathvariant="italic">η</mml:mi></mml:math></inline-formula> are the reference
coordinates of the gray element. Points on the edges (black squares) are
shared between neighbors and function values at these points need to be
stored only once if the function is continuous (e.g. displacement). The
number of global degrees of freedom per element of such
functions is thus approximately 16
compared to 25 for discontinuous functions (e.g. strain).</p></caption>
          <?xmltex \igopts{width=236.157874pt}?><graphic xlink:href="se-2015-11-f04.pdf"/>

        </fig>

      <p>For the spatial discretization we choose to keep the same basis as used in
AxiSEM. The displacement <inline-formula><mml:math display="inline"><mml:mi mathvariant="bold-italic">u</mml:mi></mml:math></inline-formula> within each element is expanded in terms of Lagrangian
polynomials <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi>l</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> (see Fig. <xref ref-type="fig" rid="Ch1.F3"/>) of order <inline-formula><mml:math display="inline"><mml:mi>N</mml:mi></mml:math></inline-formula> defined on the integration
points of the spectral element scheme (see Fig. <xref ref-type="fig" rid="Ch1.F4"/>):

                <disp-formula id="Ch1.E1" content-type="numbered"><mml:math display="block"><mml:mrow><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="italic">ξ</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="italic">η</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow><mml:mi>N</mml:mi></mml:munderover><mml:msub><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:msub><mml:mi>l</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="italic">ξ</mml:mi><mml:mo>)</mml:mo><mml:msub><mml:mi>l</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="italic">η</mml:mi><mml:mo>)</mml:mo><mml:mo>;</mml:mo></mml:mrow></mml:math></disp-formula>

          <inline-formula><mml:math display="inline"><mml:mi mathvariant="italic">ξ</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math display="inline"><mml:mi mathvariant="italic">η</mml:mi></mml:math></inline-formula> are the reference coordinates of the element and <inline-formula><mml:math display="inline"><mml:mi>N</mml:mi></mml:math></inline-formula> typically
has a value of 4. This approach has several advantages.
<list list-type="bullet"><list-item>
      <p>The wave field is represented by polynomials, typically of degree 4;
interpolation is hence of 4th order accuracy.</p></list-item><list-item>
      <p>The basis is local and only few coefficients are needed to represent the
wave field inside an element (typically 25), in contrast to e.g. global basis
functions such as spherical harmonics.</p></list-item><list-item>
      <p>Discontinuities in the model that cause discontinuities in the strain Green's
functions are respected by the mesh.</p></list-item><list-item>
      <p>The strain tensor (representing the moment tensor in the
reciprocal case) can be computed on the fly from the stored displacements at
high accuracy.  This reduces the storage by a factor of 2 as the displacement
has 3 degrees of freedom, compared to 6 for the strain.</p></list-item><list-item>
      <p>Since the displacement is continuous also at model
discontinuities and element boundaries, it needs to be stored only once at
all Gauss–Lobatto–Legendre (GLL) points that belong to multiple elements,
reducing the storage by another factor of <inline-formula><mml:math display="inline"><mml:mrow><mml:mn>16</mml:mn><mml:mo>/</mml:mo><mml:mn>25</mml:mn><mml:mo>=</mml:mo><mml:mn>0.64</mml:mn></mml:mrow></mml:math></inline-formula> (see Fig. <xref ref-type="fig" rid="Ch1.F4"/>).</p></list-item><list-item>
      <p>Storing the displacement allows to use force sources as well without any extra
computation or storage requirements.</p></list-item></list></p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F5"><caption><p>Snapshot of one component of the Green's
tensor (<inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mi>r</mml:mi><mml:mi>r</mml:mi><mml:mo>,</mml:mo><mml:mi>r</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>) as represented in the SEM basis for a shortest period of
50s. Discontinuities such as caused by the crustal layers are exactly
represented and the wave field is smooth across doubling layers of the mesh.</p></caption>
          <?xmltex \igopts{width=236.157874pt}?><graphic xlink:href="se-2015-11-f05.pdf"/>

        </fig>

      <?xmltex \floatpos{t}?><fig id="Ch1.F6"><caption><p>One component of the strain Green's tensor
(<inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mi>r</mml:mi><mml:mi>r</mml:mi><mml:mo>,</mml:mo><mml:mi>r</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>) for a distance of 30<inline-formula><mml:math display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> as a function of time and depth
with a shortest period of 2 s. <bold>(a)</bold> SEM basis vs. <bold>(b)</bold> regular sampling
with 1 km distance and <bold>(c)</bold> phase and envelope misfits
<xref ref-type="bibr" rid="bib1.bibx26" id="paren.24"><named-content content-type="pre">EM and PM in the legend, see</named-content></xref>
caused by the regular sampling computed in the period range 1–20 s.
Dashed lines in the left panel sketch the spectral elements. The crustal
discontinuities of ak135f <xref ref-type="bibr" rid="bib1.bibx29" id="paren.25"/> are indicated by
solid lines and lead to discontinuities in <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mi>r</mml:mi><mml:mi>r</mml:mi><mml:mo>,</mml:mo><mml:mi>r</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, which are exactly
represented in the SEM basis.</p></caption>
          <?xmltex \igopts{width=236.157874pt}?><graphic xlink:href="se-2015-11-f06.pdf"/>

        </fig>

      <p>Figure <xref ref-type="fig" rid="Ch1.F5"/> visualizes the spatial representation for a long period mesh
(50 s) for the Rayleigh wave train and the <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mi>r</mml:mi><mml:mi>r</mml:mi><mml:mo>,</mml:mo><mml:mi>r</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> component of the strain Green's
tensor: the strain is smooth also across the doubling layer of the mesh where the
background model <xref ref-type="bibr" rid="bib1.bibx29" id="paren.26"><named-content content-type="pre">ak135f,</named-content></xref> is smooth as well. Still, the
discontinuities of the model and hence the strain are explicitly represented by this
discretization and the resolution of the mesh is adapted to the local wavelength, as for
instance in the crust. Figure <xref ref-type="fig" rid="Ch1.F6"/> shows an example for 2 s
shortest period and compares the SEM discretization to regular depth sampling. In the regular
sampling case with nearest neighbor interpolation, the phase and envelope errors can be
quite large, especially close to the model discontinuities <xref ref-type="bibr" rid="bib1.bibx26" id="paren.27"><named-content content-type="pre">up to 80 % envelope misfit and
4 % phase misfit as defined by</named-content></xref> and for very shallow sources (up to
40 % envelope misfit and 14 % phase misfit).</p>
<sec id="Ch1.S2.SS3.SSS1">
  <title>Finite element mapping</title>

      <?xmltex \floatpos{t}?><fig id="Ch1.F7"><caption><p>Voronoi approximation (colored) of the AxiSEM
mesh (black lines) using the midpoints of the elements (red circles) only,
zoomed onto a doubling layer for a 50 s mesh. For most elements, the
Voronoi cell coincides almost exactly with the AxiSEM element, note
that most of the AxiSEM elements have edges of concentric circles
while the edges of the Voronoi cells are all straight lines. In the worst
case, six AxiSEM elements have to be tested whether a point is inside
or not.</p></caption>
            <?xmltex \igopts{width=236.157874pt}?><graphic xlink:href="se-2015-11-f07.pdf"/>

          </fig>

      <p>One performance-critical step in the spatial scheme is to find the reference coordinates
<inline-formula><mml:math display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">ξ</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="italic">η</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> inside the spectral element that includes a point given in global coordinates <inline-formula><mml:math display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>s</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>. While the opposite mapping is trivial because this is how the elements of the SEM are
defined <xref ref-type="bibr" rid="bib1.bibx32" id="paren.28"><named-content content-type="post">Appendix A1</named-content></xref>, it cannot be generally inverted easily.
<xref ref-type="bibr" rid="bib1.bibx19" id="text.29"/> presents an analytical inverse solution for quadrilateral elements, which
is quite involved and not easy to generalize for the semicircular elements used in
AxiSEM.</p>
      <p>We follow a two-step approach to finding the reference coordinates. First,
we find the six closest element midpoints to
limit the search to a small number of candidate elements in which the point could be.
The number six is specific to the AxiSEM mesh, where each corner point can belong
to a maximum of six elements in the doubling layers, see Fig. <xref ref-type="fig" rid="Ch1.F7"/>. This step
can be seen as approximating the AxiSEM mesh with Voronoi cells. For most points,
the closest midpoint will already indicate the correct element, in the worst case the
second step has to be performed for all six candidates.<?xmltex \hack{\newpage}?></p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F8" specific-use="star"><caption><p>Lanczos kernels used for resampling. For large
values of the parameter <inline-formula><mml:math display="inline"><mml:mi>a</mml:mi></mml:math></inline-formula>, it converges towards the sinc function, which
is the kernel that allows exact reconstruction for bandlimited signals as
stated in the Nyquist sampling theorem <xref ref-type="bibr" rid="bib1.bibx37" id="paren.30"/>.</p></caption>
            <?xmltex \igopts{width=341.433071pt}?><graphic xlink:href="se-2015-11-f09.pdf"/>

          </fig>

      <?xmltex \floatpos{t}?><fig id="Ch1.F9"><caption><p>Resampling using a Lanczos kernel with <inline-formula><mml:math display="inline"><mml:mrow><mml:mi>a</mml:mi><mml:mo>=</mml:mo><mml:mn>12</mml:mn></mml:mrow></mml:math></inline-formula> of a
P arrival velocity seismogram convolved with the source time function from
Fig. <xref ref-type="fig" rid="Ch1.F11"/> recorded at 40<inline-formula><mml:math display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> distance, and the
resampling error multiplied by a factor of 100. The relative error is on
the order of 0.05 % of RMS, see Fig. <xref ref-type="fig" rid="Ch1.F10"/>.</p></caption>
            <?xmltex \igopts{width=236.157874pt}?><graphic xlink:href="se-2015-11-f10.pdf"/>

          </fig>

      <?xmltex \floatpos{t}?><fig id="Ch1.F10"><caption><p>RMS error of the resampling using the first 1800 s
of the seismogram from Fig. <xref ref-type="fig" rid="Ch1.F9"/>. Convergence is reached
around <inline-formula><mml:math display="inline"><mml:mrow><mml:mi>a</mml:mi><mml:mo>=</mml:mo><mml:mn>20</mml:mn></mml:mrow></mml:math></inline-formula>. It does not converge to zero because some high-frequency
energy was neglected in the downsampling, see Fig. <xref ref-type="fig" rid="Ch1.F11"/>.</p></caption>
            <?xmltex \igopts{width=236.157874pt}?><graphic xlink:href="se-2015-11-f11.pdf"/>

          </fig>

      <p>In a second step, the reference coordinates <inline-formula><mml:math display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">ξ</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="italic">η</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> of the given point <inline-formula><mml:math display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mi mathvariant="normal">p</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>z</mml:mi><mml:mi mathvariant="normal">p</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>
are computed for the six candidate elements sorted by the distance of the midpoints. If
both <inline-formula><mml:math display="inline"><mml:mi mathvariant="italic">ξ</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math display="inline"><mml:mi mathvariant="italic">η</mml:mi></mml:math></inline-formula> are in the interval [<inline-formula><mml:math display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula>, 1], the element is found. The coordinates <inline-formula><mml:math display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">ξ</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="italic">η</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> are
computed using an iterative gradient scheme adopted from SPECFEM3D
<xref ref-type="bibr" rid="bib1.bibx25" id="paren.31"/>. Starting from the midpoint of the candidate element, updated
values are found by linear approximation of the inverse mapping:

                  <disp-formula id="Ch1.E2" content-type="numbered"><mml:math display="block"><mml:mrow><mml:mfenced open="(" close=")"><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="italic">ξ</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="italic">η</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>=</mml:mo><mml:mfenced open="(" close=")"><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="italic">ξ</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="italic">η</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>+</mml:mo><mml:msup><mml:mi mathvariant="bold-script">J</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">ξ</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="italic">η</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:mo>⋅</mml:mo><mml:mfenced open="(" close=")"><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi mathvariant="normal">p</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:mi>s</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">ξ</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="italic">η</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>z</mml:mi><mml:mi mathvariant="normal">p</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:mi>z</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">ξ</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="italic">η</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

            with the Jacobian matrix defined as

                  <disp-formula id="Ch1.E3" content-type="numbered"><mml:math display="block"><mml:mrow><mml:mi mathvariant="bold-script">J</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="italic">ξ</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="italic">η</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mfenced close=")" open="("><mml:mtable class="matrix" columnalign="center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mo>∂</mml:mo><mml:mi mathvariant="italic">ξ</mml:mi></mml:msub><mml:mi>s</mml:mi></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mo>∂</mml:mo><mml:mi mathvariant="italic">η</mml:mi></mml:msub><mml:mi>s</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mo>∂</mml:mo><mml:mi mathvariant="italic">ξ</mml:mi></mml:msub><mml:mi>z</mml:mi></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mo>∂</mml:mo><mml:mi mathvariant="italic">η</mml:mi></mml:msub><mml:mi>z</mml:mi></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

            and the mapping <inline-formula><mml:math display="inline"><mml:mrow><mml:mi>s</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="italic">ξ</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="italic">η</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math display="inline"><mml:mrow><mml:mi>z</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="italic">ξ</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="italic">η</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> depending on the element type
as defined in <xref ref-type="bibr" rid="bib1.bibx33" id="text.32"/>. In the AxiSEM mesh, this iteration
converges to numerical accuracy within less than 10 iterations and is not performance
critical for Instaseis as it is only used on the few candidate elements.
Also, this two-step approach requires only the midpoints of all elements in the mesh to be
read from file on initialization and can be implemented efficiently using the kd-tree
provided by the SciPy package (<uri>http://www.scipy.org/</uri>).</p>
</sec>
</sec>
<sec id="Ch1.S2.SS4">
  <title>The temporal scheme</title>

      <?xmltex \floatpos{t}?><fig id="Ch1.F11"><caption><p>Normalized amplitude spectra of the Gaussian source
time function (slip rate) used at 2 s mesh period and a vertical
component synthetic seismogram recorded at 40<inline-formula><mml:math display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> epicentral distance.
The vertical lines denote the resolution of the mesh and the Nyquist
frequency of the downsampling using four samples per mesh period.</p></caption>
          <?xmltex \igopts{width=236.157874pt}?><graphic xlink:href="se-2015-11-f08.pdf"/>

        </fig>

      <p>The design of the temporal scheme is guided by a number of constraints on the spectrum of
the source time function: the spectrum should decay steep enough above the highest
frequency resolved by the mesh, such that the least number of samples according to the
Nyquist criterion can be used without introducing aliasing. On the other hand, it should
not decay too steeply, such that it is still possible to deconvolve and convolve with
another source time function. Additionally, the spectrum should be as flat as possible
within the usable frequency range as well as “earthquake-like” without the necessity of
deconvolution when extracting a seismogram from the database. An actual delta function
as would be required for true Green's functions cannot be represented in a discrete
approximation as it is not bandlimited.</p>
      <p>We found a Gaussian source time function with <inline-formula><mml:math display="inline"><mml:mrow><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>=</mml:mo><mml:mi mathvariant="italic">τ</mml:mi><mml:mo>/</mml:mo><mml:mn>3.5</mml:mn></mml:mrow></mml:math></inline-formula> to fulfill these
requirements, where <inline-formula><mml:math display="inline"><mml:mi mathvariant="italic">τ</mml:mi></mml:math></inline-formula> is the shortest period resolved by the mesh.
Figure <xref ref-type="fig" rid="Ch1.F11"/> shows the amplitude spectra of this source time function as well
as a corresponding velocity seismogram at a distance of 40<inline-formula><mml:math display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula>. The two spectra have
a very similar general shape and decay to 10<inline-formula><mml:math display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula> of the maximum at half the shortest
period. This motivates that sampling with four samples per period will not introduce
aliasing artifacts.</p>
      <p>It is desirable to retrieve seismograms from the database with arbitrary time steps,
which requires interpolation or resampling. Popular time domain schemes such as
interpolation by low-order polynomials or splines do not work well close to the Nyquist
frequency. On the other hand, frequency domain resampling by zero-padding the discrete
Fourier transform of the signal can only resample to rational multiples of the original
sampling interval.  Finally, the kernel from the theoretically exact reconstruction
according to the Nyquist–Shannon sampling theorem (i.e. the sinc function) has infinite
support which renders it impractical as well <xref ref-type="bibr" rid="bib1.bibx7" id="paren.33"><named-content content-type="pre">see</named-content><named-content content-type="post">Sect. 10.3 for an extended
introduction to interpolation</named-content></xref>.</p>
      <p>Therefore, we adopt the Lanczos resampling scheme, which is popular in image processing,
and an approximation to the sinc-resampling with finite support. The Lanczos kernel is
defined as the sinc function multiplied by the Lanczos window function <xref ref-type="bibr" rid="bib1.bibx7" id="paren.34"/>:

                <disp-formula id="Ch1.E4" content-type="numbered"><mml:math display="block"><mml:mrow><mml:mi>L</mml:mi><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mfenced open="{" close=""><mml:mtable class="cases" columnspacing="1em" rowspacing="0.2ex" columnalign="left left" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:mtext>sinc</mml:mtext><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mtext>sinc</mml:mtext><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>/</mml:mo><mml:mi>a</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mtext>if</mml:mtext><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mi>t</mml:mi><mml:mo>∈</mml:mo><mml:mo>[</mml:mo><mml:mo>-</mml:mo><mml:mi>a</mml:mi><mml:mo>,</mml:mo><mml:mi>a</mml:mi><mml:mo>]</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mrow><mml:mtext>else,</mml:mtext><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math display="inline"><mml:mi>a</mml:mi></mml:math></inline-formula> is a parameter to control the number of samples to be used in the
interpolation and the sinc function is defined as

                <disp-formula id="Ch1.E5" content-type="numbered"><mml:math display="block"><mml:mrow><mml:mtext>sinc</mml:mtext><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mi>sin⁡</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="italic">π</mml:mi><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="italic">π</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
      <p>Interpolation is then performed by convolving the discrete signal <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> with
this kernel and evaluating it at the new time samples <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> <xref ref-type="bibr" rid="bib1.bibx7" id="paren.35"/>:

                <disp-formula id="Ch1.E6" content-type="numbered"><mml:math display="block"><mml:mrow><mml:mi>S</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mfenced open="⌊" close="⌋"><mml:msub><mml:mi>t</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>/</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mfenced><mml:mo>-</mml:mo><mml:mi>a</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:mfenced close="⌋" open="⌊"><mml:msub><mml:mi>t</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>/</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mfenced><mml:mo>+</mml:mo><mml:mi>a</mml:mi></mml:mrow></mml:munderover><mml:msub><mml:mi>s</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mi>L</mml:mi><mml:mfenced open="(" close=")"><mml:msub><mml:mi>t</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>/</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi><mml:mo>-</mml:mo><mml:mi>i</mml:mi></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math display="inline"><mml:mrow><mml:mo>⌊</mml:mo><mml:mo>⋅</mml:mo><mml:mo>⌋</mml:mo></mml:mrow></mml:math></inline-formula> denotes the floor function and <inline-formula><mml:math display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:math></inline-formula> the sampling
interval of the original signal.  Figure <xref ref-type="fig" rid="Ch1.F8"/>
shows the Lanczos kernel for different values of <inline-formula><mml:math display="inline"><mml:mi>a</mml:mi></mml:math></inline-formula>, Fig. <xref ref-type="fig" rid="Ch1.F9"/> shows a
practical example of resampling a seismogram. In Fig. <xref ref-type="fig" rid="Ch1.F10"/> we test a
number of values for <inline-formula><mml:math display="inline"><mml:mi>a</mml:mi></mml:math></inline-formula> for the first 1800s  of the same seismogram and we find
<inline-formula><mml:math display="inline"><mml:mrow><mml:mi>a</mml:mi><mml:mo>=</mml:mo><mml:mn>12</mml:mn></mml:mrow></mml:math></inline-formula> to be a reasonable compromise between cost (using 25 samples in the interpolation)
and accuracy (RMS error of 0.03 %).</p>
</sec>
</sec>
<sec id="Ch1.S3">
  <title>Python API</title>

      <?xmltex \floatpos{t}?><fig id="Ch1.F12"><caption><p>The Instaseis Python API demonstrated in
a short interactive Python session. A <monospace>Source</monospace> and a
<monospace>Receiver</monospace> object are created and then passed to the
<monospace>get_seismograms()</monospace> method of an <monospace>InstaseisDB</monospace> object. This
will extract the Green's functions from the databases and perform all
necessary subsequent steps resulting in directly usable three-component
seismograms in form of an ObsPy <monospace>Stream</monospace> object. Please refer to the
Instaseis documentation for details.</p></caption>
        <?xmltex \igopts{width=236.157874pt}?><graphic xlink:href="se-2015-11-f12.pdf"/>

      </fig>

      <p>Instaseis is implemented as a library for the Python programming language with some
performance critical parts written in Fortran. Furthermore it directly
integrates with the ObsPy package <xref ref-type="bibr" rid="bib1.bibx28 bib1.bibx6" id="paren.36"/> and
utilizes the Python bindings to NetCDF 4 <xref ref-type="bibr" rid="bib1.bibx38" id="paren.37"/>.
This enables it to take advantage of
the strong scientific Python ecosystem built on top of the
SciPy Stack (<uri>http://www.scipy.org/</uri>).
Reasons for choosing Python include its growing popularity in the sciences and
it being easy to learn and use while still sufficiently powerful for complex
scenarios. Python is open-source and particularly well suited for big data applications
and the integration with web services and databases which suits the potential uses for
Instaseis.</p>
      <p>Figure <xref ref-type="fig" rid="Ch1.F12"/> shows how to use the Python API in the most
simple case. Instaseis provides an object-oriented interface: in addition to
the shown <monospace>Source</monospace> and <monospace>Receiver</monospace> classes it furthermore provides
<monospace>ForceSource</monospace> and <monospace>FiniteSource</monospace> objects. These can also be
created by providing data in most commonly used file formats like StationXML,
QuakeML, and Standard Rupture Format. Please refer to the Instaseis
documentation for further details (<uri>www.instaseis.net</uri>).
Combining and integrating these features
enables the construction of modern and clean workflows to solve new problems. A
big advantage of this approach is that no temporary files need to be created
and the synthetic seismograms can be extracted from the databases on demand
when and where they are needed.</p>
      <p>The Python API furthermore implements a client/server approach for remote
Instaseis database access over HTTP. This enables organizations to
host high-frequency databases and serve them to users over the internet. This
eliminates the need and upfront cost to calculate, store, and distribute
Instaseis databases for most users while still offering enough
performance for many use cases. The Python interface is data-source
independent: from a usage perspective it does not matter if the databases are
available locally or via the internet.</p>
      <p>Instaseis is developed with a test-driven approach utilizing continuous
integration, i.e. every change in the code is automatically tested for a number of
different python version once committed to the repository. It is well documented, has a
high test coverage, and we intend to maintain it for the next couple of years providing a
solid foundation for future applications built on top of it. It is licensed under the
Lesser GNU General Public License v3.0, the source code and issue tracker are hosted on
GitHub.</p>
</sec>
<sec id="Ch1.S4">
  <title>Benchmarks</title>
<sec id="Ch1.S4.SS1">
  <title>Accuracy</title>

      <?xmltex \floatpos{p}?><fig id="Ch1.F13" specific-use="star"><caption><p>Comparison of vertical displacement seismograms
(bandpass filtered from 50 to 2 s period) for a
moment magnitude <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 5.0 event in 126 km depth under the
Tonga Islands, computed with Instaseis, AxiSEM and
Yspec in the anisotropic PREM model without ocean but including
attenuation. The traces are recorded at the GSN stations indicated in the
map. The zoom windows are depicted with gray rectangles in the record
section and the time scale is relative to the ray-theoretical arrival.
EM and PM <xref ref-type="bibr" rid="bib1.bibx26" id="paren.38"/> denote the envelope and
phase misfit between Instaseis and
Yspec traces in the corresponding time
window.</p></caption>
          <?xmltex \igopts{width=398.338583pt}?><graphic xlink:href="se-2015-11-f13.pdf"/>

        </fig>

      <p>As we already provided some rigorous validation comparing AxiSEM synthetics to a
reference solution <xref ref-type="bibr" rid="bib1.bibx1" id="paren.39"><named-content content-type="pre">Yspec</named-content></xref> in <xref ref-type="bibr" rid="bib1.bibx50 bib1.bibx51" id="text.40"/>,
the purpose of this section is only to confirm that using the new scheme
with reciprocal computations, spatial interpolation and temporal resampling does not
decrease accuracy. Figure <xref ref-type="fig" rid="Ch1.F13"/> shows a record section and some details
for Instaseis, AxiSEM and Yspec seismograms computed in the
anisotropic, visco-elastic PREM model for an event at 126 km depth beneath
Tonga bandpass filtered to 50–2 s period.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F14"><caption><p>Storage requirements of the reciprocal databases for PREM
after zip compression for all three components and several parameter sets
(maximum source depth, components, seismogram length and epicentral distance
range). Dashed lines are fitted functions <inline-formula><mml:math display="inline"><mml:mrow><mml:mi>g</mml:mi><mml:mo>(</mml:mo><mml:mi>f</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mi>a</mml:mi><mml:msup><mml:mi>f</mml:mi><mml:mn>2.7</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula>,
where each point was weighted with the frequency <inline-formula><mml:math display="inline"><mml:mi>f</mml:mi></mml:math></inline-formula> to ensure better fitting
at the higher frequencies. The exponent is slightly smaller than the expected 3 because the zip
compression is more efficient for longer time traces. At long periods,
element sizes are governed by the layer thickness rather than the wavelength,
resulting in the discrepancy from the power law at long periods.</p></caption>
          <?xmltex \igopts{width=236.157874pt}?><graphic xlink:href="se-2015-11-f14.pdf"/>

        </fig>

      <p>While this figure is similar and the AxiSEM and Yspec reference data
actually the same as presented in <xref ref-type="bibr" rid="bib1.bibx51" id="text.41"><named-content content-type="post">Fig. 11</named-content></xref>, it is important to note
that they were generated in very different ways: here we computed a whole Green's
function database for all epicentral distances and down to 700 km source depth
and changing source or receivers would cost a few milliseconds only. In our previous
approach, this would have required a full new AxiSEM simulation on the order of
10 K CPU hours computational cost. Also, in contrast to <xref ref-type="bibr" rid="bib1.bibx51" id="text.42"/>, we used
default mesh parameters for 2 s period and time step close to the stability limit
of the 4th order symplectic time scheme <xref ref-type="bibr" rid="bib1.bibx34" id="paren.43"/>. Still, the phase misfit
<xref ref-type="bibr" rid="bib1.bibx26" id="paren.44"/> is well below 1 % in all zoom windows and the maximum of the
envelope misfit is 2 % for the PPP phase on station ALE.</p>
      <p>The fact that these traces are virtually indistinguishable for such a demanding setup of
wave propagation over 800 wavelengths (waves at 2 s period traveling for
1600 s) verifies that the entire workflow of computing and
querying the database are correctly implemented. In particular, numerical reciprocity
(i.e. the different force and moment sources), on-the-fly calculation of the strain tensor
as well as temporal and spatial sampling have no significant adverse effect on accuracy,
i.e. any remaining errors vanish within numerical accuracy of the forward solver
AxiSEM.</p>

<table-wrap id="Ch1.T1"><caption><p>
I/O performance for a typical setup of AxiSEM on
SuperMUC. The simulation parameters were as follows: 2 s shortest period,
3600 s simulation length, model: ak135f, vertical component, maximum
source depth 700 km. The resulting uncompressed wave field file has a
size of 675 GB. The I/O throughput is not affected much by the number
of CPUs involved. The throughput between different runs varies, which is
probably caused by the changing I/O load on the system.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="5">
     <oasis:colspec colnum="1" colname="col1" align="right"/>
     <oasis:colspec colnum="2" colname="col2" align="left"/>
     <oasis:colspec colnum="3" colname="col3" align="left"/>
     <oasis:colspec colnum="4" colname="col4" align="left"/>
     <oasis:colspec colnum="5" colname="col5" align="right"/>
     <oasis:thead>
       <oasis:row rowsep="1">  
         <oasis:entry colname="col1">#CPUs</oasis:entry>  
         <oasis:entry colname="col2">Runtime</oasis:entry>  
         <oasis:entry colname="col3">I/O time</oasis:entry>  
         <oasis:entry colname="col4">Throughput</oasis:entry>  
         <oasis:entry colname="col5">rel. I/O time</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>  
         <oasis:entry colname="col1">4624</oasis:entry>  
         <oasis:entry colname="col2">1091 s</oasis:entry>  
         <oasis:entry colname="col3">196 s</oasis:entry>  
         <oasis:entry colname="col4">3.44 GB s<inline-formula><mml:math display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula></oasis:entry>  
         <oasis:entry colname="col5">18.0 %</oasis:entry>
       </oasis:row>
       <oasis:row>  
         <oasis:entry colname="col1">2304</oasis:entry>  
         <oasis:entry colname="col2">1802 s</oasis:entry>  
         <oasis:entry colname="col3">281 s</oasis:entry>  
         <oasis:entry colname="col4">2.40 GB s<inline-formula><mml:math display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula></oasis:entry>  
         <oasis:entry colname="col5">15.6 %</oasis:entry>
       </oasis:row>
       <oasis:row>  
         <oasis:entry colname="col1">1152</oasis:entry>  
         <oasis:entry colname="col2">2359 s</oasis:entry>  
         <oasis:entry colname="col3">167 s</oasis:entry>  
         <oasis:entry colname="col4">4.04 GB s<inline-formula><mml:math display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula></oasis:entry>  
         <oasis:entry colname="col5">7.0 %</oasis:entry>
       </oasis:row>
       <oasis:row>  
         <oasis:entry colname="col1">576</oasis:entry>  
         <oasis:entry colname="col2">4482 s</oasis:entry>  
         <oasis:entry colname="col3">193 s</oasis:entry>  
         <oasis:entry colname="col4">3.50 GB s<inline-formula><mml:math display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula></oasis:entry>  
         <oasis:entry colname="col5">4.3 %</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

      <fig id="Ch1.F15"><caption><p>Computational cost in CPU hours (measured on
Monte Rosa: a Cray XE6 for Earth and Piz Daint, a Cray
XC30 for Mars) to generate full Instaseis databases with 1 h
long seismograms for two time schemes: 2nd order Newmark and 4th order
symplectic.</p></caption>
          <?xmltex \igopts{width=236.157874pt}?><graphic xlink:href="se-2015-11-f15.pdf"/>

        </fig>

</sec>
<sec id="Ch1.S4.SS2">
  <title>Database size</title>
      <p>One major constraint for computing a database beside the CPU
cost is the permanent storage requirement. Here, we summarize the most
important parameters and the related scaling of the required disk space. The amount of data scales
with the third power of the highest frequency resolved by the mesh, but zip
compression is slightly more efficient for longer traces, resulting in an empirical
exponent of 2.7, see Fig. <xref ref-type="fig" rid="Ch1.F14"/>. Scaling with the length of the seismograms
is slightly stronger than linear, again because the compression is more efficient on the
zeros before the first P arrival. Scaling with depth and epicentral distance range is
linear, where the prefactor for depth scaling is halved at each doubling layer of the
mesh. The reciprocal databases for vertical (40 %) and horizontal (60 %) components are
computed and therefore usable independently.</p>
      <p>Several examples are shown in Fig. <xref ref-type="fig" rid="Ch1.F14"/>: for Earth, a complete
reciprocal database including all three components, all epicentral distances and sources
down to 700 km and 1 h of seismogram length accurate down to 2 s
period, is about 1 TB in size. Calculating such a database once and storing it on a
central server will give any user arbitrary and immediate access to
short-period synthetic seismograms without any further cost. More specialized databases
are possible: for example to study inner core phases for shallow events in an epicentral
distance from 140 to 160<inline-formula><mml:math display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula>, 200 GB storage suffices to store a
database with a frequency of 2 Hz.</p>
</sec>
<sec id="Ch1.S4.SS3">
  <title>Performance</title>
      <p>To evaluate the overall performance of Instaseis, two distinct parts have to be
analyzed: first, the databases have to be generated with AxiSEM. Though very
efficient, the database generation at short periods is a high-performance computing task.
However, AxiSEM scales well on up to 10 000 cores such that global wave fields can be
computed at the highest frequencies within hours on a supercomputer. Detailed
performance and scaling tests of AxiSEM can be found in <xref ref-type="bibr" rid="bib1.bibx35" id="text.45"/>,
here we just show the total CPU time required to compute full databases (i.e. horizontal
and vertical component) for 1 h long seismograms for two different time schemes
<xref ref-type="bibr" rid="bib1.bibx34" id="paren.46"><named-content content-type="pre">2nd order Newmark and 4th order symplectic</named-content></xref> and two planets
(Earth and Mars) at a variety of resolutions, see Fig. <xref ref-type="fig" rid="Ch1.F15"/>. The
general scaling of AxiSEM is proportional to <inline-formula><mml:math display="inline"><mml:mrow><mml:msup><mml:mi>T</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>, where <inline-formula><mml:math display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula> is the shortest
period resolved by the mesh. The slight discrepancy from this power law at longer periods
is due to the thin crustal layers causing a smaller global time step in the simulation.
Simulations for Mars are approximately a factor of 5 faster than for Earth, due to the
smaller radius.</p>
      <p>The performance of the second part, the seismogram extraction, on the other hand is rarely
limited by raw computing power. It scales linearly with increasing frequency of the
databases' Green's functions and can easily be accomplished on a standard laptop. The
limiting factor in most cases is the latency of the storage system, e.g. the time until
it starts reading from the database. To alleviate this issue we implement a buffering strategy
on the functions reading data from the files: the Green's functions from a whole element
of the numerical grid are read once and cached in memory. If data from the same element is
needed again at a later stage it will already be in memory, thus avoiding repeated disc
access. Once the cache memory limit is reached, the data with the earliest last access
time is deallocated, effectively resulting in a priority queue sorted by last access time.
This optimization is very effective for most common use cases as they oftentimes require
seismograms in a small range of epicentral distances and depths.<?xmltex \hack{\newpage}?></p>
      <p>Instaseis comes with a number of integrated benchmarks to judge its performance
for a certain database on a given system. The benchmarks emulate the computational
requirements and data access patterns of some typical use cases like finite source
simulations and source parameter inversions. Finite sources within the benchmarks are
simulated by calculating waveforms for moment tensor sources on an imaginary fault plane
along the equator ranging from the surface to a depth of 25 km. One source is
calculated for each kilometer in depth until the bottom of the fault is reached. This is
repeated each kilometer along the fault's surface trajectory until the benchmark
terminates. A source parameter inversion is simulated by calculating seismograms from
moment tensor sources randomly scattered within 50 km distance to a fixed point.
Results for four runs are shown in Fig. <xref ref-type="fig" rid="Ch1.F16"/>. As is the case
with all benchmarks they have to be interpreted carefully, nonetheless they demonstrate
the behavior and performance characteristics of Instaseis on real machines.</p>
</sec>
</sec>
<sec id="Ch1.S5">
  <title>Applications</title>
      <p>In this section we depict several possible use cases of Instaseis. This list is
not exhaustive and deliberately unconnected to provide a broad overview.</p>
<sec id="Ch1.S5.SS1">
  <title>Graphical user interface</title>
      <p>To prominently highlight the features and nearly instantaneous seismogram
extraction for arbitrary source and receiver combinations of Instaseis, we
developed a cross-platform graphical user interface (GUI), shown in Fig. <xref ref-type="fig" rid="Ch1.F17"/>.
It ships with the standard Instaseis package and is written in PyQt, a Python
wrapper for the Qt toolkit.</p>
      <p>Most evidently, this may be used for visual inspection and verification of any given
AxiSEM Green's function database. Instaseis' performance permits an
immediate visual feedback to changing parameters. This also delivers quantitative insight
for an intuitive understanding of the features and parameter sensitivities of seismograms.
Examples of this are the polarity flips of first arrivals when crossing a moment tensor's
nodal planes, the triplication of phases for shallow sources, the Hilbert transformed
shape of reflected phases and the relative amplitude of surface waves (especially
overtones) depending on the earthquake depth. Furthermore, the GUI allows the calculation
of seismograms from finite sources and the exploration of waveform differences in
comparison to best-fitting point sources.</p>

      <?xmltex \floatpos{p}?><fig id="Ch1.F16" specific-use="star"><caption><p>
Results of benchmarks for four typical use cases run on different hardware with a
variety of shortest periods. The graphs show the inverse time for the calculation
of the <italic>i</italic>th three-component seismogram. Each run calculated 1000
three-component seismograms, is repeated 10 times with the same random seed, the
top and bottom values are discarded, and the mean of the remaining eight values is
plotted. The CPU and I/O bound scenarios illustrate the speed with a fully
efficient and a deactivated cache, respectively. The two bottom scenarios emulate
real use cases, see the main text for details. Amongst other things they show
the consequence of a too small cache in the source inversion scenario for the
2 s run and the efficiency of the buffer in the finite source scenario for the
same database.</p></caption>
          <?xmltex \igopts{width=426.791339pt}?><graphic xlink:href="se-2015-11-f16.pdf"/>

        </fig>

      <?xmltex \floatpos{p}?><fig id="Ch1.F17" specific-use="star"><caption><p>Screenshot of the Instaseis graphical user
interface (GUI). Aside from quickly exploring the characteristics of a
given Green's function database it is a great tool for understanding and
teaching many features of seismograms. The speed of Instaseis enables an
immediate visual response to changing source and receiver parameters. The
left-hand side shows three-component seismograms where theoretical arrival
times of various seismic phases are overlaid as vertical lines. The bar at
the top is used to change filter and resampling settings and the section on
the right side is used to modify source and receiver parameters.</p></caption>
          <?xmltex \igopts{width=426.791339pt}?><graphic xlink:href="se-2015-11-f17.png"/>

        </fig>

</sec>
<sec id="Ch1.S5.SS2">
  <title>IRIS web-interface</title>
      <p>To enable usage of Instaseis seismograms to a broader community, we aim to remove
all hurdles of computing and storing large databases locally. To this
end, and in collaboration with IRIS, we plan to establish a web interface to the Instaseis
databases. In contrast to the ShakeMovie approach <xref ref-type="bibr" rid="bib1.bibx47" id="paren.47"/>, this
interface will be able to handle arbitrary sources and receivers
independent from catalogue data or other parameter limitations.
The interface and databases will be described and benchmarked in
detail in a separate publication, the status of this project can be viewed on
<uri>http://ds.iris.edu/ds/products/ondemandsynthetics</uri>.</p>
</sec>
<sec id="Ch1.S5.SS3">
  <title>Finite-frequency tomography</title>

      <?xmltex \floatpos{t}?><fig id="Ch1.F18"><caption><p>Computational cost to compute many synthetic
seismograms for finite-frequency tomography with a shortest period of
2 s using different methods. For Yspec we assume that for every
source there are 1000 receivers with 3 components each. The shaded regions
for Instaseis indicate the dependence of the performance on the
actual source receiver distribution, compare
Fig. <xref ref-type="fig" rid="Ch1.F16"/>. Including the cost to generate the
database with AxiSEM, Instaseis breaks even with
Yspec for 14 000 waveforms, which is equivalent to about 5 sources
in this configuration.</p></caption>
          <?xmltex \igopts{width=236.157874pt}?><graphic xlink:href="se-2015-11-f18.pdf"/>

        </fig>

      <?xmltex \floatpos{t}?><fig id="Ch1.F19"><caption><p>Comparison between observed seismograms (black) and
Instaseis synthetics for the Sumatra earthquake on
30 September 2009 with magnitude <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> 7.5 at 82 km depth. Vertical axis labels are
epicentral distances, horizontal is time relative to the ray-theoretical
arrivals. A Gabor filter with 3.7 s central period is applied to all
traces and the synthetics are convolved with an inverted source time function
<xref ref-type="bibr" rid="bib1.bibx41" id="paren.48"/>. The waveforms are aligned by computing relative
time-shifts between data and synthetic seismograms using cross-correlation
(similar to actual finite-frequency tomography).</p></caption>
          <?xmltex \igopts{width=236.157874pt}?><graphic xlink:href="se-2015-11-f19.pdf"/>

        </fig>

      <p>In finite-frequency tomography <xref ref-type="bibr" rid="bib1.bibx36" id="paren.49"><named-content content-type="pre">e.g.</named-content></xref> information is extracted from
recorded seismograms by matched filters in multiple frequency bands <xref ref-type="bibr" rid="bib1.bibx41 bib1.bibx9" id="paren.50"/>.
A matched filter correlates a predicted signal with the measured signal to
detect the predicted signal in the presence of noise. In the case of seismic tomography, a
synthetic seismogram is necessary, which is usually created by convolving a Green's
function with an estimated source-time function. For body waves, short periods down to
1 s are commonly used <xref ref-type="bibr" rid="bib1.bibx43 bib1.bibx18" id="paren.51"><named-content content-type="pre">e.g.</named-content></xref>. Typical data sets
contain thousands of earthquakes <xref ref-type="bibr" rid="bib1.bibx3" id="paren.52"><named-content content-type="pre">e.g.</named-content></xref>, each recorded at hundreds of
stations, resulting in up to a million waveforms. For each of these waveforms, a separate
Green's function has to be calculated, which requires solving the seismic forward problem at
the desired frequencies. For wave propagation methods that solve the forward problem
separately for each event, computing these reference synthetics presents a formidable
computational challenge, which is why previous studies resorted to approximate solutions
like WKBJ <xref ref-type="bibr" rid="bib1.bibx8" id="paren.53"/> or the reflectivity method <xref ref-type="bibr" rid="bib1.bibx13" id="paren.54"/>. The full
method implemented in Yspec <xref ref-type="bibr" rid="bib1.bibx1" id="paren.55"/> is about an order of magnitude faster
than AxiSEM in computing seismograms for a single source. However, at least in the current
implementation, the cost scales linearly with the number of events.</p>
      <p>As Instaseis takes advantage of reciprocity of the Green's function, we can now build the
whole database for all possible sources with only two runs of AxiSEM: one for the vertical
and one for the horizontal components. Figure <xref ref-type="fig" rid="Ch1.F18"/> compares the
computational cost of computing the reference synthetics down to 2 s period assuming
that each event was recorded at 1000 three-component stations. Ignoring the cost of
computing the database, Instaseis is comparable in performance to WKBJ, but actually
returns full seismograms including all phases, see Fig. <xref ref-type="fig" rid="Ch1.F19"/>. In
contrast to WKBJ, where each crustal reverberation has to be defined separately, it
automatically calculates the full crustal response. Also, it appropriately models
diffracted phases such as <italic>Pdiff</italic> and triplicated phases from upper mantle
discontinuities. If we include the database generation, Instaseis breaks even in
computational cost with Yspec already at about 14 000 waveforms, i.e. five events with
1000 three-component stations each. At about <inline-formula><mml:math display="inline"><mml:mrow><mml:mn mathvariant="normal">5</mml:mn><mml:mo>⋅</mml:mo><mml:msup><mml:mn>10</mml:mn><mml:mn mathvariant="normal">8</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> waveforms, the cost of
extracting the seismograms from the database becomes dominant over the database
generation.  Assuming 2000 seismograms per event, this is equivalent to 10 000
earthquakes, i.e. in the order of available earthquake catalogues.  However, generating
seismograms with different source locations or moment-tensor radiation patterns, which is
often necessary in tomography, does not require a new database
generation.<?xmltex \hack{\newpage}?></p>
</sec>
<sec id="Ch1.S5.SS4">
  <title>Probabilistic source inversion</title>
      <p>Uncertainties in source parameters have been shown to have a strong influence on waveform
tomography <xref ref-type="bibr" rid="bib1.bibx49" id="paren.56"/>. Probabilistic point source inversion estimates the
uncertainties of source parameters and their correlation. From these, the effect on
seismic tomography can be estimated <xref ref-type="bibr" rid="bib1.bibx42" id="paren.57"/>. It requires the repeated
calculation of synthetic waveforms for varying moment tensors, depths and source time
functions to calculate the likelihood and posterior probability density of models in a
Bayesian sense. Changing source time function and moment tensor is extremely efficient
from an Instaseis perspective, and the limitation to a fixed epicenter means that
the I/O buffering can be done very efficiently, which is reflected in the <italic>Source Inversion</italic> test case in the benchmark (Fig. <xref ref-type="fig" rid="Ch1.F13"/>).</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F20"><caption><p>Stations used in the source inversion validation (SIV)
exercise. Circles mark 30, 60 and 90<inline-formula><mml:math display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> epicentral
distance. The finite source is a <inline-formula><mml:math display="inline"><mml:mi>M</mml:mi></mml:math></inline-formula> 7.8 strike-slip earthquake in southern
California represented by <inline-formula><mml:math display="inline"><mml:mrow><mml:mo>≈</mml:mo><mml:msup><mml:mn>10</mml:mn><mml:mn mathvariant="normal">5</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> point sources, the beach ball
represents the centroid moment tensor, i.e. the orientation and predominant
direction of slip of the overall fault.</p></caption>
          <?xmltex \igopts{width=236.157874pt}?><graphic xlink:href="se-2015-11-f20.pdf"/>

        </fig>

      <p>From a previous study <xref ref-type="bibr" rid="bib1.bibx42" id="paren.58"/>, we assume that for an inversion for depth, the moment tensor
and the source time function, a 20-dimensional model space has to be sampled, which
requires to perform roughly 60 000 forward simulations.  Using 100 seismic stations and
three-component seismograms, this means that roughly <inline-formula><mml:math display="inline"><mml:mrow><mml:mn>1.8</mml:mn><mml:mo>⋅</mml:mo><mml:msup><mml:mn>10</mml:mn><mml:mn mathvariant="normal">7</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> waveforms have to be
calculated for one source inversion, costing on the order of 50–100 CPU hours
(Fig. <xref ref-type="fig" rid="Ch1.F18"/>).<?xmltex \hack{\newpage}?></p>
</sec>
<sec id="Ch1.S5.SS5">
  <title>Finite sources</title>

      <?xmltex \floatpos{t}?><fig id="Ch1.F21" specific-use="star"><caption><p>Seismograms for the SIV benchmark, Z-component aligned
on the P arrival band-pass filtered between 5 and 100 s period. The labels
denote the station code and epicentral distance.
In the frequency–wave number integration <xref ref-type="bibr" rid="bib1.bibx23" id="paren.59"><named-content content-type="pre">fk,</named-content></xref>,
only direct P and the depth phases were included, while Instaseis
provides full seismograms, including PP, PcP and other phases. Especially for the
stations in less than 40<inline-formula><mml:math display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> distance, the effect is profound, since PP
arrives as a triplicated complex wave train only 70–100 s after P. Due
to the long source duration, the PP arrival overlaps with the direct P wave train
for several stations.</p></caption>
          <?xmltex \igopts{width=398.338583pt}?><graphic xlink:href="se-2015-11-f21.pdf"/>

        </fig>

      <p>Finite sources can be represented in Instaseis by a cloud of point sources
without limitations on the fault geometry or source time functions. Each point source
needs to be attached with a moment tensor, a slip rate function and a time shift relative
to the origin time. These can for instance be retrieved from standard rupture format
(*.srf) or subfault format (*.param) files as provided by the USGS for most events
with <inline-formula><mml:math display="inline"><mml:mrow><mml:mi>M</mml:mi><mml:mo>&gt;</mml:mo><mml:mn>6.5</mml:mn></mml:mrow></mml:math></inline-formula>.  As a show case, we computed the seismograms for the source inversion validation
(SIV) exercise #3 (<uri>http://equake-rc.info</uri>). The source is a <inline-formula><mml:math display="inline"><mml:mi>M</mml:mi></mml:math></inline-formula> 7.8 strike-slip
earthquake on the San Andreas Fault represented by <inline-formula><mml:math display="inline"><mml:mrow><mml:mo>≈</mml:mo><mml:msup><mml:mn>10</mml:mn><mml:mn mathvariant="normal">5</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> point sources, where
each source has a different mechanism and slip rate function. The 52 stations are in
30 to 90<inline-formula><mml:math display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> epicentral distance (see Fig. <xref ref-type="fig" rid="Ch1.F20"/>), where the P wave
arrival is supposed to be well separated (compare Fig. <xref ref-type="fig" rid="Ch1.F1"/>). Excluding the cost of
generating the database, it cost a total of 12 CPU hours to compute the 52 1-hour-long
three-component seismograms accurate down to 5 s.</p>
      <p>Figure <xref ref-type="fig" rid="Ch1.F21"/> compares the Instaseis seismograms to P-phases computed with the
frequency–wave number integration method (fk) by <xref ref-type="bibr" rid="bib1.bibx23" id="text.60"/>, where only direct and
surface reflected phases where taken into account. While the first arriving waves agree to
certain extent with Instaseis providing systematically larger amplitudes, there are
significant differences for later time windows. These are due to additional phase arrivals
within the time window (especially triplicated PP, compare Fig. <xref ref-type="fig" rid="Ch1.F1"/>)
and crustal reverberations not modeled by the fk method. For events with long rupture
durations as in this example (200 s) this suggests that more accurate waveforms
should be beneficial for finite source inversions.</p>
</sec>
<sec id="Ch1.S5.SS6">
  <title>Insight/Mars</title>

      <?xmltex \floatpos{t}?><fig id="Ch1.F22"><caption><p>Seismic waves traveling in Mars after a meteorite
impact at its north pole computed with AxiSEM. P-waves are shown in
blue and S-waves and surface waves in red.</p></caption>
          <?xmltex \igopts{width=236.157874pt}?><graphic xlink:href="se-2015-11-f22.png"/>

        </fig>

      <p>The upcoming NASA-lead Mars Insight mission <xref ref-type="bibr" rid="bib1.bibx4" id="paren.61"/>, to be launched in
March 2016 and scheduled to land September 2016, will deploy a single station with both a
broad-band and a short-period seismometer on Mars. This will be the first
extra-terrestrial seismic mission since the Apollo lunar landings (1969–1972) and Mars
Viking missions (1975) with the goal of elucidating the interior structure of a planet
other than Earth. The instrument will record local, regional, and more distant
marsquakes (including meteorite impacts) and send data back to Earth for analysis.</p>
      <p>Our knowledge of the seismic structure of Mars is limited because of lack of resolution
of currently available areophysical data <xref ref-type="bibr" rid="bib1.bibx22" id="paren.62"><named-content content-type="pre">e.g.,</named-content></xref> and the limited
sensitivity of the Viking seismometers due to their installation on board of the lander.
For this reason, we will generate databases of “reference” seismic waveforms for a
comprehensive collection (order of magnitude 1000) of 1-D Martian models to be used by
modelers and analysts in preparation for the Insight mission. The models are constructed
from current areophysical data (mean mass, mean moment of inertia, tidal Love number, and
tidal dissipation) and thermodynamic modeling methods and summarize our current
understanding of the internal constitution of the planet. AxiSEM and hence
Instaseis can readily be used to propagate waves on Mars, see
Fig. <xref ref-type="fig" rid="Ch1.F22"/>, allowing us to build these databases very efficiently.</p>
</sec>
<sec id="Ch1.S5.SS7">
  <title>Synthetic ambient seismic noise</title>

      <?xmltex \floatpos{t}?><fig id="Ch1.F23" specific-use="star"><caption><p>Synthetic ambient seismic noise cross correlations computed with
Instaseis. Left: 100 000 vertical force sources located in the
oceans and amplitude proportional to the significant wave height from the
NOAA WAVEWATCH III model on 3 January 2015 <xref ref-type="bibr" rid="bib1.bibx45" id="paren.63"/>. Red crosses
indicate the receivers located in Munich and Zurich. Right: cross
correlations of 20 days of noise for (top) evenly distributed noise sources
and (bottom) the sources in the map, the traces are normalized to their
maximum amplitude.</p></caption>
          <?xmltex \igopts{width=497.923228pt}?><graphic xlink:href="se-2015-11-f23.pdf"/>

        </fig>

      <p>As mentioned in Sect. <xref ref-type="sec" rid="Ch1.S2.SS3"/>, seismograms generated by force sources can be
extracted from the same reciprocal databases. This is particularly interesting for
studying ambient seismic noise. By cross-correlating noise recorded at two stations, using
long enough time series and under certain assumptions (uncorrelated, isotropically
distributed white noise sources), it is possible to retrieve the Green's function of the
medium between the two stations <xref ref-type="bibr" rid="bib1.bibx39 bib1.bibx15" id="paren.64"><named-content content-type="pre">e.g.</named-content></xref>. However,
not all of these assumptions are met in nature, e.g. the noise sources are not evenly
distributed <xref ref-type="bibr" rid="bib1.bibx48 bib1.bibx12 bib1.bibx5" id="paren.65"/>. Also, the noise sources themselves
are not yet well understood, especially with respect to the generation of Love waves in
the microseismic band <xref ref-type="bibr" rid="bib1.bibx31" id="paren.66"/>.</p>
      <p>Instaseis provides a basis to quickly generate noise synthetics to study such
effects, which we illustrate in Fig. <xref ref-type="fig" rid="Ch1.F23"/>. We computed noise cross
correlations, accurate down to a period of 5 s, for a total of 20 days of noise data
generated with 100 000 noise sources. The calculation only took 1 CPU hour.  In the
first case, the noise sources  consist of vertical forces with a random source-time
function, all have the same amplitude and are distributed evenly on the globe.  The
resulting cross correlation is in good agreement with the Green's function, which is
obtained by introducing an impulse source at each of the stations in Zurich and Munich.
In the second case, sources are located in the oceans only, their amplitude proportional
to the significant wave height <xref ref-type="bibr" rid="bib1.bibx16" id="paren.67"/>. For the two stations located in
Zurich and Munich, the close sources are thus solely located in the west, which leads to
strong asymmetry in the retrieved correlations <xref ref-type="bibr" rid="bib1.bibx44" id="paren.68"/>. Instaseis
thus enables users to study noise on the global scale across the microseismic band, by
generating realistic waveforms at negligible cost.</p>
</sec>
</sec>
<sec id="Ch1.S6" sec-type="conclusions">
  <?xmltex \opttitle{Conclusions \& Outlook}?><title>Conclusions &amp; Outlook</title>
      <p>In this paper we presented a readily available methodology and code to extract seismograms
for spherical earth models from a Green's function database. High efficiency in the
generation of databases and very fast extraction (on the order of milliseconds per
seismogram) of highly accurate seismograms (indistinguishable from conventional forward
solvers) can then replace previously employed approximations such as WKBJ, reflectivity or
frequency–wave number integration methods that were used for computational reasons in many
applications of global seismology. Instaseis is open source and available with extensive
documentation at <uri>www.instaseis.net</uri>.</p>
      <p>Future developments include Cartesian local domains with layered models, which are not yet
supported by AxiSEM. As a large fraction of earthquakes are located below oceans
and receivers on continents, it may be beneficial for body waves studies to take advantage
of the axisymmetric capability of AxiSEM and place the receiver on a circular
“island” of continental crust within a global oceanic crustal model.</p>
</sec>

      
      </body>
    <back><notes notes-type="authorcontribution">

      <p>M.  van Driel and L. Krischer implemented Instaseis,
M. van Driel, S. C. Stähler and T. Nissen-Meyer continuously develop AxiSEM and added the
database output, and K. Hosseini prepared the finite-frequency example.
M. van Driel prepared the manuscript with contributions from all co-authors.</p>
  </notes><ack><title>Acknowledgements</title><p>We thank the reviewers C. Tape and D. Al-Attar as well as the editor T. Taira for
their constructive comments that helped to substantially improve the manuscript.
We thank Alex Hutko and Chad Trabant (IRIS) for valuable discussions on the database
selection and implementation as well as user demand. Amir Khan provided the Mars model and
Olaf Zielke the reference data used in Fig. <xref ref-type="fig" rid="Ch1.F21"/>. Celine Hadziioannou
supported us to design the noise example.  We gratefully acknowledge support from the
European Commission (Marie Curie Actions, ITN QUEST, <uri>www.quest-itn.org</uri>) and the
EU-FP7 VERCE project (no. 283543). Data processing and downloading was done using ObsPy
<xref ref-type="bibr" rid="bib1.bibx28 bib1.bibx6" id="paren.69"/> and ObsPyLoad <xref ref-type="bibr" rid="bib1.bibx40" id="paren.70"/>. Computations
were performed at the ETH central HPC cluster (Brutus), the Swiss National Supercomputing
Center (CSCS), the UK National Supercomputing Service (HECToR) and the Leibniz
Supercomputing Center (LRZ), whose support is gratefully acknowledged.<?xmltex \hack{\newline}?><?xmltex \hack{\newline}?>
Edited by: T. Taira</p></ack><?xmltex \hack{\newpage}?><?xmltex \hack{\newpage}?><ref-list>
    <title>References</title>

      <ref id="bib1.bibx1"><label>Al-Attar and Woodhouse(2008)</label><mixed-citation>Al-Attar, D. and Woodhouse, J. H.: Calculation of seismic displacement fields
in self-gravitating earth models – applications of minors vectors and
symplectic structure, Geophys. J. Int., 175, 1176–1208,
<ext-link xlink:href="http://dx.doi.org/10.1111/j.1365-246X.2008.03961.x" ext-link-type="DOI">10.1111/j.1365-246X.2008.03961.x</ext-link>, 2008.</mixed-citation></ref>
      <ref id="bib1.bibx2"><label>Astiz et al.(1996)Astiz, Earle, and Shearer</label><mixed-citation>Astiz, L., Earle, P., and Shearer, P.: Global Stacking of Broadband
Seismograms, Seismol. Res. Lett., 67, 8–18, <ext-link xlink:href="http://dx.doi.org/10.1785/gssrl.67.4.8" ext-link-type="DOI">10.1785/gssrl.67.4.8</ext-link>,
1996.</mixed-citation></ref>
      <ref id="bib1.bibx3"><label>Auer et al.(2014)Auer, Boschi, Becker, Nissen-Meyer, and
Giardini</label><mixed-citation>Auer, L., Boschi, L., Becker, T. W., Nissen-Meyer, T., and Giardini, D.:
Savani : A variable resolution whole-mantle model of anisotropic shear
velocity variations based on multiple data sets, J. Geophys. Res.-Solid
Earth, 119, 3006–3034, <ext-link xlink:href="http://dx.doi.org/10.1002/2013JB010773" ext-link-type="DOI">10.1002/2013JB010773</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bibx4"><label>Banerdt(2013)</label><mixed-citation>
Banerdt, W.: InSight: A Discovery Mission to Explore the Interior of Mars,
44th Lunar Planet. Sci. Conf., The Woodlands, Texas, 18–22 March 2013, 2013.</mixed-citation></ref>
      <ref id="bib1.bibx5"><label>Basini et al.(2013)Basini, Nissen-Meyer, Boschi, Casarotti, Verbeke,
Schenk, and Giardini</label><mixed-citation>Basini, P., Nissen-Meyer, T., Boschi, L., Casarotti, E., Verbeke, J., Schenk,
O., and Giardini, D.: The influence of nonuniform ambient noise on crustal
tomography in Europe, Geochem. Geophys. Geosys., 14, 1471–1492,
<ext-link xlink:href="http://dx.doi.org/10.1002/ggge.20081" ext-link-type="DOI">10.1002/ggge.20081</ext-link>, 2013.</mixed-citation></ref>
      <ref id="bib1.bibx6"><label>Beyreuther et al.(2010)Beyreuther, Barsch, Krischer, Megies, Behr,
and Wassermann</label><mixed-citation>Beyreuther, M., Barsch, R., Krischer, L., Megies, T., Behr, Y., and Wassermann,
J.: ObsPy: A Python Toolbox for Seismology, Seismol. Res. Lett., 81,
530–533, <ext-link xlink:href="http://dx.doi.org/10.1785/gssrl.81.3.530" ext-link-type="DOI">10.1785/gssrl.81.3.530</ext-link>, 2010.</mixed-citation></ref>
      <ref id="bib1.bibx7"><label>Burger and Burge(2009)</label><mixed-citation>
Burger, W. and Burge, M.: Principles of Digital Image Processing: Core
Algorithms, Springer, London, UK, 2009.</mixed-citation></ref>
      <ref id="bib1.bibx8"><label>Chapman(1978)</label><mixed-citation>Chapman, C. H.: A new method for computing synthetic seismograms, Geophys. J.
Int., 54, 481–518, <ext-link xlink:href="http://dx.doi.org/10.1111/j.1365-246X.1978.tb05491.x" ext-link-type="DOI">10.1111/j.1365-246X.1978.tb05491.x</ext-link>, 1978.</mixed-citation></ref>
      <ref id="bib1.bibx9"><label>Colombi et al.(2014)Colombi, Nissen-Meyer, Boschi, and
Giardini</label><mixed-citation>Colombi, A., Nissen-Meyer, T., Boschi, L., and Giardini, D.: Seismic waveform
inversion for core-mantle boundary topography, Geophys. J. Int., 198,
55–71, <ext-link xlink:href="http://dx.doi.org/10.1093/gji/ggu112" ext-link-type="DOI">10.1093/gji/ggu112</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bibx10"><label>Crotwell et al.(1999)Crotwell, Owens, and Ritsema</label><mixed-citation>
Crotwell, H. P., Owens, T. J., and Ritsema, J.: The TauP Toolkit: Flexible
seismic travel-time and ray-path utilities, Seismol. Res. Lett., 70,
154–160, 1999.</mixed-citation></ref>
      <ref id="bib1.bibx11"><label>Friederich and Dalkolmo(1995)</label><mixed-citation>Friederich, W. and Dalkolmo, J.: Complete synthetic seismograms for a
spherically symmetric earth by a numerical computation of the Green's
function in the frequency domain, Geophys. J. Int., 122, 537–550,
<ext-link xlink:href="http://dx.doi.org/10.1111/j.1365-246X.1995.tb07012.x" ext-link-type="DOI">10.1111/j.1365-246X.1995.tb07012.x</ext-link>, 1995.</mixed-citation></ref>
      <ref id="bib1.bibx12"><label>Froment et al.(2010)Froment, Campillo, Roux, Gouédard, Verdel,
and Weaver</label><mixed-citation>
Froment, B., Campillo, M., Roux, P., Gouédard, P., Verdel, A., and Weaver,
R. L.: Estimation of the effect of nonisotropically distributed energy on
the apparent arrival time in correlations, Geophysics, 75, SA85–SA93,
2010.</mixed-citation></ref>
      <ref id="bib1.bibx13"><label>Fuchs and Müller(1971)</label><mixed-citation>
Fuchs, K. and Müller, G.: Computation of synthetic seismograms with the
reflectivity method and comparison with observations, Geophys. J. R. Astron.
Soc., 23, 417–433, 1971.</mixed-citation></ref>
      <ref id="bib1.bibx14"><label>Geller and Ohminato(1994)</label><mixed-citation>Geller, R. J. and Ohminato, T.: Computation of synthetic seismograms and their
partial derivatives for heterogeneous media with arbitrary natural boundary
conditions using the Direct Solution Method, Geophys. J. Int., 116, 421–446,
<ext-link xlink:href="http://dx.doi.org/10.1111/j.1365-246X.1994.tb01807.x" ext-link-type="DOI">10.1111/j.1365-246X.1994.tb01807.x</ext-link>, 1994.</mixed-citation></ref>
      <ref id="bib1.bibx15"><label>Gouédard et al.(2008)Gouédard, Stehly, Brenguier, Campillo,
Colin de Verdière, Larose, Margerin, Roux, Sánchez-Sesma, Shapiro,
and Weaver</label><mixed-citation>Gouédard, P., Stehly, L., Brenguier, F., Campillo, M., Colin de
Verdière, Y., Larose, E., Margerin, L., Roux, P., Sánchez-Sesma,
F. J., Shapiro, N. M., and Weaver, R. L.: Cross-correlation of random
fields: mathematical approach and applications, Geophys. Prospect., 56,
375–393, <ext-link xlink:href="http://dx.doi.org/10.1111/j.1365-2478.2007.00684.x" ext-link-type="DOI">10.1111/j.1365-2478.2007.00684.x</ext-link>, 2008.</mixed-citation></ref>
      <ref id="bib1.bibx16"><label>Gualtieri et al.(2013)Gualtieri, Stutzmann, Capdeville, Ardhuin,
Schimmel, Mangeney, and Morelli</label><mixed-citation>Gualtieri, L., Stutzmann, E., Capdeville, Y., Ardhuin, F., Schimmel, M.,
Mangeney, A., and Morelli, A.: Modelling secondary microseismic noise by
normal mode summation, Geophys. J. Int., 193, 1732–1745,
<ext-link xlink:href="http://dx.doi.org/10.1093/gji/ggt090" ext-link-type="DOI">10.1093/gji/ggt090</ext-link>, 2013.</mixed-citation></ref>
      <ref id="bib1.bibx17"><label>Holtzman et al.(2013)Holtzman, Candler, Turk, and
Peter</label><mixed-citation>
Holtzman, B., Candler, J., Turk, M., and Peter, D.: Seismic Sound Lab: Sights,
Sounds and Perception of the Earth as an Acoustic Space, in: Sound, Music
Motion, edited by: Aramaki, M., Derrien, O., Kronland-Martinet, R., and Ystad,
S. L., Springer, Marseille, France, 161–174, 2013.</mixed-citation></ref>
      <ref id="bib1.bibx18"><label>Hosseini and Sigloch(2015)</label><mixed-citation>
Hosseini, K. and Sigloch, K.: Multi-frequency measurements of core-diffracted
P-waves (Pdiff) for global waveform tomography, Geophys. J. Int.,
in review, 2015.</mixed-citation></ref>
      <ref id="bib1.bibx19"><label>Hua(1990)</label><mixed-citation>
Hua, C.: An inverse transformation for quadrilateral isoparametric elements:
analysis and application, Finite Elem. Anal. Des., 7, 159–166, 1990.</mixed-citation></ref>
      <ref id="bib1.bibx20"><label>Igel et al.(2000)Igel, Takeuchi, Geller, Megnin, Bunge,
Clévédé, Dalkolmo, and Romanowicz</label><mixed-citation>Igel, H., Takeuchi, N., Geller, R. J., Megnin, C., Bunge, H.-P.,
Clévédé, E., Dalkolmo, J., and Romanowicz, B.: The COSY Project:
verification of global seismic modeling algorithms, Phys. Earth Planet.
Inter., 119, 3–23, <ext-link xlink:href="http://dx.doi.org/10.1016/S0031-9201(99)00150-8" ext-link-type="DOI">10.1016/S0031-9201(99)00150-8</ext-link>, 2000.</mixed-citation></ref>
      <ref id="bib1.bibx21"><label>Kawai et al.(2006)Kawai, Takeuchi, and Geller</label><mixed-citation>Kawai, K., Takeuchi, N., and Geller, R. J.: Complete synthetic seismograms up
to 2 Hz for transversely isotropic spherically symmetric media, Geophys. J.
Int., 164, 411–424, <ext-link xlink:href="http://dx.doi.org/10.1111/j.1365-246X.2005.02829.x" ext-link-type="DOI">10.1111/j.1365-246X.2005.02829.x</ext-link>, 2006.</mixed-citation></ref>
      <ref id="bib1.bibx22"><label>Khan and Connolly(2008)</label><mixed-citation>Khan, A. and Connolly, J. A. D.: Constraining the composition and thermal
state of Mars from inversion of geophysical data, J. Geophys. Res., 113,
E07003, <ext-link xlink:href="http://dx.doi.org/10.1029/2007JE002996" ext-link-type="DOI">10.1029/2007JE002996</ext-link>, 2008.</mixed-citation></ref>
      <ref id="bib1.bibx23"><label>Kikuchi and Kanamori(1982)</label><mixed-citation>
Kikuchi, M. and Kanamori, H.: Inversion of complex body waves,
Bull. Seismol. Soc. Am., 72, 491–506, 1982.</mixed-citation></ref>
      <ref id="bib1.bibx24"><label>Komatitsch and Tromp(2002a)</label><mixed-citation>Komatitsch, D. and Tromp, J.: Spectral-element simulations of global seismic
wave propagation-II, three-dimensional models, oceans, rotation and
self-gravitation, Geophys. J. Int., 150, 303–318,
<ext-link xlink:href="http://dx.doi.org/10.1046/j.1365-246X.2002.01716.x" ext-link-type="DOI">10.1046/j.1365-246X.2002.01716.x</ext-link>, 2002a.</mixed-citation></ref>
      <ref id="bib1.bibx25"><label>Komatitsch and Tromp(2002b)</label><mixed-citation>Komatitsch, D. and Tromp, J.: Spectral-element simulations of global seismic
wave propagation-I. Validation, Geophys. J. Int., 149, 390–412,
<ext-link xlink:href="http://dx.doi.org/10.1046/j.1365-246X.2002.01653.x" ext-link-type="DOI">10.1046/j.1365-246X.2002.01653.x</ext-link>, 2002b.</mixed-citation></ref>
      <ref id="bib1.bibx26"><label>Kristekova et al.(2009)Kristekova, Kristek, and
Moczo</label><mixed-citation>Kristekova, M., Kristek, J., and Moczo, P.: Time-frequency misfit and
goodness-of-fit criteria for quantitative comparison of time signals,
Geophys. J. Int., 178, 813–825, <ext-link xlink:href="http://dx.doi.org/10.1111/j.1365-246X.2009.04177.x" ext-link-type="DOI">10.1111/j.1365-246X.2009.04177.x</ext-link>,
2009.</mixed-citation></ref>
      <ref id="bib1.bibx27"><label>Masson et al.(2013)Masson, Cupillard, Capdeville, and
Romanowicz</label><mixed-citation>Masson, Y., Cupillard, P., Capdeville, Y., and Romanowicz, B.: On the
numerical implementation of time-reversal mirrors for tomographic imaging,
Geophys. J. Int., 196, 1580–1599, <ext-link xlink:href="http://dx.doi.org/10.1093/gji/ggt459" ext-link-type="DOI">10.1093/gji/ggt459</ext-link>, 2013.</mixed-citation></ref>
      <ref id="bib1.bibx28"><label>Megies et al.(2011)Megies, Beyreuther, Barsch, Krischer, and
Wassermann</label><mixed-citation>Megies, T., Beyreuther, M., Barsch, R., Krischer, L., and Wassermann, J.:
ObsPy – What Can It Do for Data Centers and Observatories?, Ann. Geophys.,
54, 47–58, <ext-link xlink:href="http://dx.doi.org/10.4401/ag-4838" ext-link-type="DOI">10.4401/ag-4838</ext-link>, 2011.</mixed-citation></ref>
      <ref id="bib1.bibx29"><label>Montagner and Kennett(1996)</label><mixed-citation>Montagner, J. and Kennett, B. L. N.: How to reconcile body-wave and
normal-mode reference earth models, Geophys. J. Int., 125, 229–248,
<ext-link xlink:href="http://dx.doi.org/10.1111/j.1365-246X.1996.tb06548.x" ext-link-type="DOI">10.1111/j.1365-246X.1996.tb06548.x</ext-link>, 1996.</mixed-citation></ref>
      <ref id="bib1.bibx30"><label>Monteiller et al.(2012)Monteiller, Chevrot, Komatitsch, and
Fuji</label><mixed-citation>Monteiller, V., Chevrot, S., Komatitsch, D., and Fuji, N.: A hybrid method to
compute short-period synthetic seismograms of teleseismic body waves in a 3-D
regional model, Geophys. J. Int., 192, 230–247, <ext-link xlink:href="http://dx.doi.org/10.1093/gji/ggs006" ext-link-type="DOI">10.1093/gji/ggs006</ext-link>,
2012.</mixed-citation></ref>
      <ref id="bib1.bibx31"><label>Nishida et al.(2008)Nishida, Kawakatsu, Fukao, and
Obara</label><mixed-citation>Nishida, K., Kawakatsu, H., Fukao, Y., and Obara, K.: Background Love and
Rayleigh waves simultaneously generated at the Pacific Ocean floors,
Geophys. Res. Lett., 35, L16307, <ext-link xlink:href="http://dx.doi.org/10.1029/2008GL034753" ext-link-type="DOI">10.1029/2008GL034753</ext-link>, 2008.</mixed-citation></ref>
      <ref id="bib1.bibx32"><label>Nissen-Meyer et al.(2007a)Nissen-Meyer, Dahlen, and
Fournier</label><mixed-citation>Nissen-Meyer, T., Dahlen, F. A., and Fournier, A.: Spherical-earth Fréchet
sensitivity kernels, Geophys. J. Int., 168, 1051–1066,
<ext-link xlink:href="http://dx.doi.org/10.1111/j.1365-246X.2006.03123.x" ext-link-type="DOI">10.1111/j.1365-246X.2006.03123.x</ext-link>, 2007a.</mixed-citation></ref>
      <ref id="bib1.bibx33"><label>Nissen-Meyer et al.(2007b)Nissen-Meyer, Fournier, and
Dahlen</label><mixed-citation>Nissen-Meyer, T., Fournier, A., and Dahlen, F. A.: A two-dimensional
spectral-element method for computing spherical-earth seismograms – I.
Moment-tensor source, Geophys. J. Int., 168, 1067–1092,
<ext-link xlink:href="http://dx.doi.org/10.1111/j.1365-246X.2006.03121.x" ext-link-type="DOI">10.1111/j.1365-246X.2006.03121.x</ext-link>, 2007b.</mixed-citation></ref>
      <ref id="bib1.bibx34"><label>Nissen-Meyer et al.(2008)Nissen-Meyer, Fournier, and
Dahlen</label><mixed-citation>Nissen-Meyer, T., Fournier, A., and Dahlen, F. A.: A 2-D spectral-element
method for computing spherical-earth seismograms – II. Waves in solid-fluid
media, Geophys. J. Int., 174, 873–888,
<ext-link xlink:href="http://dx.doi.org/10.1111/j.1365-246X.2008.03813.x" ext-link-type="DOI">10.1111/j.1365-246X.2008.03813.x</ext-link>, 2008.</mixed-citation></ref>
      <ref id="bib1.bibx35"><label>Nissen-Meyer et al.(2014)Nissen-Meyer, van Driel, Stähler,
Hosseini, Hempel, Auer, Colombi, and Fournier</label><mixed-citation>Nissen-Meyer, T., van Driel, M., Stähler, S. C., Hosseini, K., Hempel, S., Auer, L.,
Colombi, A., and Fournier, A.: AxiSEM: broadband 3-D seismic wavefields in
axisymmetric media, Solid Earth, 5, 425–445, <ext-link xlink:href="http://dx.doi.org/10.5194/se-5-425-2014" ext-link-type="DOI">10.5194/se-5-425-2014</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bibx36"><label>Nolet(2008)</label><mixed-citation>
Nolet, G.: A Breviary of Seismic Tomography: Imaging the Interior of the Earth
and Sun, Cambridge University Press, Cambridge, UK, 2008.</mixed-citation></ref>
      <ref id="bib1.bibx37"><label>Nyquist(1928)</label><mixed-citation>Nyquist, H.: Certain topics in telegraph transmission theory, Trans. AIEE,
617–644, <ext-link xlink:href="http://dx.doi.org/10.1109/5.989875" ext-link-type="DOI">10.1109/5.989875</ext-link>, 1928.</mixed-citation></ref>
      <ref id="bib1.bibx38"><label>Rew and Davis(1990)</label><mixed-citation>
Rew, R. and Davis, G.: NetCDF: an interface for scientific data access,
Comput. Graph. Appl. IEEE, 10, 76–82, 1990.</mixed-citation></ref>
      <ref id="bib1.bibx39"><label>Sanchez-Sesma(2006)</label><mixed-citation>Sanchez-Sesma, F. J.: Retrieval of the Green's Function from Cross
Correlation: The Canonical Elastic Problem, Bull. Seismol. Soc. Am., 96,
1182–1191, <ext-link xlink:href="http://dx.doi.org/10.1785/0120050181" ext-link-type="DOI">10.1785/0120050181</ext-link>, 2006.</mixed-citation></ref>
      <ref id="bib1.bibx40"><label>Scheingraber et al.(2013)Scheingraber, Hosseini, Barsch, and
Sigloch</label><mixed-citation>Scheingraber, C., Hosseini, K., Barsch, R., and Sigloch, K.: ObsPyLoad: A Tool
for Fully Automated Retrieval of Seismological Waveform Data, Seismol. Res.
Lett., 84, 525–531, <ext-link xlink:href="http://dx.doi.org/10.1785/0220120103" ext-link-type="DOI">10.1785/0220120103</ext-link>, 2013.</mixed-citation></ref>
      <ref id="bib1.bibx41"><label>Sigloch and Nolet(2006)</label><mixed-citation>Sigloch, K. and Nolet, G.: Measuring finite-frequency body-wave amplitudes and
traveltimes, Geophys. J. Int., 167, 271–287,
<ext-link xlink:href="http://dx.doi.org/10.1111/j.1365-246X.2006.03116.x" ext-link-type="DOI">10.1111/j.1365-246X.2006.03116.x</ext-link>, 2006.</mixed-citation></ref>
      <ref id="bib1.bibx42"><label>Stähler and Sigloch(2014)</label><mixed-citation>Stähler, S. C. and Sigloch, K.: Fully probabilistic seismic source inversion – Part 1:
Efficient parameterisation, Solid Earth, 5, 1055–1069, <ext-link xlink:href="http://dx.doi.org/10.5194/se-5-1055-2014" ext-link-type="DOI">10.5194/se-5-1055-2014</ext-link>, 2014.
</mixed-citation></ref><?xmltex \hack{\newpage}?>
      <ref id="bib1.bibx43"><label>Stähler et al.(2012)Stähler, Sigloch, and
Nissen-Meyer</label><mixed-citation>Stähler, S. C., Sigloch, K., and Nissen-Meyer, T.: Triplicated P-wave measurements
for waveform tomography of the mantle transition zone, Solid Earth, 3, 339–354, <ext-link xlink:href="http://dx.doi.org/10.5194/se-3-339-2012" ext-link-type="DOI">10.5194/se-3-339-2012</ext-link>, 2012.</mixed-citation></ref>
      <ref id="bib1.bibx44"><label>Stehly et al.(2006)Stehly, Campillo, and Shapiro</label><mixed-citation>Stehly, L., Campillo, M., and Shapiro, N. M.: A study of the seismic noise
from its long-range correlation properties, J. Geophys. Res., 111, B10306,
<ext-link xlink:href="http://dx.doi.org/10.1029/2005JB004237" ext-link-type="DOI">10.1029/2005JB004237</ext-link>, 2006.</mixed-citation></ref>
      <ref id="bib1.bibx45"><label>Tolman(2009)</label><mixed-citation>
Tolman, H.: User manual and system documentation of WAVEWATCH-III version
3.14, Tech. Rep., US Department of Commerce, National Oceanic and
Atmospheric Administration, National Weather Service, National Centers for Environmental
Prediction, Camp Springs, USA, 276, 2009.</mixed-citation></ref>
      <ref id="bib1.bibx46"><label>Tromp(2007)</label><mixed-citation>
Tromp, J.: Theory and Observations – Forward Modeling and Synthetic
Seismograms: 3-D Numerical Methods, Treatise on Geophysics, 2007.</mixed-citation></ref>
      <ref id="bib1.bibx47"><label>Tromp et al.(2010)Tromp, Komatitsch, Hjörleifsdóttir, Liu,
Zhu, Peter, Bozdag, McRitchie, Friberg, Trabant, and Hutko</label><mixed-citation>Tromp, J., Komatitsch, D., Hjörleifsdóttir, V., Liu, Q., Zhu, H.,
Peter, D., Bozdag, E., McRitchie, D., Friberg, P., Trabant, C., and Hutko,
A.: Near real-time simulations of global CMT earthquakes, Geophys. J. Int.,
183, 381–389, <ext-link xlink:href="http://dx.doi.org/10.1111/j.1365-246X.2010.04734.x" ext-link-type="DOI">10.1111/j.1365-246X.2010.04734.x</ext-link>, 2010.</mixed-citation></ref>
      <ref id="bib1.bibx48"><label>Tsai(2009)</label><mixed-citation>Tsai, V. C.: On establishing the accuracy of noise tomography travel-time
measurements in a realistic medium, Geophys. J. Int., 178, 1555–1564,
<ext-link xlink:href="http://dx.doi.org/10.1111/j.1365-246X.2009.04239.x" ext-link-type="DOI">10.1111/j.1365-246X.2009.04239.x</ext-link>, 2009.</mixed-citation></ref>
      <ref id="bib1.bibx49"><label>Valentine and Woodhouse(2010)</label><mixed-citation>Valentine, A. P. and Woodhouse, J. H.: Reducing errors in seismic tomography:
combined inversion for sources and structure, Geophys. J. Int., 180,
847–857, <ext-link xlink:href="http://dx.doi.org/10.1111/j.1365-246X.2009.04452.x" ext-link-type="DOI">10.1111/j.1365-246X.2009.04452.x</ext-link>, 2010.</mixed-citation></ref>
      <ref id="bib1.bibx50"><label>van Driel and Nissen-Meyer(2014a)</label><mixed-citation>van Driel, M. and Nissen-Meyer, T.: Seismic wave propagation in fully
anisotropic axisymmetric media, Geophys. J. Int., 199, 880–893,
<ext-link xlink:href="http://dx.doi.org/10.1093/gji/ggu269" ext-link-type="DOI">10.1093/gji/ggu269</ext-link>, 2014a.</mixed-citation></ref>
      <ref id="bib1.bibx51"><label>van Driel and Nissen-Meyer(2014b)</label><mixed-citation>van Driel, M. and Nissen-Meyer, T.: Optimized viscoelastic wave propagation
for weakly dissipative media, Geophys. J. Int., 199, 1078–1093,
<ext-link xlink:href="http://dx.doi.org/10.1093/gji/ggu314" ext-link-type="DOI">10.1093/gji/ggu314</ext-link>, 2014b.</mixed-citation></ref>

  </ref-list><app-group content-type="float"><app><title/>

    </app></app-group></back>
    </article>
