New Live Seismograph Display


A year or so ago, I upgraded my seismograph software from the original IRIS AmaSeis program to an upgraded version based on Java called jAmaSeis.  I ran the new software on a little Asus netbook.  The helicorder display that I uploaded to the Live Seismograph page on this site was just a screen shot of the active window every five minutes.  The little netbook was at its performance limit and the screenshot made it impossible to do any analysis anyway.

This fall I built up a Linux desktop computer running XUbuntu 14.04LTS and installed jAmaSeis on it.  I downloaded from the IRIS website and followed the basic instructions for installation given on the same site.  With a little fiddling around, I got the software running.  I plugged in the Dataq DI-145 USB Analog to Digital converter…the software could not find it.  I fiddled around with it for a long time with no success.  I could see the device appear in /dev as ttyACM0 when I plugged it in.  After giving up on it a couple of times I finally created a symbolic link from ttyACM0 to ttyS32 where the seismograph software would detect it.  I do this manually every time the computer reboots or the ADC is unplugged.  I plan to write a udev rule to do this automatically.

To get the helicorder display for the Live Seismograph page I use an open source package of seismology tools for Python called Obspy.  jAmaSeis writes the data stream in one hour long segments in sac formatted files arranged in a time based directory structure.  The Obspy stream manipulation tools allow one to easily build a continuous 24 hour data stream from the jAmaSeis files and plot it in a moderately flexible way in a Python script.  This method yields several improvements over the screen shot.  The date and time are unambiguously shown on the vertical axis and the traces alternate through four colors to differentiate the hour in which an event occurs more clearly.  The Python script runs as a cron job every five minutes.

The Obspy package also provides tools to parse QuakeML documents which I obtain from a USGS feed inside the same script that plots the data.  After parsing each event, I use the obspy.core.util.locations2degrees tool to find the distance from the epicenter to my station.  The script then annotates the helicorder display with seismic events selected using magnitudes and distances that might be detected with my seismograph.  This selection is arbitrary so there will be some that show on the trace without annotation and others will be annotated when there is nothing showing on the trace.

M4.0 – 8km S of Galesburg, Michigan


A Magnitude 4.0 earthquake occurred in southern Michigan at 12:23 EDT this afternoon generating a very clean signal on my seismograph at Millersburg in northeastern Ohio.  The analysis I did using jAmaseis estimated the distance to the epicenter to be 353 km.  The Google Earth ruler measured 348.5 km.  The signal overlaid on the jAmaseis travel time curves is shown below.


M7.3 – 67km WSW of Jiquilillo, Nicaragua


A Major earthquake, Magnitude 7.3, occurred of the coast of Nicaragua at 03:51:35 2014 October 14 UTC.  The image above shows the trace from my seismograph in the Event mode of the latest version of jAmaSeis.  The distance is computed by dragging the trace around to get the best fit to the travel time curves.  I usually cheat a little by selecting the portion of the trace starting at the actual time of the event.

New Page — Lehman Seismograph Construction Notes

I have added a new page under Seismology/Lehman Seismograph section in response to occasional questions about the construction details of my Lehman seismograph.  I have included some rough dimensions and general layout but in my experience following them exactly is not necessary.  A quick scan of the web based collection of Lehman projects shows an amazing array of designs which apparently work.  The Lehman concept is very forgiving, at least within broad constraints.

I have tried to answer questions I have already received and will add additional material if new questions arise.

M3.5 – 4km ESE of Nelsonville, Ohio


I received an email notification this afternoon that a Magnitude 3.5 earthquake occurred east southeast of Nelsonville, Ohio just before 1:00 pm local time.  My heligraph has been very noisy so I couldn’t really see any signal even though the epicenter was only 79 miles south of Millersburg where I am located.  When I zoomed in on the trace though I could see an excursion at about the right time.  Just to be sure I checked a nearby helicorder located at Kent State University Branch campus in New Philadelphia, one of the OhioSeis network stations.  It showed the first arrival at about 20 seconds past 18:00 UTC, the same as mine. There were 373 felt reports by mid afternoon mostly in southeastern Ohio..


Postscript (April 27, 2014) :

In an email exchange with another amateur seismologist, he had included a link to additional information on using the AmaSeis software.  As I read some of the entries I found an article on analyzing local events so I applied it to this event in Nelsonville, only 79 miles south of my seismograph.  One of the characteristics of local earthquakes is that they have a higher frequency content than more distant teleseismic events. These can be extracted by using a high pass filter on the signal.  Following the lead of the article, I applied a 1.2 second high-pass filter twice to the Nelsonville signal with the results shown below.  Impressive!


Earthquake Activity, May 23-24, 2013

Several strong earthquakes registered on my seismograph in northeastern Ohio during the past 24 hours or so.  Because our internet was down during that time, the “Live Seismograph” was not working.  For readers who watch these things, I thought I would do a brief summary of the activity.


May 23-24, 2013 Helicorder Display

The Magnitude 8.3 earthquake, which occurred at 05:44:49 UTC, in the Sea of Okhotsk dominates the helicorder display. Ordinarily the great depth of the focus, 601 km, would generate relatively small surface waves but the large magnitude cause those phase to still dominate my display.   Note that the travel time curves below automatically scale the trace in a way that the amplitude cannot be compared between them.


M8.3 – Sea of Okhotsk

A second, Magnitude 6.8 earthquake occurred in the same vicinity about 9 hours later (14:56:31 UTC) also at a depth of more than 600 km:


M6.8 – Sea of Okhotsk

The first earthquake of May 24th that registered on my seismograph was a Magnitude 5.9 tremblor in a remote area of Northern California (03:47:08 UTC).  This earthquake occurred  near to the surface at a depth of 11 km with the result that the body phases are minimized relative to the surface phases.:


M5.7 – 11km WNW of Greenville, California

The final earthquake that I list was actually the first in this collection to occur, a Magnitude 7.4 tremblor, originally described as southwest of the Fiji Islands but later amended to read southwest of Tonga to which it was actually closer, at 23 May 2013 17:19:04 UTC.  The focus for this earthquake was also moderately deep at 171 km.


M7.4 – 282km SW of Vaini, Tonga

Again, remember that the scaling of these arrival time plots is not uniform, so the trace amplitudes cannot be compared with one another.

M5.0 – 25km NNE of Shawville, Canada


There was a moderate, Magnitude 5.0, earthquake in southern Ontario, Canada this morning.  It registered as a small but nicely formed signal on my seismograph in northeastern Ohio, showing the P, S, and surface arrivals.  The orientation of my seismograph makes it less sensitive to earthquakes north and south of my location than it is to earthquakes east or west of us.  By my calculation this earthquake was about 456 miles northeast of my location.

USGS Event page is here:


The USGS reduced the magnitude estimate to 4.4 after this post was written.