WWU Seismograph on the WWW
(The seismometer that provides data for the seismograph applet.
)
Welcome to the Seismograph on the WWW site at Western
Washington University. First and foremost, you should know that
the central pillar of this site is a Java(TM)
applet. So, in order to fully appreciate this site in all of its
grandeur, it is necessary to have a Java-capable web browser.
Mark Wright of British Columbia, Canada, has caught an earthquake in the act! He manage to capture two images of The Seismolet display during an earthquake near Vancouver Island, BC, on July 19th, 2004. Here is more information about the 'quake. Thanks, Mark.
Table of Contents
What
The seismograph applet is a Java applet that displays
real-time data obtained from a real, live seismometer located at Western
Washington University, in Bellingham, Washington. This means that
if you so chose, you could spend hours upon hours sitting and staring at
the seismograph, waiting so that you could call you're friends up and say,
"Hey, <name>, wakeup! What? Yes, I know that it's 3:00
in the morning. But guess what? There's an earthquake happening
somewhere around Bellingham, Washington! 'Cause I can see it!
It's on the Web! Yeah, because I've got the Internet in my computer!"
The seismograph updates once every second, and has
a data point for every 1/2 second. It displays the output voltage
of the seismometer, pictured above, in millivolts. The range is adjustable,
so that users can magnify the everyday background-noise to make their lives
more exciting, or be more realistic, and watch a nearly straight line.
If you are wondering how an applet can read a seismometer, see How.
Why
The Seismograph Applet has several possible uses,
one of which is demonstrated above. In addition, it:
-
demonstrates that Bellingham isn't a completely quiet town.
-
shows that Java has at least one use other that scolling text in fourteen
different colors.
-
will enable Aaron to finally graduate from WWU. (See Who.)
-
allows an incredibly lucky visitor to witness actual seismic activity,
complete with P, S, and Rayleigh-waves!
Other uses may be invented in the future.
How
Although the seismometer applet is the only part
of the operation that you, the end-user, ever witnesses firsthand, the
applet is just the tip of the proverbial iceberg. Lying beneath the
sea of the Web, connected to the applet by only a thin TCP hose, are the
guts of the whole system. The distinct organs present in the operation
are:
-
The Seismometer - Model S102
from Engineering Acoustics Incorporated
-
The A/D Board - CIO-DAS08Jr/16
from ComputerBoards, Inc.
-
The Computer and Operating System - Benioff,
a 450MHz Intel Pentium III with 400+ MB RAM, and a 1GB HD running NetBSD
1.3
-
The Device Driver - Written in C and compiled into a custom NetBSD kernel.
-
The Data Acquisition Program - Also written in C. Transfers data
to a shared-memory array.
-
The Web Server - The one. The only. Apache.
-
The Data Serving Daemon - Yes, it's written in C too. Spawns child
processes which feed data to applets.
-
The Applet - Written in Java. Graphs
the data it receives from a Data Serving Daemon-child.
There are basically 3 different simultaneous processes
present in this system.
-
Data Acquisition
-
Data Serving and Display
-
Web Serving
The seismometer, the A/D board, the device driver,
and the data acquisition program are all involved in the data acquisition
process. When the seismometer detects a vertical displacement of
the ground that it is sitting upon, it changes the voltage that it outputs,
to reflect that displacement. Meanwhile, the device driver, which
resides in the kernel of NetBSD on Benioff, is causing the A/D board to
capture the signal from the seismograph once every 1/10 of a second.
The data acquisition program reads from the device driver , also at ten
times a second, and copies the data available into a buffer that exists
in shared memory. The buffer is in shared memory so that many programs
can read from it at once.
Web Serving is done by the freeware Apache web server.
It even served out the page you are now reading, however, the web server's
most important function in this system is to serve the Java seismograph
applet out to be run on a web browser, so that the rest of the system has
something to do.
Data serving and display involves the shared-memory
buffer, the data serving daemon, and the seismograph applet. When
the seismograph applet gets executed by someone's web browser, it opens
a TCP connection to the data serving daemon. the daemon then spawn
of a duplicate of itself that starts reading the shared-memory buffer and
sends the data across the TCP connection to the applet as new data arrives
in the buffer. The seismograph applet uses the data it receives to
display a graph of the changing output voltage of the seismometer, which
the applet updates whenever the daemon spawn sends it new data.
The net result of this system is a seismograph on
the web. Pretty cool, huh?
Who
Future
Anticipated future improvements include:
-
Continuous recording of seismometer output for analysis at a later date. DONE!
-
Intelligent recognition and automated recording of significant seismic
events.
-
Applet text labels that are always completely visible, regardless of host
system.
-
Increased size of shared-memory array for full initialization of the applet
graph. DONE!
-
Relocation of the seismometer to a quieter environment, allowing for detection
of weaker seismic signals. DONE!
This page created and maintained by aaron@wcug.wwu.edu.