smousavi05 / EQTransformer

EQTransformer, a python package for earthquake signal detection and phase picking using AI.
https://rebrand.ly/EQT-documentations
MIT License
307 stars 150 forks source link

Differences in .phs and .json file #23

Closed TraziBatine closed 3 years ago

TraziBatine commented 3 years ago

Hi!

I processed my data without any problems, but when I run the association of the phases, I found some differences.

from the .phs file:

20201231 0 539.0245 30.26 15 15.11 5.000.00 DOBS SL HHE 20201231 0 5 0.00 52.85ES 3 DOBS SL HHZ IP 020201231 0 539.28 0.00 0 CRES SL HHE 20201231 0 5 0.00 47.01ES 2 CRES SL HHZ IP 320201231 0 540.20 0.00 0 BOJS SL HHE 20201231 0 5 0.00 45.81ES 2 BOJS SL HHZ IP 320201231 0 540.25 0.00 0 GBRS SL HHE 20201231 0 5 0.00 56.52ES 1 GBRS SL HHZ IP 020201231 0 540.66 0.00 0 200001

from .json file:

200001 -> ['DOBS/SL.DOBS..HHZ20201231T000000Z20210101T000000Z.mseedDOBS2020-12-31 00:05:39.264538', 'CRES/SL.CRES..HHZ20201231T000000Z20210101T000000Z.mseedCRES2020-12-31 00:05:35.749538', 'BOJS/SL.BOJS..HHN20201231T000000Z20210101T000000Z.mseedBOJS2020-12-31 00:05:39.019539', 'GBRS/SL.GBRS..HHE20201231T000000Z20210101T000000Z.mseedGBRS2020-12-31 00:05:40.624536']

The two outputs are not the same, both in number of phases as timing. Is there something I dont understand here?

Thanks!

smousavi05 commented 3 years ago

Hi @bvicic

These two files are not representing a same thing. The main output (.phs) is the result of the association process and as the file format of the Hypoinverse requires the S and P arrivals for a same event on a same stations are written in two separate lines. So it means each two lines in .phs files are 1 event. On the other hand, the .Json file only contains the address for the original mseed files associated for each of these events. This means there can be just as low as half of the row numbers in the .phs file.

TraziBatine commented 3 years ago

Thank you for the clarification! It would be good to add an option to export the associated phases also in some other format, like nonlinloc which is used alot. or maybe simpler, save the obspy cat object?

Ill try to find some time to do that, but if you have a solution at hand (obspy cat object), this could be done fast.

thanks.

smousavi05 commented 3 years ago

@bvicic the GitHub version has additional output option in QuakeML that can be used for NonLinLoc.

TraziBatine commented 3 years ago

thanks! this simplifies everything!