Napojení ObsPy na datová centra (EIDA, IRIS)

Způsob napojení (klientské rozhraní)

  • FDSN
  • ArcLink
  • SeedLink
  • EarthWorm
  • NEIC
  • Syngine

Stahované produkty

  • seismické signály
  • staniční metadata
  • zemětřesná metadata
  • jiné (např. syntetické signály)
  • IRIS
  • EIDA: nódy ODC, GFZ, RESIF, INGV, ETHZ, BGR, NIEP, KOERI, NOA, (LMU)
  • a další:
In [1]:
from obspy.clients.fdsn.header import URL_MAPPINGS
for key in sorted(URL_MAPPINGS.keys()):
    print("{0:<7} {1}".format(key,  URL_MAPPINGS[key]))
BGR     http://eida.bgr.de
EMSC    http://www.seismicportal.eu
ETH     http://eida.ethz.ch
GEONET  http://service.geonet.org.nz
GFZ     http://geofon.gfz-potsdam.de
ICGC    http://ws.icgc.cat
INGV    http://webservices.ingv.it
IPGP    http://eida.ipgp.fr
IRIS    http://service.iris.edu
ISC     http://isc-mirror.iris.washington.edu
KOERI   http://eida.koeri.boun.edu.tr
LMU     http://erde.geophysik.uni-muenchen.de
NCEDC   http://service.ncedc.org
NIEP    http://eida-sc3.infp.ro
NOA     http://eida.gein.noa.gr
ODC     http://www.orfeus-eu.org
ORFEUS  http://www.orfeus-eu.org
RESIF   http://ws.resif.fr
SCEDC   http://service.scedc.caltech.edu
TEXNET  http://rtserve.beg.utexas.edu
USGS    http://earthquake.usgs.gov
USP     http://sismo.iag.usp.br

FDSN nebo ArcLink?

Když to jde, používejte FDSN rozhraní.

FDSN služby:

EIDA status Aktuální status služeb u EIDA nódů

In [2]:
%pylab inline
from __future__ import print_function
import matplotlib.pylab as plt
plt.style.use('ggplot')
plt.rcParams['figure.figsize'] = 12, 8
import warnings
warnings.filterwarnings("ignore")
Populating the interactive namespace from numpy and matplotlib

Clienty pro FDSN a Arclink přenosy si pro lepší přehlednost přejmenujeme:

In [3]:
from obspy.clients.fdsn import Client as Client_FDSN
from obspy.clients.arclink import Client as Client_Arclink
from obspy.core import UTCDateTime

Stažení zemětřesných metadat

Způsob stažení: Client_FDSN.get_events()
Datacentra poskytující eventy:

  • ISC - obsahuje i finální ISC katalog
  • USGS - obsahuje i ~ NEIC PDE katalog
  • IRIS viz https://service.iris.edu/fdsnws/event/1/
    - kompilace existujících katalogů
    - poskytne eventy z ISC finálního katalogu, když existuje, a z NEIC PDE katalogu v období, kdy ISC ještě není
    - ALE: není aktualizovaný a obsahuje díry!

Nadefinujeme si jiný způsob vypsání informací ze zemětřesných metadat než je print(catalog):

In [4]:
def print_cat(catalog):
    """
    Jiný výpis než print(catalog)
    """
    for event in catalog:
        out = ''
        origin = None
        if event.origins:
            origin = event.preferred_origin() or event.origins[0]
            origin_time = origin.time.isoformat() + '.00'
            out += '{:s} | {:+7.3f}, {:+8.3f}'.format(origin_time[:22], origin.latitude, origin.longitude)
        if event.magnitudes:
            magnitude = event.preferred_magnitude() or event.magnitudes[0]
            out += ' | {:3.1f} {:<3s}'.format(magnitude.mag, magnitude.magnitude_type)
        try:
            origin_author = origin.creation_info.author or origin.creation_info.agency_id
            origin_author = origin_author.upper()
        except Exception:
            origin_author = 'unk.'
        try:
            magn_author = magnitude.creation_info.author or magnitude.creation_info.agency_id
            magn_author = magn_author.upper()
        except Exception:
            magn_author = 'unk.'
        out += ' | {} ({}/{})'.format(event.event_descriptions[0].text, origin_author, magn_author)
        print(out)
    return

Můžeme předem filtrovat (podle období, oblasti, hloubky, magnituda), které eventy chceme stáhnout:

In [5]:
# PŘÍKLAD NA RADIUS
starttime = UTCDateTime('2010-01-01')
endtime = UTCDateTime()
# stanice PRA
latitude = 50.0692
longitude = 14.4277
# vzdálenost eventů od PRA (ve stupních)
minradius = 25
maxradius = 30

client_USGS = Client_FDSN('USGS')
catalog = client_USGS.get_events(starttime=starttime, endtime=endtime, 
                               latitude=latitude, longitude=longitude,
                               minradius=minradius, maxradius=maxradius)
# vykreslení
plt.rcParams['figure.figsize'] = 12, 8
catalog.plot(projection="ortho"),
Out[5]:
(<matplotlib.figure.Figure at 0xdce0dd8>,)

Kompilace ISC finálního katalogu a NEIC PDE katalogu (aneb nahrazení stahování z nespolehlivého IRIS).

In [6]:
from obspy.core.event.catalog import Catalog

starttime = UTCDateTime('2016-04-01')
endtime = UTCDateTime('2016-06-01')
minmagnitude = 6

catalog = Catalog()

# ISC reviewed catalog
try:
    client = Client_FDSN('ISC')
    cat_ISC = client.get_events(starttime=starttime, endtime=endtime, 
                minmagnitude=minmagnitude, orderby="time-asc", 
                                contributor="ISC")  # jen finální ISC
    # najdi měsíc, kde už ISC finální katalog není
    last_event = cat_ISC[-1]
    origin = last_event.preferred_origin() or last_event.origins[0]
    year = origin.time.year
    month = origin.time.month + 1
    if month > 12:
        year += 1
        month = 1
    starttime_US = UTCDateTime(year=year, month=month, day=1)
    catalog += cat_ISC
except Exception:
    starttime_US = starttime
    
# US catalog (~ NEIC PDE)
try:
    client = Client_FDSN('USGS')
    cat_US = client.get_events(starttime=starttime_US, endtime=endtime, 
                minmagnitude=minmagnitude, orderby="time-asc", 
                                   catalog="us")     # jen ~ NEIC PDE
    catalog += cat_US
except Exception:
    pass
    
print_cat(catalog)
2016-04-01T02:39:07.91 | +33.323, +136.397 | 6.0 mb  | Near south coast of western Honshu (ISC/ISC)
2016-04-01T19:24:58.60 |  -3.528, +144.935 | 5.5 mb  | Near north coast of New Guinea (ISC/ISC)
2016-04-02T05:50:00.53 | +57.068, -158.035 | 5.8 mb  | Alaska Peninsula (ISC/ISC)
2016-04-03T08:23:52.58 | -14.296, +166.863 | 6.1 mb  | Vanuatu Islands (ISC/ISC)
2016-04-06T06:58:48.17 | -14.052, +166.735 | 6.0 mb  | Vanuatu Islands (ISC/ISC)
2016-04-07T03:32:53.04 | -13.933, +166.682 | 5.9 mb  | Vanuatu Islands (ISC/ISC)
2016-04-10T02:14:34.43 |  -4.176, +102.256 | 6.0 mb  | Southern Sumatera (ISC/ISC)
2016-04-10T10:28:57.93 | +36.435,  +71.195 | 6.4 mb  | Afghanistan-Tajikistan border region (ISC/ISC)
2016-04-13T13:55:18.54 | +23.107,  +94.853 | 6.9 mb  | Myanmar-India border region (ISC/ISC)
2016-04-14T12:26:34.56 | +32.754, +130.768 | 5.8 mb  | Kyushu (ISC/ISC)
2016-04-14T21:50:25.97 | -14.457, +166.491 | 5.8 mb  | Vanuatu Islands (ISC/ISC)
2016-04-15T16:25:06.02 | +32.721, +130.744 | 6.2 mb  | Kyushu (ISC/ISC)
2016-04-16T23:58:34.52 |  +0.279,  -79.984 | 6.8 mb  | Near coast of Ecuador (ISC/ISC)
2016-04-18T13:06:10.76 | -19.501, +169.041 | 6.3 mb  | Vanuatu Islands (ISC/ISC)
2016-04-19T05:25:39.42 | -55.783,  -27.423 | 5.9 mb  | South Sandwich Islands region (ISC/ISC)
2016-04-28T19:33:24.40 | -16.104, +167.374 | 6.3 mb  | Vanuatu Islands (ISC/ISC)
2016-04-29T01:33:37.23 | +10.120, -103.860 | 5.8 mb  | Northern East Pacific Rise (ISC/ISC)
2016-05-18T07:57:02.65 |  +0.426,  -79.790 | 6.7 mww | 33km SE of Muisne, Ecuador (US/US)
2016-05-18T16:46:43.86 |  +0.495,  -79.616 | 6.9 mww | 24km NW of Rosa Zarate, Ecuador (US/US)
2016-05-20T18:14:04.67 | -25.566, +129.884 | 6.0 mww | Northern Territory, Australia (US/US)
2016-05-27T04:08:43.95 | -20.810, -178.648 | 6.4 mww | 18km SSE of Ndoi Island, Fiji (US/US)
2016-05-28T05:38:50.55 | -21.972, -178.204 | 6.9 mww | 155km SSE of Ndoi Island, Fiji (US/US)
2016-05-28T09:46:59.78 | -56.241,  -26.935 | 7.2 mww | 53km NNE of Visokoi Island, South Georgia and the South Sandwich Islands (US/US)
2016-05-31T05:23:47.31 | +25.561, +122.546 | 6.4 mww | 94km ENE of Keelung, Taiwan (US/US)

Stažení staničních metadat

Umožňuje routing, umí pouze uložit Dataless SEED

from obspy.clients.arclink import Client
client = Client(user=[email])
client.save_response(route=True)</span>`

FDSN

Umí načíst metadata jako Inventory, případně je uložit jako StationXML.
Starý klient neumožňuje routing:

from obspy.clients.fdsn import Client
client = Client([datacentrum nebo nód])
client.get_stations()</span>

Nový klient umožňuje routing (ale neumí ukládat raw metadata do souborů):

from obspy.clients.fdsn import RoutingClient
client = RoutingClient(["eida-routing" | "iris-federator"])
client.get_stations()</span>`

Podíváme se, kde všude najdeme KHC:

In [7]:
from obspy.clients.fdsn import RoutingClient
client = RoutingClient("iris-federator")
inv_KHC = client.get_stations(network="CZ", station="KHC")

print("{}x : {}".format(len(inv_KHC.networks), inv_KHC.sender))
2x : GFZ,IRIS-DMC

Načteme i odezvy seismometru a porovnáme metadata z dvou různých datacenter:

In [8]:
client_IRIS = Client_FDSN("IRIS")
inv_KHC_fromIRIS = client_IRIS.get_stations(network="CZ", station="KHC", level="response")

client_GFZ = Client_FDSN("GFZ")
inv_KHC_fromGFZ = client_GFZ.get_stations(network="CZ", station="KHC", level="response")

# Vykresli odezvy
fig = plt.figure(figsize=(16,8))
ax1a = plt.subplot2grid((2,2), (0,0))
ax1b = plt.subplot2grid((2,2), (1,0), sharex=ax1a)
ax2a = plt.subplot2grid((2,2), (0,1))
ax2b = plt.subplot2grid((2,2), (1,1), sharex=ax2a)

inv_KHC_fromIRIS.plot_response(0.01, channel="?HZ", axes=(ax1a,ax1b), show=False),
inv_KHC_fromGFZ.plot_response(0.01, channel="?HZ", axes=(ax2a,ax2b), show=False),
ax1a.legend(loc="lower center", ncol=3, fontsize='small')
ax2a.legend(loc="lower center", ncol=3, fontsize='small')
ax1a.set_ylim((1e-4,2e10)); ax2a.set_ylim((1e-4,2e10))
ax1a.set_title('IRIS',loc='left'); ax2a.set_title('GFZ',loc='left')
ax1b.set_xlabel('Frequency [Hz]'); ax2b.set_xlabel('Frequency [Hz]')
ax1a.set_ylabel('Amplitude'); ax1b.set_ylabel('Phase [rad]')
plt.show()

Filtrování staničních metadat:

  • eida-routing - pouze network, station, location, channel, starttime a endtime v současné verzi routingu
  • iris-federator - plné fungování, podobně jako u eventů
In [9]:
from obspy.clients.fdsn import RoutingClient
client = RoutingClient("eida-routing", debug=True, timeout=360)
inv_Z3 = client.get_stations(network="CZ", station="KHC", location="", channel="?HZ")
#inv_Z3.plot(projection='local', color_per_network=True),
Downloading http://www.orfeus-eu.org/eidaws/routing/1/query ...
Sending along the following payload:
----------------------------------------------------------------------
service=station
format=post
alternative=false
CZ KHC -- ?HZ * *
----------------------------------------------------------------------
---------------------------------------------------------------------------
FDSNException                             Traceback (most recent call last)
<ipython-input-9-a23a8d28b9eb> in <module>()
      1 from obspy.clients.fdsn import RoutingClient
      2 client = RoutingClient("eida-routing", debug=True, timeout=360)
----> 3 inv_Z3 = client.get_stations(network="CZ", station="KHC", location="", channel="?HZ")
      4 #inv_Z3.plot(projection='local', color_per_network=True),

<decorator-gen-188> in get_stations(self, **kwargs)

...

C:\ProgramData\Miniconda2\envs\obspy\lib\site-packages\obspy\clients\fdsn\client.pyc in raise_on_error(code, data)
   1708         msg = ("Bad request. If you think your request was valid "
   1709                "please contact the developers.")
-> 1710         raise FDSNException(msg, server_info)
   1711     elif code == 401:
   1712         raise FDSNException("Unauthorized, authentication required.",

FDSNException: Bad request. If you think your request was valid please contact the developers.
In [10]:
#from obspy.clients.fdsn import RoutingClient
client = RoutingClient("iris-federator")
inv_CR = client.get_stations(channel="*HZ", minlatitude=48.5, maxlatitude=51.0, minlongitude=12.0, maxlongitude=19)
inv_CR.plot(projection='local', color_per_network=True),
Out[10]:
(<matplotlib.figure.Figure at 0xe5f0898>,)
In [12]:
### ZBYTEČNÉ, POKUD ZROVNA NEFUNGUJE ODC
#inv_CR_Z3 = client.get_stations(network="Z3", channel="*HZ", 
#                minlatitude=48.5, maxlatitude=51.0, minlongitude=12.0, maxlongitude=19)
#inv_CR_Z3.plot(projection='local', color_per_network=True),

Stažení seismických signálů

routing připnutí odezvy raw mseed
Arclink ano ne ne
FDSN Client ne ano ano
FDSN RoutingClient ano ne ne

Routing: automatické vyhledání příslušného datacentra/nódu
Připnutí odezvy: funguje jako attach_response
RAW mseed: uloží se do souboru v podobě, jak přišel z datacentra

Arclink: některé veřejně nepřístupné sítě umožňují stahování jen přes ArcLink (např. AlpArray)

Možné způsoby stahování

  • get_waveforms - základní filtrování pomocí network, station, location, channel, starttime, endtime (v location a channel fungují ?*)
  • get_waveforms_bulk - umožňuje dávkování požadavků
  • mass_downloader
    - ucelený propracovaný modul z doby, kdy nefungoval FDSN RoutingClient
    - prohledává všechny FDSN centra
    - možnost stahovat signály i metadata

Porovnání signálů stažených pomocí RoutingFDSN a ArcLinkem:

In [13]:
tP = UTCDateTime('2015-08-06T09:34:46')

client = RoutingClient("eida-routing")
st_RFDSN = client.get_waveforms(network="CZ", station="*", channel="*HZ", starttime=tP-60, endtime=tP+60)

st_RFDSN.sort()
print(st_RFDSN[:6])
6 Trace(s) in Stream:
CZ.DPC..BHZ  | 2015-08-06T09:33:41.569500Z - 2015-08-06T09:36:02.219500Z | 20.0 Hz, 2814 samples
CZ.JAVC..BHZ | 2015-08-06T09:33:42.510600Z - 2015-08-06T09:35:49.760600Z | 20.0 Hz, 2546 samples
CZ.JAVC..HHZ | 2015-08-06T09:33:43.641900Z - 2015-08-06T09:35:49.204400Z | 80.0 Hz, 10046 samples
CZ.KHC..BHZ  | 2015-08-06T09:33:36.319500Z - 2015-08-06T09:36:09.119500Z | 20.0 Hz, 3057 samples
CZ.KHC..EHZ  | 2015-08-06T09:33:41.968400Z - 2015-08-06T09:35:46.018400Z | 100.0 Hz, 12406 samples
CZ.KHC..HHZ  | 2015-08-06T09:33:42.538400Z - 2015-08-06T09:35:50.268400Z | 100.0 Hz, 12774 samples
In [14]:
from obspy.core import Stream

stats = ['DPC','JAVC','KHC','KRLC','KRUC','MORC','NKC','OKC','PRA','PRU','PVCC','TREC','UPC','VRAC']
client = Client_Arclink(user="vecsey@ig.cas.cz")

st_Arclink = Stream()
for stat in stats:
    st_Arclink += client.get_waveforms("CZ", stat, "*", "*HZ", starttime=tP-60, endtime=tP+60)
    
st_Arclink.sort()
print(st_Arclink[:6])
6 Trace(s) in Stream:
CZ.DPC..BHZ  | 2015-08-06T09:33:46.019500Z - 2015-08-06T09:35:46.019500Z | 20.0 Hz, 2401 samples
CZ.JAVC..BHZ | 2015-08-06T09:33:46.010600Z - 2015-08-06T09:35:46.010600Z | 20.0 Hz, 2401 samples
CZ.JAVC..HHZ | 2015-08-06T09:33:46.004400Z - 2015-08-06T09:35:46.004400Z | 80.0 Hz, 9601 samples
CZ.KHC..BHZ  | 2015-08-06T09:33:46.019500Z - 2015-08-06T09:35:46.019500Z | 20.0 Hz, 2401 samples
CZ.KHC..EHZ  | 2015-08-06T09:33:46.018400Z - 2015-08-06T09:35:46.018400Z | 100.0 Hz, 12001 samples
CZ.KHC..HHZ  | 2015-08-06T09:33:46.018400Z - 2015-08-06T09:35:46.018400Z | 100.0 Hz, 12001 samples
In [15]:
import numpy as np

def plot_section(st_orig, xlim=None, vline=None, title=None):
    st = st_orig.copy()
    t0 = UTCDateTime()
    for i,tr in enumerate(st):
        tr.detrend('linear')
        tr.stats.distance = float(i)
        if tr.stats.starttime < t0:
            t0 = tr.stats.starttime
    for tr in st:
        n = int(round((tr.stats.starttime - t0) * tr.stats.sampling_rate))
        pad = np.zeros(n) #; pad.fill(np.nan)
        tr.data = np.insert(tr.data, 0, pad)
        #tr.data = np.ma.masked_invalid(np.insert(tr.data, 0, pad))
        tr.stats.starttime -= n * tr.stats.delta
    fig = plt.figure(figsize=(15,9))
    st.plot(fig=fig, type='section', orientation='horizontal', scale=2, alpha=0.8)
    if vline:
        for vl in vline:
            fig.gca().axvline(vl-t0, color='r')
    if xlim:
        fig.gca().set_xlim(xlim)
    if title:
        fig.gca().set_title(title)
    return
In [16]:
plot_section(st_RFDSN, (0,180), (tP-60,tP+60), 'FDSN')
plot_section(st_Arclink, (-34,146), (tP-60,tP+60), 'ArcLink')

ZDE NOTEBOOK UKONČÍME

HINT: Umístění např. AlpArray Z3 stanic v EIDA nódech lze získat i přes webovské rozhraní:
http://www.orfeus-eu.org/eidaws/routing/1/query?net=Z3&start=2014-01-01&format=post

In [17]:
# HINT: které služby poskytuje client:
Client_FDSN("USGS").help('event')
Parameter description for the 'event' service (v1.5.8) of 'http://earthquake.usgs.gov':
The service offers the following optional standard parameters:
    latitude (float)
    longitude (float)
    minradius (float)
    maxradius (float), Default value: 180.0
    magnitudetype (str)
    includeallorigins (bool)
    includeallmagnitudes (bool)
    includearrivals (bool)
    eventid (str)
    limit (int)
    offset (int), Default value: 1
    catalog (str)
    contributor (str)
    updatedafter (UTCDateTime)
The service offers the following non-standard parameters:
    alertlevel (str), Default value: *, Choices: green, yellow, orange, red, *
    callback (str)
    eventtype (str)
    format (str), Default value: quakeml, Choices: quakeml, csv, geojson, kml
    kmlanimated (bool)
    kmlcolorby (str), Default value: age, Choices: age, depth
    maxcdi (float)
    maxgap (float)
    maxmmi (float)
    maxsig (int)
    mincdi (float)
    minfelt (int)
    mingap (float)
    minmmi (float)
    minsig (int)
    producttype (str), , Choices: moment-tensor, focal-mechanism, shakemap, losspager, dyfi
    reviewstatus (str), , Choices: automatic, reviewed
Available catalogs: ci, ak, ew_dm, duputel, at, =c, av, iscgem, pr, ld, nm, nn, unknown, nc, ne, atlas, gcmt, hv, cgs, dr, is, pt, mb, uu, uw, official, us, ismpkansas, iscgemsup, sc, choy, official19631013051759_30, se
Available contributors: ci, official, ak, at, av, ew, pr, ld, nm, nn, nc, np, hv, atlas, cgs, pt, mb, admin, uw, ismp, us, uu, se
In [19]:
# zastaralost eventů z IRIS
client = Client_FDSN("IRIS")
cat = client.get_events(starttime=UTCDateTime("2014-06-01"), endtime=UTCDateTime("2014-08-01"), 
                minmagnitude=6, orderby="time-asc")
print_cat(cat)
2014-06-14T11:11:03.26 | -10.113,  +91.038 | 6.5 MW  | SOUTH INDIAN OCEAN (ISC/GCMT)
2014-06-19T10:17:58.03 | -13.601, +166.830 | 6.2 MW  | VANUATU ISLANDS (ISC/GCMT)
2014-06-23T19:19:17.29 | -30.004, -177.531 | 6.9 MW  | KERMADEC ISLANDS, NEW ZEALAND (ISC/GCMT)
2014-06-23T19:21:48.38 | -30.138, -177.463 | 6.5 MW  | KERMADEC ISLANDS, NEW ZEALAND (ISC/GCMT)
2014-06-23T20:06:19.90 | -29.986, -177.401 | 6.7 MW  | KERMADEC ISLANDS, NEW ZEALAND (ISC/GCMT)
2014-06-23T20:53:09.93 | +51.703, +178.643 | 7.9 MW  | RAT ISLANDS, ALEUTIAN ISLANDS (ISC/GCMT)
2014-06-23T21:11:40.77 | +51.957, +178.443 | 6.0 mb  | RAT ISLANDS, ALEUTIAN ISLANDS (ISC/NEIC)
2014-06-23T21:30:47.05 | +51.940, +178.408 | 6.0 mb  | RAT ISLANDS, ALEUTIAN ISLANDS (ISC/NEIC)
2014-06-23T22:29:51.83 | +51.955, +178.574 | 6.0 mb  | RAT ISLANDS, ALEUTIAN ISLANDS (ISC/NEIC)
2014-06-24T03:15:38.92 | +52.009, +176.782 | 6.4 MW  | RAT ISLANDS, ALEUTIAN ISLANDS (ISC/GCMT)
2014-06-29T05:56:32.86 | +24.451, +142.658 | 6.2 MW  | VOLCANO ISLANDS, JAPAN REGION (ISC/GCMT)
2014-06-29T07:52:56.84 | -55.476,  -28.396 | 6.8 MW  | SOUTH SANDWICH ISLANDS REGION (ISC/GCMT)
2014-06-29T14:32:49.77 | -55.419,  -28.224 | 6.0 MW  | SOUTH SANDWICH ISLANDS REGION (ISC/GCMT)
2014-06-29T15:52:28.45 | -15.101, -175.514 | 6.4 MW  | TONGA ISLANDS (ISC/GCMT)
2014-06-29T17:15:12.13 | -15.235, -175.458 | 6.6 MW  | TONGA ISLANDS (ISC/GCMT)
2014-06-30T19:55:33.71 | +28.391, +138.873 | 6.2 MW  | BONIN ISLANDS, JAPAN REGION (ISC/GCMT)
2014-07-02T05:53:29.20 | -62.301, +155.187 | 6.1 Mwc | BALLENY ISLANDS REGION (NEIC/GCMT)
2014-07-02T05:53:34.20 | -62.310, +154.990 | 6.0 MW  | BALLENY ISLANDS REGION (GCMT/GCMT)
2014-07-03T19:50:07.29 | -30.460, -176.445 | 6.4 Mwc | KERMADEC ISLANDS REGION (NEIC/GCMT)
2014-07-03T19:50:10.30 | -30.350, -176.300 | 6.3 MW  | KERMADEC ISLANDS REGION (GCMT/GCMT)
2014-07-04T15:00:27.86 |  -6.230, +152.808 | 6.4 MW  | NEW BRITAIN REGION, P.N.G. (NEIC/GCMT)
2014-07-05T09:39:27.79 |  +1.933,  +96.939 | 6.1 MW  | OFF W COAST OF NORTHERN SUMATRA (NEIC/GCMT)
2014-07-07T11:23:54.78 | +14.724,  -92.461 | 6.9 MW  | NEAR COAST OF CHIAPAS, MEXICO (NEIC/GCMT)
2014-07-08T12:56:25.92 | -17.686, +168.398 | 6.2 Mwc | VANUATU ISLANDS (NEIC/GCMT)
2014-07-08T12:56:30.90 | -17.790, +168.300 | 6.2 MW  | VANUATU ISLANDS (GCMT/GCMT)
2014-07-11T19:22:00.82 | +37.005, +142.452 | 6.6 Mwc | OFF EAST COAST OF HONSHU, JAPAN (NEIC/GCMT)
2014-07-11T19:22:05.80 | +36.970, +142.390 | 6.5 MW  | OFF EAST COAST OF HONSHU, JAPAN (GCMT/GCMT)
2014-07-14T07:59:57.29 |  +5.714, +126.478 | 6.3 Mwc | MINDANAO, PHILIPPINES (NEIC/GCMT)
2014-07-14T08:00:02.10 |  +5.720, +126.510 | 6.2 MW  | MINDANAO, PHILIPPINES (DJA/GCMT)
2014-07-17T11:49:33.93 | +60.300, -140.337 | 6.0 MW  | SOUTHEASTERN ALASKA (NEIC/GCMT)
2014-07-19T12:27:10.04 | -15.824, -174.452 | 6.3 Mwc | TONGA ISLANDS (NEIC/GCMT)
2014-07-19T12:27:16.00 | -15.640, -174.180 | 6.2 MW  | TONGA ISLANDS (GCMT/GCMT)
2014-07-19T14:14:02.29 | +11.709,  +57.957 | 6.0 MW  | OWEN FRACTURE ZONE REGION (OMAN/GCMT)
2014-07-20T18:32:47.79 | +44.642, +148.784 | 6.3 MW  | KURIL ISLANDS (NEIC/GCMT)
2014-07-21T14:54:41.00 | -19.802, -178.400 | 6.9 MW  | FIJI ISLANDS REGION (NEIC/GCMT)
2014-07-25T10:54:49.72 | +58.306, -136.960 | 6.0 MW  | SOUTHEASTERN ALASKA (NEIC/GCMT)
2014-07-27T01:28:41.40 | +23.860,  -45.590 | 6.1 MW  | NORTHERN MID-ATLANTIC RIDGE (GCMT/GCMT)
2014-07-29T10:46:13.60 | +17.810,  -95.501 | 6.4 MW  | OAXACA, MEXICO (MOS/GCMT)
2014-07-29T13:27:40.08 |  -3.422, +146.769 | 6.1 Mwc | BISMARCK SEA (NEIC/GCMT)
2014-07-29T13:27:47.10 |  -3.340, +146.720 | 6.0 MW  | BISMARCK SEA (GCMT/GCMT)