Real-time monitoring¶
Qseek detects and locates earthquakes in real time from SeedLink streams, and sends alerts for new detections. The setup is the same as for an archive search; only the data provider and the callbacks change.
Stream the waveforms¶
Replace the data_provider with the SeedLink provider. Every client connects to one SeedLink server and requests the listed stations:
"data_provider": {
"provider": "SeedLink",
"clients": [
{
"host": "geofon.gfz.de",
"port": 18000,
"station_selection": [
{"nsl": "GE.RUE.", "channel": "HH?"}
]
}
],
"sds_archive": "data/sds"
}
With sds_archive, Qseek also archives the received waveforms, so you can search them again later, e.g. with station corrections. The SeedLink provider needs slinktool, see SeedLink.
Send alerts¶
Add a Telegram alert to callbacks. It notifies a chat about detections above magnitude_alert, and about swarms: at least rate_alert_count events at or above rate_alert_magnitude within rate_alert_window.
Set the bot token in the environment, not in the configuration, so it is not written into the run directory. Set the chat ID there too, or as chat_id in the configuration:
export QSEEK_TELEGRAM_BOT_TOKEN="<token from BotFather>"
export QSEEK_TELEGRAM_CHAT_ID="<chat id>"
qseek search monitoring.json
For other alerts, write a custom callback.
Watch the search¶
- Web server: the
webserverof the search serves the detections and the state of the running search over HTTP while it runs. - Web UI: explore the detections as they come in with
qseek explore, also on a remote machine through SSH.
Run as a service¶
Qseek reports its state to systemd through sd_notify, so you can run the monitoring as a systemd service of Type=notify that systemd restarts when it stops.