"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:
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)
Inventory created at 2019-11-04T08:56:59.000000Z Created by: IRIS WEB SERVICE: fdsnws-station | version: 1.1.37 http://service.iris.edu/fdsnws/station/1/query?starttime=2008-04-18... Sending institution: IRIS-DMC (IRIS-DMC) Contains: Networks (5): KY, NM, PN, SY, Z3 Stations (60): KY.MOKY (Morganfield, Kentucky) NM.NHIN (New Harmony,IN) NM.OLIL (Olney Central College Olney, IL) NM.USIN (Univ. of Southern Indiana, Evansville, IN) PN.PPHHS (PPHHS) PN.PPPCH (Princeton Community High School, Princeton, IN, USA) SY.FFIL (FFIL synthetic) SY.OLIL (OLIL synthetic) SY.PPHHS (PPHHS synthetic) SY.PPPCH (PPPCH synthetic) SY.Q44A (Q44A synthetic) SY.Q44B (Q44B synthetic) SY.Q45A (Q45A synthetic) SY.Q46A (Q46A synthetic) SY.R44A (R44A synthetic) SY.R45A (R45A synthetic) SY.R46A (R46A synthetic) SY.S45A (S45A synthetic) SY.S46A (S46A synthetic) SY.USIN (USIN synthetic) SY.WB07 (WB07 synthetic) SY.WB08 (WB08 synthetic) SY.WB09 (WB09 synthetic) SY.WB11 (WB11 synthetic) SY.WB12 (WB12 synthetic) SY.WB13 (WB13 synthetic) SY.WB14 (WB14 synthetic) SY.WB15 (WB15 synthetic) SY.WB16 (WB16 synthetic) SY.WB17 (WB17 synthetic) SY.WB18 (WB18 synthetic) SY.WB19 (WB19 synthetic) SY.WB20 (WB20 synthetic) SY.WB21 (WB21 synthetic) SY.WB22 (WB22 synthetic) SY.WB23 (WB23 synthetic) SY.WB24 (WB24 synthetic) SY.WB25 (WB25 synthetic) SY.WB26 (WB26 synthetic) SY.WB28 (WB28 synthetic) SY.WB29 (WB29 synthetic) SY.WB30 (WB30 synthetic) SY.WB31 (WB31 synthetic) SY.WB32 (WB32 synthetic) SY.WB33 (WB33 synthetic) SY.WB34 (WB34 synthetic) SY.WB35 (WB35 synthetic) SY.WB36 (WB36 synthetic) SY.WB37 (WB37 synthetic) SY.WB38 (WB38 synthetic) SY.WB39 (WB39 synthetic) SY.WB40 (WB40 synthetic) SY.WB41 (WB41 synthetic) SY.WB46 (WB46 synthetic) SY.WB47 (WB47 synthetic) SY.WB48 (WB48 synthetic) SY.WB49 (WB49 synthetic) Z3.MC1 (near USGS Mainshock) Z3.MC2 (between Bellmont and Maud, IL) Z3.MC4 (near Browns, IL) Channels (0):
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