I am facing a problem in understanding the azimuthal gaps (primary and secondary) in seismology. I have searched it lot but not find a suitable solution.

For reference see attached figure, where (a) shows primary azimuthal (b) secondary azimuthal gap

Is there someone who may familiar with concepts of azimuthal gaps (primary and secondary) in seismology. How user can determine these azimuthal gaps, which data is required for their calculation?

If user have earthquakes-stations co-ordinates, is it possible to determine their azimuthal gaps in GMT?

Kindly help me, so I can solve this issue. Thanks.

First google answer on azimuthal gaps seismology shows this

So it seems a problem of computing the angles between the epicenter and pairs of stations an pick the largest.

Don’t recall GMT having a program that returns the azimuth of a pair of points, but the Julia wrapper has invgeod that does it. So it would be a matter of sorting the stations in right order computing the azimuths of each pair epicenter/station, take the differences and pick the maximum.

Thanks for your response. Assuming that “invgeod” as a package in Julia , I installed Julia then tried to install this package in Linux system, but it is not installing and gives error every time.

Can you tell me, how to use “invgeod” in Julia, may be its installation procedure? Thanks.

The package is called GMT. invegeod, but even better a new function called vecangles, are functions of that package. To have access to vecangles you need to install the master version, which you do (in the Julia shell) with

] add GMT#master

Than using GMT
you can now have access to on-line manuals with, e.g.? vecangles

Example usage

julia> invented_pts = [5 5; 10 5; -5 5; 5 -5];
julia> ang, ind = vecangles([0,0], invented_pts)
([18.33043364148392, 71.50413758392085, 179.99999999999997, 90.16542877459528], [1, 2, 4, 3])
# Reorder original points so that they have the same order as ``ang``
julia> invented_pts[ind, :]
4×2 Matrix{Int64}:
5 5
10 5
5 -5
-5 5

I have tested “vecangles” and “invgeod” for calculating azimuthal gaps of below figure;

I use the coordinates of event (red symbol) and station (triangle) from this figure and tested to calculate azimuthal gap of 80 and 160 degree. “vecangles” way I followed;

# for calculation of azimuth gap 80 degree
event_lonlat = [15.5083 45.8169]
station_lonlat = [13.4766 47.0486 ; 11.9893 43.9096]
# command in Julia
ang, ind = vecangles(event_lonlat, station_lonlat)
# output1
([78.03701845531805, 281.96298154468195], [2, 1])
# for calculation of azimuth gap 160 degree
event_lonlat1 = [15.5083 45.8169]
station_lonlat1 = [15.5853 47.2136; 16.4398 43.1354]
# command in Julia
ang, ind = vecangles(event_lonlat1, station_lonlat1)
# output2
([163.55316055595657, 196.44683944404343], [2, 1])

I think , for getting azimuthal gap user have to take difference of 2 azimuth values such as for 80 degree output1 values difference (78 & 281) does not match to 80 degree, same scenario for 160 degree.

Kindly have a look on the way I used for calculation of azimuths (output1 & output2) and azimuthal gaps are correct or not? If not correct so which way I have to follow, please suggest. Thanks.

vecangles already computes the differences in azimuths and is what you are looking for. So you got 78.03 instead of 80 and 163.55 instead 160. I think it’s right and the differences are due decimals in coordinates and roundings/approximations in picture. vecangle does geodesic calculations.
The second value in ang is the complement of 360. This is needed otherwise with several points the angle between the first and last point would not be computed.