I am bringing the code I developed across my observatory projects into a common Python framework built on ObsPy. In FLOVOpy, the same tools can help recover a decades-old waveform archive, make a spectrogram from it, or measure signals across a network.
Working with observatory records
- Recover legacy data. Read and convert waveforms from VDAP systems in SUDS format, and recover historical seismic amplitude (RSAM) and spectral amplitude (SSAM) records.
- Manage archives and catalogs. Work with continuous waveforms in SeisComP Data Structure (SDS) archives and event records in Seisan databases. Archive utilities can check station coverage and flag conflicting files before a merge.
- Prepare field data. Ingest recordings from SmartSolo nodes and RT130 recorders and work with the station metadata needed to interpret the waveforms.
Measuring and locating signals
- Visualize tremor. Generate IceWeb/Pensive-style spectrograms to see how the frequency content changes over time. Compute amplitude measures, including reduced displacement, to follow tremor strength over longer intervals.
- Estimate source location. Amplitude source location (ASL) uses differences in signal strength across stations to estimate where a signal originated. The tools support station corrections and maps of candidate source locations.
- Build feature datasets. Compute dozens of waveform metrics for individual events or successive windows of continuous data. These measurements provide inputs for machine-learning workflows such as event classification.
In development
I am migrating functionality from the MATLAB GISMO toolbox, including its waveform cross-correlation toolkit. I also plan to build a Python version of the IceWeb/Pensive monitoring and browsing tools around the existing spectrogram code, and to reimplement PeakMatch so it is more practical to use.