A general to do list for real-time matched-filtering:
[x] run sub detectors via mpisubprocess, write new templates to be added to tribe to disk and read in. This should stop memory duplication, and allow detectors to log to their own file.
[x] add a build-db script to build the template database based on config and starttime
[x] add a simulate real time script to simulate old events
[x] seedlink client for real-time matched filtering
[x] results visualisation (e.g. plot waveforms in real-time and mark detections) - Use PyQT directly, like this? Using bokeh to allow serving
[x] Plot data as it comes in
[x] Plot detection on those data
Note, QTThreads will likely be needed for this - as I have the plotting written at the moment the plot window complains.
[x] catalogue clustering for template database Using obsplus - not clustering
[x] Database management - reason I want to be able to search for all templates within n km of source
some kind of "event" server system?
Use pyASDF to store data, event data and provenance information together (Note that this might be better placed in EQcorrscan itself).
Run an SQL or similar server to hold limited metadata (event origin and path to HDF5 file?).
Need a remote template server that workers can access via web (e.g. run template server continuously on some machine, then spool up AWS instances after earthquakes).
For these kind of long-running things - ensuring that template station info (response and location in particular) are consistent might be important (e.g. don't stack or correlate the wrong stations).
A general to do list for real-time matched-filtering:
mpisubprocess, write new templates to be added to tribe to disk and read in. This should stop memory duplication, and allow detectors to log to their own file.Distribution to do: