Description
ObsPy is the de facto standard tool for processing seismological data using Python. GMT is already heavily used by seismologists. It seems natural to make PyGMT integrate better with ObsPy. This issue can serve as a platform for broad discussion of how we might accomplish this.
On the seismology side in general, we already have Figure.meca()
wrapped. Some GMT plotting commands (namely, sac
) could be wrapped by PyGMT and integrated with standard ObsPy data objects, such as Trace
and Stream
objects. We could even configure Figure.plot()
to take Inventory
objects.
For waveform plotting, imagine:
import pygmt
import obspy
tr = obspy.read()[0]
fig = pygmt.Figure()
fig.coast(...) # Make your map
fig.plot(...) # Plot your stations / event / etc.
fig.sac(trace=tr, ...) # Plot your waveform
fig.show()
(Of course, perhaps we'd want to rename Figure.sac()
for this example...)
We'd want to make ObsPy an optional dependency if we went down this route. I think that most of the work would be related to I/O, type-checking, etc. — as well as surveying the seismology community on what'd be useful.
Do folks have other ideas? Pinging @megies and @krischer in case you have any thoughts on this (thanks).