Hazard Curve Calculation

424 views
Skip to first unread message

Dhrutij Karetha

unread,
May 6, 2022, 3:49:25 PM5/6/22
to OpenQuake Users
Hi, 

I'm currently working on a project which requires some changes in the source code of hazard curve calculation, specifically in the annual rate of exceedance of the ground motion intensity. The annual rate of exceedance of the ground motion intensity( 𝝺(IM>x) ) is the rate of occurrence of earthquakes greater than m_min from the source( 𝝺(M>m_min) ) times the probability of exceeding an IM intensity level x, given the occurrence of an earthquake (P(IM>x)). I've attached an image for reference.

 I've looked into the classical function from https://github.com/gem/oq-engine/blob/master/openquake/hazardlib/calc/hazard_curve.py  
and the get_pmap function from https://github.com/gem/oq-engine/blob/c3bc6fe7f7da78d600edb89aa94ea48184b4217a/openquake/hazardlib/contexts.py
but, I couldn't figure out how 𝝺(IM>x) is calculated. Could you please help me find the specific function/class where this calculation is done? Please let me know if my question is not clear.

Any help or guidance would be appreciated.

Thanks and Regards,
Dhrutij 

Image.png

Marco Pagani

unread,
May 7, 2022, 2:33:20 AM5/7/22
to OpenQuake Users
--
You received this message because you are subscribed to the Google Groups "OpenQuake Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openquake-use...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openquake-users/960327fb-3139-4a3e-8898-e9969576ba5en%40googlegroups.com.

Dhrutij Karetha

unread,
May 8, 2022, 6:24:47 AM5/8/22
to OpenQuake Users
Hey Marco, 

Thank You for the swift reply. I appreciate it. The OQ Science Book is quite insightful, and a lot of functions used in the source code make sense now. I have one follow up question. In the final output hazard curves, the y-axis values are the Probability of exceedance of ground motion intensity and not the mean annual rate of exceedance of the ground motion intensity, right?

Best Regards,
Dhrutij

Dhrutij Karetha

unread,
Jun 7, 2022, 2:33:43 PM6/7/22
to OpenQuake Users
Hi, 

I have one more question. OpenQuake calculates probability of exceedance of ground motion intensity value. What changes should I make in the source code in order to compute the mean annual rate of exceedance value (ν)? 

Any help would be appreciated. 

Thanks and Regards,
Dhrutij 

Anirudh Rao

unread,
Jun 8, 2022, 12:47:30 AM6/8/22
to OpenQuake Users
Hi Dhrutij,

If your seismic source model consists only of Poissonian sources, it might be easier to get the annual rates of exceedance from the exported hazard curves in post-process. The equation to convert probabilities of exceedance in a given time window to annual rates of exceedance is the one used here: https://github.com/gem/oq-engine/blob/engine-3.14/openquake/risklib/scientific.py#L893-L900. This assumes that the ground motion occurrence will also follow a Poissonian distribution in time if you're working with only Poissonian sources.

If your source model also contains non-Poissonian sources, the above conversion equation will not hold. An alternative solution in this case could be to use the event_based hazard calculator (with a sufficiently large effective investigation time to ensure convergence with the classical calculator) and export the generated ground motion fields. You can calculate the annual rates of exceedance of the ground motion values of your interest directly from the ground motion fields, by counting the number of times the value is exceeded and dividing this count by the effective investigation time.

Hope this helps,
Anirudh

Dhrutij Karetha

unread,
Jun 14, 2022, 1:02:40 PM6/14/22
to OpenQuake Users
Hi Anirudh,

Thank you so much for such a detailed explanation. My source model contains non homogeneous Poisson sources so I'll have to use the event based calculator so thank you for suggesting that. 

Thanks and Regards, 
Dhrutij

Reply all
Reply to author
Forward
0 new messages