user_supplied arrivals at selected stations
MTUQ has four options for handling the arrival times (pick_type):
- ``'taup'``
calculates P, S arrival times from Tau-P model (uses `obspy.taup.TauPyModel.get_arrival_times`)
- ``'FK_metadata'``
reads P, S arrival times from FK metadata
- ``'SAC_metadata'``
reads P, S arrival times from SAC metadata fields `t5`, `t6`
- ``'user_supplied'``
reads P, S arrival times from columns 8, 10 of `capuaf_file`
At present MTUQ cannot accommodate the case when we want to provide (user_supplied) arrival time information at only selected stations. If we update the arrival time in weight files for only a few stations, leaving others unchanged, it will take the arrival times for other stations as 0. It will be good to have a fallback_option (say 'taup'). In such a case, one can use user_supplied arrival times when available in weight file, and falling back to taup if not supplied.
Agreed that we could improve how user-supplied picks and statics are handled. Perhaps two overall priorities might be
- improve how the capuaf file is handled, e.g. by reading it into a pandas DataFrame
- try to manage the complexity of the
process_datamodule; keep it from becoming more complicated
For adjusting arrival times, perhaps the following might work?
- perform the taup calls in the script that writes the capuaf file
- make adjustments using statics rather than picks
- for specialized cases, implement your own custom data processing function
Hi @rmodrak, @vsilwal, I have been working a couple of times locally with a mixed or auto mode that uses user-supplied origin time unless the origin time in the weight file is zero (it then defaults back to using tau-p). If there is a real need for this, I can add it to the main branch. (Suggestions for a better mode name are welcome we do it this way).
As a second option, I would do as @rmodrak proposed and use statics.