Introduction from "The April 18, 2008 Illinois Earthquake: An ANSS Monitoring Success" by Robert B. Herrmann, Mitch Withers, and Harley Benz, SRL 2008:
"The largest-magnitude earthquake in the past 20 years struck near Mt. Carmel in southeastern Illinois on Friday morning, 18 April 2008 at 09:36:59 UTC (04:37 CDT). The Mw 5.2 earthquake was felt over an area that spanned Chicago and Atlanta, with about 40,000 reports submitted to the U.S. Geological Survey (USGS) “Did You Feel It?” system. There were at least six felt aftershocks greater than magnitude 3 and 20 aftershocks with magnitudes greater than 2 located by regional and national seismic networks. Portable instrumentation was deployed by researchers of the University of Memphis and Indiana University (the first portable station was installed at about 23:00 UTC on 18 April). The portable seismographs were deployed both to capture near-source, high-frequency ground motions for significant aftershocks and to better understand structure along the active fault. [...]"
Web page hits at USGS/NEIC during 24 hours after the earthquake:
Some links:
%matplotlib inline
Request information on stations recording close to the event from IRIS using the obspy.fdsn Client
, print the requested station information.
from obspy import UTCDateTime
from obspy.clients.fdsn import Client
t = UTCDateTime(2008, 4, 18, 9, 36, 59)
lon = -87.89
lat = 38.45
client = Client("IRIS")
inventory = client.get_stations(
starttime=t-100, endtime=t+100,
longitude=lon, latitude=lat, maxradius=1,
matchtimeseries=None)
print(inventory)
Download waveform data for the mainshock for one of the stations using the FDSN client (if you get an error, maybe try a different station and/or ask for help). Make the preview plot using obspy.
st = client.get_waveforms("NM", "USIN", "*", "HH*", t, t+50)
st.plot()
Visualize a Spectrogram (if you got time, you can play around with the different parameters for the spectrogram). Working on a copy of the donwloaded data, apply a filter, then trim the requested data to some interesting parts of the earthquake and plot the data again.
st.spectrogram(wlen=1.5, per_lap=0.9, mult=5, log=True)
st2 = st.copy()
st2.filter(type="bandpass", freqmin=1, freqmax=20)
st2.trim(t+3, t+25)
st2.plot()
Define a function plot_data(t)
that fetches waveform data for this station and that shows a preview plot of 20 seconds of data starting at a given time. It should take a UTCDateTime object as the single argument.
def plot_data(time):
st = client.get_waveforms("NM", "USIN", "*", "HH*", time, time+20)
st.plot()
Test your function by calling it for the time of the main shock
plot_data(t)