Hazard Curve in Event Based PSHA

341 views
Skip to first unread message

Maryam S.

unread,
Jan 26, 2022, 9:21:40 AM1/26/22
to OpenQuake Users
Dear Openquake developers,

I calculate the hazard curve in Event-based myself with the PGAs that I got from OpenQuake per site. I wanted to verify my calculations with the hazard curve I got from Openquake for those sites, (I used "hazard_curves_from_gmfs = true").
For some sites, my curve is slightly different from the OQ`s curve, as you see in the attachment.
.
the error is small but still,  if we use the same input and procedure, plots should be exactly similar. I need to make sure about this part of my calculation:
in case of (number_of_logic_tree_samples = 0) :


T= (investigation_time) * (ses_per_logic_tree_path)* (number of branches in GMPEs logic tree)

Please let me know whether I calculate the catalog time (T) correctly. the version of OQ that I use is 3.11.3.

Thanks and I look forward to hearing from you.
Best Regards,
Maryam

Hcurve1.png

Maryam S.

unread,
Feb 7, 2022, 2:24:26 PM2/7/22
to OpenQuake Users
Can anyone please respond to my question? it is very important for me.
 regardless of the number of faults (with different seismicity) that we have in the source model, we will still calculate the occurrence rate of each event equally as:

the Occurrence rate= 1/T
and the T is =  (investigation_time) * (ses_per_logic_tree_path)* (number of branches in GMPEs logic tree) 

right?

I would appreciate it if you please respond to my question and verify what I wrote.
Regards,
M

Peter Pažák

unread,
Mar 16, 2022, 11:35:22 AM3/16/22
to OpenQuake Users
Hi Maryam,

I guess you did not get any reaction because it is not clear what exactly you did to get the figure.
I wanted to understand, so I did my exercise: I took the example event based calculation of OQ, exported events, realizations and gmfs.

The settings in job.ini are
ses_per_logic_tree_path = 250
investigation_time = 50

and the number of realizations = 4 (2 GMPEs x 2 tectonic regions)

I can see in OQ code what it does:
1. groups ground motion values per realizations
2. calculates exceedance probabilities per realization:
     num_exceeding = {number of times hazard threshold is exceeded}
     poe = 1 - exp(- num_exceeding / ses_per_logic_tree_path)
3. calculates mean exceedance probability by calculating (poe of a rlz x rlz_weight)

In this way I got exactly the curve OQ produces. From the relativity in your figure I guess you did simply
poe = 1 - exp(- num_exceeding / ses_per_logic_tree_path) from the whole set of ground motion fields to get the red curve.
I was also used to calculate a cumulative frequency (by sorting the hazard descending) and this gives
a curve quite similar to the red one.
I tried to weight the counts of events exceeding by the realization weights, got better agreement for smaller poes, but still not good for the whole curve.

Hope this helps a bit
Peter

Dátum: pondelok 7. februára 2022, čas: 20:24:26 UTC+1, odosielateľ: Maryam S.

Maryam S.

unread,
Mar 18, 2022, 2:48:26 PM3/18/22
to OpenQuake Users
Dear Peter,

Thanks a lot for your response and complete explanation. yes I did not calculate per realization but in most of the sites I got the same hazard curve with OQ and just in a few of them I got errors like the red curve above. 
in the equation that you wrote for cumulative frequency, I used a different denominator as 
poe = 1 - exp(- num_exceeding / (ses_per_logic_tree_path *investigation_time*number of GMPEs) )

my main question is about T : what is the duration associated with stochastic event set in your example? the way that I calculate it is 4*50*250=50000, is it correct? I am talking about the T0 in the equation of 2.24 of page 21 of openquake hazard book.


thanks and I look forward to hearing from you.
Regards,
Maryam

Peter Pažák

unread,
May 2, 2022, 11:21:58 PM5/2/22
to OpenQuake Users
Hi,

maybe you have figured out, but I only got to return to his now.
When you do OQ calculation you will see there that it reports effective catalogue time span as  ses_per_logic_tree_path *investigation_time*number of GMPEs,
so in my case say 250*50*4 = 50,000.
(If you omit investigation_time=50 from that, you would get poes for 50 years instead of 1 year)

If you use 50,000 in the denominator, you are calculating poes for 1 year combining for the 4 realizations ignoring their weights (number_of_logic_tree_samples = 0 each realization is there once without a weight).
OQ does each realization separately (250*50=12,500) and applies weights per realization to get the final poe, that is in my opinion why you get difference in the curves.
Maybe someone with more routine in this could comment if this explanation is complete.
Or if you think something else plays role, could you share your calculation so we can speak in detail?

Peter

Dátum: piatok 18. marca 2022, čas: 19:48:26 UTC+1, odosielateľ: Maryam S.

Maryam S.

unread,
May 7, 2022, 6:25:26 AM5/7/22
to OpenQuake Users
Dear Peter,

Thanks a lot for your clear and helpful explanations, I appreciate it very much.

Best Regards,
Maryam

Reply all
Reply to author
Forward
0 new messages