Skip to content

Correlation modules refactor #9 – Baker & Bradley (2019) - #11722

Merged
raoanirudh merged 8 commits into
masterfrom
baker-bradley-2017
Aug 24, 2026
Merged

Correlation modules refactor #9 – Baker & Bradley (2019)#11722
raoanirudh merged 8 commits into
masterfrom
baker-bradley-2017

Conversation

@raoanirudh

Copy link
Copy Markdown
Member

Baker and Bradley (2017) total-residual cross-IMT correlation model

Part of #11230.

This PR implements the Baker and Bradley (2017)1 cross-IMT correlation model, using the corrected results associated with the 2025 corrigendum2.

The model represents aggregate total-residual correlation for NGA-West2 RotD50 ground motions and supports:

  • PGA
  • PGV
  • 5%-damped SA at the 105 tabulated periods from 0.01 to 10 seconds
  • 5–75% and 5–95% significant duration

The published version of BakerBradley2017 is a total-residual model. The separate between- and within-event components might be recoverable through the authors' Matlab codebase3, but those are not implemented here.

The implementation in this PR uses the authors’ corrected rhoDataPD.csv electronic supplement.

A model-wide IMC is not set because amplitude IMTs (PGA-SA-PGV) use RotD50 while durations use geometric mean.

Note: The change in MANIFEST.in ensures the correlation data table csv is included in packaged OpenQuake distributions. The csv file is required as this is a purely empirical model, and does not provide a fitted functional form.

Period handling

The publication does not specify an interpolation procedure, so the implementation accepts only the 105 tabulated SA periods and does not extrapolate or substitute IMT proxies.

Jack Baker’s separate Matlab correlation calculator4 permits bilinear interpolation in log period over the positive-definite SA table. Interpolation is not implemented in this PR because the published grid is already dense and the provided periods should suffice for most calculations.

Verification

Deterministic reference values were extracted directly from the authors’ corrected rhoDataPD.csv, using the IMT ordering documented in the accompanying README.csv.

Tests cover:

  • representative PGA, PGV, and SA pairs
  • all supported metadata and calibration limits
  • symmetry and unit diagonal
  • the complete 107-IMT supported matrix
  • positive definiteness without centralized repair
  • factorization preserving the authors’ matrix

References

Footnotes

  1. Baker, J. W., & Bradley, B. A. (2017). Intensity Measure Correlations Observed in the NGA-West2 Database, and Dependence of Correlations on Rupture and Site Parameters. Earthquake Spectra, 33(1), 145–156. https://doi.org/10.1193/060716EQS095M

  2. Baker, J. W., & Bradley, B. A. (2025). Corrigendum to “Intensity measure correlations observed in the NGA-West2 database, and dependence of correlations on rupture and site parameters.” Earthquake Spectra, 41(2), 1825–1827. https://doi.org/10.1177/87552930241245554

  3. Baker, J. W. (2025). Corrected Matlab codebase for “Intensity measure correlations observed in the NGA-West2 database, and dependence of correlations on rupture and site parameters.” https://github.com/bakerjw/NGAW2_correlations

  4. Baker, J. W. (2021). Matlab interpolation support for Baker and Bradley (2017). https://github.com/bakerjw/GMMs/blob/master/correlations/bb_2017_corr.m

Implement the corrected Baker and Bradley (2017) RotD50 total-residual aggregate for directly calibrated PGA, PGV, and 5%-damped SA at the 105 published periods from 0.01 to 10 s.

Load the raw float64 author-supplement table, reject unpublished periods instead of interpolating or extrapolating, and leave PSD repair to the common factorization path.
Register BakerBradley2017 as a total-residual cross-IMT model for direct RotD50 PGA, PGV, and exact-node 5%-damped SA support.

Expose the canonical class name without aliases so configuration preserves the scientific model identity and does not imply a between-event variant.
Document the corrected total-residual relationship and its direct RotD50 PGA, PGV, and exact-node 5%-damped SA scope.

Record the calibration boundary discrepancy, absence of a published between-event matrix or interpolation rule, and common factorization repair for the raw table.
Verify corrected total-residual RotD50 PGA, PGV, and exact-node 5%-damped SA correlations against values extracted directly from the author electronic supplement.

Add deterministic domain, symmetry, unit-diagonal, float64, raw-indefiniteness, common-repair, and registry tests. The source rhoData.csv has SHA-256 27687e9ae0e4f0f4b9ad1eede3b9d560cd997581a7826975ad9615f50332f77b.
Load the authors' corrected rhoDataPD export for the complete 109-IMT aggregate total-residual relationship before selecting the supported PGA, PGV, and 5%-damped SA(0.01-10 s) subset. The RotD50 model remains strict at the 105 tabulated SA periods; the separate author-maintained Matlab calculator's optional log-period interpolation is documented but not adopted.

Update deterministic reference values directly from rhoDataPD.csv and verify that the complete supported matrix is positive definite without centralized repair. The Matlab calculator's bundled SA matrix was independently read with scipy.io.loadmat and found identical to the corrected positive-definite SA block.
Expose the published RSD575 and RSD595 rows from the authors' corrected positive-definite 109-IMT total-residual matrix. PGA, PGV, and 5%-damped SA(0.01-10 s) retain their RotD50 calibration, while the duration GMM uses the geometric mean, so model-wide component metadata is intentionally unset.

Document that the author pipeline evaluates duration residuals with Afshari and Stewart (2016) but uses Boore et al. (2009) tau and phi values in the aggregate weighting. Verify duration-duration and duration-amplitude pairs directly against rhoDataPD.csv and check positive definiteness of the complete matrix.
Remove the Baker and Bradley model-specific subsection from the shared underlying-science overview and drop its now-unused paper and corrigendum references. Keep detailed scope and provenance in the model and API documentation.
@raoanirudh raoanirudh added this to the Engine 3.27.0 milestone Aug 24, 2026
@raoanirudh raoanirudh self-assigned this Aug 24, 2026
@raoanirudh
raoanirudh merged commit 8094a85 into master Aug 24, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants