Comparing Event Catalogs

Not ObsPy specific but I’m working on a project that is essentially comparing event catalogs. Has anyone done anything similar? Any resources you could point me to related to doing something like this? I’d like to identify what events are common between the two catalogs. They location/time may not exactly be the same, but still might describe the same earthquake. Thanks for any tips/guidance.

Hi @schodur - good question and painfully common in seismology! My take on this is here as part of a magnitude inversion code. The function find_matching_events takes two catalogs and some time and location thresholds and finds nearby events. It returns a dictionary of matching event-ids. When multiple events within the thresholds that you set are found then the “closest” in space and time is returned.

I wrote this for fairly large catalogs (I have been using it for a catalog of 33k events), so some of the more “odd” things in there are for efficiency.

Hope this helps.

1 Like

I agree, if proper unique/global event IDs are not present and thus can not be used to “compare” catalogs (different sources of data etc.), comparing by a combination of origin time and location (and as a last step pick times, ideally) is likely your only chance.

Marking as solved for now.

You can also use the similarity of arrival times in case you want to match an erroneous location with a better one…
Here’s my take, however without such functionality :sweat: : https://github.com/FMassin/py-NnK/blob/b926e4243bc6a31dd0c4fb0aa4d8aeee7e35b6e7/eew/catalog_addons.py#L401

1 Like