Generalize hazard curve calculator to accept both poissonian and non-poissonian sources
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenQuake Hazard Library |
Fix Released
|
High
|
Damiano Monelli |
Bug Description
The current hazard curve calculator assumes sources to be associated to a Poissonian temporal occurrence model (see open quake.hazardlib
This means that the current equation used for calculating the probability of ground motion exceedance:
P(X≥x|T) = 1 - ∏ ∏ (1 - Prup_ij(
must be replace by:
P(X≥x|T) = 1 - ∏ ∏ Prup_ij(X<x|T)
where:
Prup_ij(X<x|T) = ∑Prup_ij(k|T) * P(X<x|rup_ij) ** k for non parametric sources
Prup_ij(X<x|T) = (1 - Prup_ij(1_or_more)) ** P(X≥x|rup_ij) for Poissonian sources
and other formula may be available for other temporal occurrence models.
NOTE:
P(X≥x|T): probability of a ground motion parameter X (e.g. PGA, SA, ..) to exceed ground motion level x, in a time span T.
Prup_ij(1_or_more): probability that the j-th rupture in the i-th source is occurring one or more times in time span T.
P(X≥x|rup_ij): probability that an occurrence of the j-th rupture in the i-th source cause ground motion parameter X to exceed level x
Prup_ij(X<x|T): probability that the j-th rupture in the i-th source does not cause any ground motion exceedance in time span T.
Prup_ij(k|T): probability that the j-th rupture in the i-th source occurs k times in time span T.
To support such case (i.e. source model consisting of poissonian (and/or other parametric temporal occurrence models) and non-parametric sources) we need to rethink the way ruptures are extracted from a source.
In the current set up, the ``iter_ruptures`` method (which allow to access ruptures as generated by a source) requires a temporal occurrence model (openquake.
A possible solution would be to define a new base class for a seismic source which simply defines an ``iter_ruptures()`` method which does not accept any temporal occurrence model. We can then create two subclasses ('NonParametric
The 'NonParametricS
The 'ParametricSeis
The 'iter_ruptures' method for the 'NonParametricS
The 'iter_ruptures' method for the 'ParametricSeis
Both the 'NonParametricP
Changed in oq-hazardlib: | |
milestone: | none → 0.12 |
Changed in oq-hazardlib: | |
status: | Fix Committed → Fix Released |
https:/ /github. com/gem/ oq-hazardlib/ pull/142