malcolmw / pykonal

Travel-time calculator based on the fast-marching method solution to the Eikonal equation.
https://malcolmw.github.io/pykonal-docs/
GNU General Public License v3.0
154 stars 55 forks source link

Eliminating head waves in the results? #22

Closed tianzeliu closed 2 years ago

tianzeliu commented 2 years ago

Hi There, I am using PyKonal to compute the travel times of a source located in a low-velocity fault zone sandwiched between two high-velocity mediums. I noticed that the travel-time field in the fault zone seems to contain contributions from fault-zone head waves, whereas in reality, observed first arrivals are usually derived from direct-arrival body waves. Therefore, I am wondering if there is any way to remove the contributions from head waves in the results. Thanks a lot!

Tianze

malcolmw commented 2 years ago

Hi, @tianzeliu,

Yes, PyKonal will always return the shortest traveltime path. This is a feature of the code, so you need to play some tricks to obtain traveltimes/raypaths for any later arrivals.

When you say direct-arrival body waves, what do you mean in terms of ray path? Rays that travel only within the low-velocity fault zone?

- Malcolm

tianzeliu commented 2 years ago

Hi Malcolm, Thanks for your response. Yes, by "direct arrival body waves", I mean the body waves traveling only within the low-velocity fault zone. What tricks do you recommend to retrieve the travel times of the later arrivals? Thanks!

Tianze

malcolmw commented 2 years ago

You can just set the velocity to zero for regions that are "out of bounds." If you set the velocity to zero everywhere outside of the low-velocity zone, then the ray will be constrained to propagate within it.

tianzeliu commented 2 years ago

OK, I will try that. Thanks!

malcolmw commented 2 years ago

No problem! I am going to close this issue, but feel free to re-open if that trick doesn't work for you.

- Malcolm