Earthquake Monitoring
I run my own real-time earthquake detection and early-warning system for the San Francisco Bay Area called Myearthquake. This system is able to intake seismic data, and uses waveform analysis to detect small quakes before they arrive on the USGS websites. It also has alert capability, and can push alerts to SMS, Discord, ntfy, and email. This system is still being developed, however, you can visit the website at myearthquake.dpdns.org.
How it works
This monitoring system uses over 600 stations across California from IRIS/EarthScope's real-time feed, Northern California and Berkeley. Each station has a Python script running an STA/LTA (short-term vs. long-term average) calculation. When the ratio exceeds a calibrated threshold, it is cross-checked with a machine-learning phase-picking model (PhaseNet) to prevent false triggers. Stations often false trigger for various reasons, and this system was implemented after the system detected what looked like a M7.4 earthquake near Merced, California — it turned out to be an electronic failure that had been ruled an earthquake by the STA/LTA calculator.
An alert is sent whenever one station reports an unusually high STA/LTA. If more stations concur, then a full alert, detailing magnitude, depth, and potential impacts with appropriate instructions, is delivered to users. If the quake is far enough away, it will trigger a countdown until shaking arrives. This alert is often preliminary, and does not always accurately reflect the ongoing quake.
Additionally, there is a secondary system which utilizes the
SeisComP scmag module in order to further pinpoint the
earthquake's location and magnitude. This system is far more robust,
individually pinpointing P-wave and S-wave arrival, and has been
able to pinpoint the hypocenter down to less than 0.5 kilometers.
scolv then utilizes these individual phase picks in
order to generate a focal mechanism (beachball) diagram of each
individual quake. Within seconds this information is used to send
out a comprehensive report of the quake with SWARM and ShakeMap v4,
to determine potential impacts and areas that may have suffered
significant damage.
Live station feed — Berkeley
This is a live station feed from PB.B054, a Plate Boundary Observatory borehole station in the Berkeley Hills near Sibley. This is an EHZ station (extremely short-period, high gain, vertical) and is one of the stations contributing to Myearthquake detection. The STA/LTA ratio is calculated on your computer. IRIS SeedLink often causes lag, which is a major limitation in SeedLink early detection, and I'm currently working on building my own seismometer with real-time reporting.
My DIY seismometer
To get around IRIS SeedLink's built-in lag, I've been building my own low-latency station from scratch: an ESP32 microcontroller wired to a SparkFun LSM6DS3 accelerometer, sampling at 50 Hz and streaming straight over WiFi (UDP) to a live dashboard on my own computer — no third-party archive sitting in between, so there's no multi-minute publish delay to wait on. A microSD card backs up every sample locally in case WiFi drops, and since there's no dedicated real-time clock chip on board, timestamps come from an NTP sync over WiFi at boot, extrapolated from the microcontroller's own clock in between syncs.
The receiving software is a self-calibrating STA/LTA detector: it watches 30 seconds of quiet baseline noise and sets its own trigger threshold from that, so it doesn't need to be manually re-tuned if I move it somewhere new. Ground motion is tracked as peak acceleration and, via a leaky integrator, an estimated peak velocity — both feed into a Modified Mercalli Intensity estimate using the actual empirical PGA/PGV-to-intensity relationships from Wald et al. (1999), the same style of formula ShakeMap itself is built on, not a made-up scale. Every trigger automatically saves a snippet of the event (60 seconds before to 60 seconds after) to a CSV file and can push a Discord or ntfy alert.
- Sensor: SparkFun LSM6DS3 6-DOF IMU — accelerometer only (gyroscope disabled to save power), ±2g range for the best resolution on small ground motion
- Sample rate: 50 Hz
- Link: WiFi → UDP, straight to a local dashboard, no cloud archive in the path
- Backup: local microSD logging in case WiFi drops
- Detection: self-calibrating STA/LTA, re-tunable to wherever it's mounted with a keypress
Other tools
- SeismoPhone — a tool that turns your phone's accelerometer into a makeshift seismometer. Can be used to detect earthquakes and connect to other devices in order to build networks.
→ Live, up-to-the-minute earthquake lists (California + major worldwide) are on the Earthquake List page.