gem / oq-engine

OpenQuake Engine: a software for Seismic Hazard and Risk Analysis
https://github.com/gem/oq-engine/#openquake-engine
GNU Affero General Public License v3.0
377 stars 273 forks source link

IMC AVERAGE_HORIZONTAL missing in 3.14 and 3.15 #8067

Closed cbworden closed 1 year ago

cbworden commented 1 year ago

In openquake/hazardlib/const.py you changed the IMC enum. It makes sense, based on the description that you would create a "GEOMETRIC_MEAN" item. However, the elimination of "AVERAGE_HORIZONTAL" is a problem. "AVERAGE_HORIZONTAL" should be the arithmetic mean of the horizontal components, which is a valid component. This particular mean figures prominently in many IMC conversions. See for instance:

Beyer, K. and J. Bommer (2006). Relationships between Median Values and between Aleatory Variabilities for Different Definitions of the Horizontal Component of Motion, Bull. Seism. Soc. Am. 96(4A), 1512-1522.

and

Boore, D.M. and T. Kishida (2017). Relations between some horizontal-component ground-motion intensity measures used in practice. Bulletin of the Seismological Society of America, 107(1), 334-343, doi: 10.1785/0120160250.

We use it extensively as a placeholder for intermediate conversions for which there is no direct one to one conversion.

I recommend changing:

GEOMETRIC_MEAN = 'Average Horizontal' to GEOMETRIC_MEAN = 'Geometric Mean'

and adding:

#: The arithmetic mean of the horizontal components
AVERAGE_HORIZONTAL = 'Average Horizontal'

This change should have no effect on current functionality of the OQ engine, but will allow more flexibility in IMC conversions, as well as the addition of older GMMs that use the arithmetic mean as their IMC of choice.

cbworden commented 1 year ago

Is there any hope of getting some action on this? We have a bunch of code that uses AVERAGE_HORIZONTAL that we're going to have to write a workaround for if we want to use OQ 3.15. Which we'll do, if necessary. But it just seem that Beyer and Bommer, and Boore and Kishida laid out a set of IMCs that were pretty comprehensive, and it might be worth covering them within the hazard lib -- at least the major ones.

cbworden commented 1 year ago

Okay, nevermind. I've worked around the issue. Please don't change anything that currently exists. If you want to add AVERAGE_HORIZONTAL, that's fine, but don't change GEOMETRIC MEAN. Just do something like:

#: The arithmetic mean of the horizontal components
AVERAGE_HORIZONTAL = 'Arithmetic Mean'