From 64f3c35762dfa99d34c55bd21d87bd6e3b350e4d Mon Sep 17 00:00:00 2001
From: Jason Altekruse <jaltekruse@usgs.gov>
Date: Wed, 2 Feb 2022 17:18:47 -0700
Subject: [PATCH] add Pezeshk et al. (2018). not quite right yet

---
 .../gov/usgs/earthquake/nshmp/gmm/Gmm.java    |  14 ++
 .../nshmp/gmm/PezeshkEtAl_2018.java           | 220 ++++++++++++++++++
 src/main/resources/gmm/coeffs/PZCT18_1SS.csv  |  24 ++
 src/main/resources/gmm/coeffs/PZCT18_2ES.csv  |  24 ++
 .../resources/gmm/coeffs/PZCT18_sigmas.csv    |  24 ++
 5 files changed, 306 insertions(+)
 create mode 100644 src/main/java/gov/usgs/earthquake/nshmp/gmm/PezeshkEtAl_2018.java
 create mode 100644 src/main/resources/gmm/coeffs/PZCT18_1SS.csv
 create mode 100644 src/main/resources/gmm/coeffs/PZCT18_2ES.csv
 create mode 100644 src/main/resources/gmm/coeffs/PZCT18_sigmas.csv

diff --git a/src/main/java/gov/usgs/earthquake/nshmp/gmm/Gmm.java b/src/main/java/gov/usgs/earthquake/nshmp/gmm/Gmm.java
index 3f6aeeef..9c5fdee0 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/gmm/Gmm.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/gmm/Gmm.java
@@ -1101,6 +1101,20 @@ public enum Gmm {
       NgaEastUsgs_2017.COEFFS_SIGMA_PANEL,
       NgaEastUsgs_2017.CONSTRAINTS),
 
+  /** @see PezeshkEtAl_2018 */
+  PZCT18_1SS(
+      PezeshkEtAl_2018.PZCT18_1SS.class,
+      PezeshkEtAl_2018.PZCT18_1SS.NAME,
+      PezeshkEtAl_2018.COEFFS_1SS,
+      PezeshkEtAl_2018.CONSTRAINTS),
+
+  /** @see PezeshkEtAl_2018 */
+  PZCT18_2ES(
+      PezeshkEtAl_2018.PZCT18_2ES.class,
+      PezeshkEtAl_2018.PZCT18_2ES.NAME,
+      PezeshkEtAl_2018.COEFFS_2ES,
+      PezeshkEtAl_2018.CONSTRAINTS),
+
   /* Combined: must be declared after any dependent models above. */
 
   /**
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/gmm/PezeshkEtAl_2018.java b/src/main/java/gov/usgs/earthquake/nshmp/gmm/PezeshkEtAl_2018.java
new file mode 100644
index 00000000..63e73999
--- /dev/null
+++ b/src/main/java/gov/usgs/earthquake/nshmp/gmm/PezeshkEtAl_2018.java
@@ -0,0 +1,220 @@
+/**
+ * 
+ */
+package gov.usgs.earthquake.nshmp.gmm;
+
+import static gov.usgs.earthquake.nshmp.gmm.GmmInput.Field.MW;
+import static gov.usgs.earthquake.nshmp.gmm.GmmInput.Field.RRUP;
+import static gov.usgs.earthquake.nshmp.gmm.GmmInput.Field.VS30;
+import static gov.usgs.earthquake.nshmp.gmm.GmmUtils.BASE_10_TO_E;
+import static java.lang.Math.exp;
+import static java.lang.Math.log10;
+import static java.lang.Math.max;
+import static java.lang.Math.min;
+import static java.lang.Math.sqrt;
+
+import java.util.Map;
+
+import com.google.common.collect.Range;
+
+import gov.usgs.earthquake.nshmp.gmm.GmmInput.Constraints;
+import gov.usgs.earthquake.nshmp.gmm.NgaEastUsgs_2017.SiteAmp;
+import gov.usgs.earthquake.nshmp.tree.LogicTree;
+
+/**
+ * Implementation of the Pezeshk et al. (2018) ground motion model for central
+ * and eastern North America (CENA). Pezeshk et al. (2018) provide coefficients
+ * for two hybrid empirical method (HEM) ground-motion prediction equations, one
+ * based on a stochastic-scaling approach (PZCT-1SS) and one using the
+ * empirical-scaling approach (PZCT-2ES). The latter model is preferred by the
+ * authors as the empirical-scaling approach reduces oversaturation of GMIM
+ * predictions at large magnitudes, short distances, and short periods.
+ * 
+ * The prediction of GMIMs for site conditions other than Vs30 = 3000 m/s and k0
+ * = 0.006s requires the use of appropriate site-amplification factors.
+ * 
+ * Questions:
+ * 
+ * - Table 4, should C10 at 3 sec be negative? There are other coefs that look
+ * like they may have the wrong sign
+ * 
+ * <p><b>Note:</b> Direct instantiation of {@code GroundMotionModel}s is
+ * prohibited. Use {@link Gmm#instance(Imt)} to retrieve an instance for a
+ * desired {@link Imt}.
+ *
+ * <p><b>Reference:</b> Pezeshk, S., Zandieh, A., Campbell, K.W., and Tavakoli,
+ * B., 2018, Ground-motion prediction equations for Central and Eastern North
+ * America using the hybrid empirical method and NGA-West2 Empirical
+ * ground-motion models: Bulletin of the Seismological Society of America, v.
+ * 108, n. 4, p. 2278-2304, August 2018.
+ * 
+ * 
+ * <p><b>doi:</b> <a href="http://dx.doi.org/10.1785/0120170179">
+ * 10.1785/0120170179</a>
+ *
+ * <p><b>Component:</b> **** RotD50 ?
+ *
+ * @author U.S. Geological Survey
+ * @see Gmm#PZCT18_1SS
+ * @see Gmm#PZCT18_2ES
+ */
+public abstract class PezeshkEtAl_2018 implements GroundMotionModel {
+
+  public static void main(String[] args) {
+    Coefficients c = new Coefficients(Imt.SA1P0, COEFFS_1SS, COEFFS_SIGMAS, Model.PZCT18_1SS);
+    System.out.println("hello");
+    System.out.println(c);
+    System.out.println(COEFFS_1SS.imts());
+    System.out.println(COEFFS_1SS.parseImt("0.04"));
+
+  }
+
+  static final String NAME = "Pezeshk et al. (2018)";
+
+  static final Constraints CONSTRAINTS = Constraints.builder()
+      .set(MW, Range.closed(4.0, 8.0))
+      .set(RRUP, Range.closed(0.0, 1000.0))
+      .set(VS30, Range.closed(0.0, 3000.0)) // ?
+      .build();
+
+  static final class Model {
+    static final String PZCT18_1SS = "PZCT18-1SS";
+    static final String PZCT18_2ES = "PZCT18-2ES";
+  }
+
+  /*
+   * Note: 0.04 seconds commented out because NGA-East SiteAmp doesn't support
+   * SA0P04 (also commented out there), similarly 0.08 seconds is commented out
+   * because SA0P08 is not supported by NGA-East SiteAmp.
+   */
+  static final CoefficientContainer COEFFS_1SS = new CoefficientContainer("PZCT18_1SS.csv");
+  static final CoefficientContainer COEFFS_2ES = new CoefficientContainer("PZCT18_2ES.csv");
+  static final CoefficientContainer COEFFS_SIGMAS = new CoefficientContainer("PZCT18_sigmas.csv");
+
+  private static final class Coefficients {
+    final Imt imt;
+    final double c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, σReg;
+    final double c12, c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24, c25;
+    final String model;
+
+    Coefficients(Imt imt, CoefficientContainer cc, CoefficientContainer cc_sigma, String model) {
+      this.imt = imt;
+      this.model = model;
+
+      Map<String, Double> coeffs = cc.get(imt);
+      Map<String, Double> coeffs_sigma = cc_sigma.get(imt);
+
+      // median model coefficients
+      c1 = coeffs.get("c1");
+      c2 = coeffs.get("c2");
+      c3 = coeffs.get("c3");
+      c4 = coeffs.get("c4");
+      c5 = coeffs.get("c5");
+      c6 = coeffs.get("c6");
+      c7 = coeffs.get("c7");
+      c8 = coeffs.get("c8");
+      c9 = coeffs.get("c9");
+      c10 = coeffs.get("c10");
+      c11 = coeffs.get("c11");
+      σReg = coeffs.get("σReg");
+
+      // between-event variability coefficients
+      c12 = coeffs_sigma.get("c12");
+      c13 = coeffs_sigma.get("c13");
+      c14 = coeffs_sigma.get("c14");
+      c15 = coeffs_sigma.get("c15");
+      c16 = coeffs_sigma.get("c16");
+      c17 = coeffs_sigma.get("c17");
+      c18 = coeffs_sigma.get("c18");
+      // within-event variability coefficients
+      c19 = coeffs_sigma.get("c19");
+      c20 = coeffs_sigma.get("c20");
+      c21 = coeffs_sigma.get("c21");
+      c22 = coeffs_sigma.get("c22");
+      c23 = coeffs_sigma.get("c23");
+      c24 = coeffs_sigma.get("c24");
+      c25 = coeffs_sigma.get("c25");
+    }
+
+  }
+
+  private final Coefficients coeffs;
+  private final Coefficients coeffsPga;
+  private final SiteAmp siteAmp;
+
+  PezeshkEtAl_2018(Imt imt, String model) {
+    CoefficientContainer cc = (model == Model.PZCT18_1SS) ? COEFFS_1SS : COEFFS_2ES;
+    coeffs = new Coefficients(imt, cc, COEFFS_SIGMAS, model);
+    coeffsPga = new Coefficients(Imt.PGA, cc, COEFFS_SIGMAS, model);
+    this.siteAmp = new NgaEastUsgs_2017.SiteAmp(imt);
+  }
+
+  @Override
+  public LogicTree<GroundMotion> calc(GmmInput in) {
+    double μPga = exp(calcMean(coeffsPga, in.Mw, in.rRup));
+    double μ = calcMean(coeffs, in.Mw, in.rRup);
+    double σ = calcStdDev(coeffs, in.Mw);
+
+    SiteAmp.Value fSite = siteAmp.calc(μPga, in.vs30);
+    double μ2 = fSite.apply(μ);
+    assert μ2 == μ;
+
+    return GroundMotions.createTree(μ, σ);
+  }
+
+  private double calcMean(Coefficients c, double Mw, double Rrup) {
+    if (c.imt == Imt.SA1P0) {
+      System.out.printf("Model %s: Mw = %.1f, Rrup = %.1f\n", c.model, Mw, Rrup);
+    }
+    /* Eq. 5 */
+    double R = sqrt(Rrup * Rrup + c.c11 * c.c11);
+    /* Eq. 4 - log10 units */
+    double μ = c.c1 +
+        (c.c2 * Mw) +
+        (c.c3 * Mw * Mw) +
+        (c.c4 + c.c5 * Mw) * min(log10(R), log10(60.0)) +
+        (c.c6 + c.c7 * Mw) * max(min(log10(R / 60.0), log10(2.0)), 0.0) +
+        (c.c8 + c.c9 * Mw) * max(log10(R / 120.0), 0.0) +
+        (c.c10 * R);
+    return μ * BASE_10_TO_E;
+  }
+
+  private double calcStdDev(Coefficients c, double Mw) {
+    /* Aleatory standard deviation */
+    /* Eq. 6 (between-event term) and Eq. 7 (within-event term) - natural log */
+    double τ, φ;
+    if (Mw <= 4.5) {
+      Ï„ = c.c12;
+      φ = c.c19 + c.c20 * Mw;
+    } else if (Mw <= 5.0) {
+      Ï„ = c.c13 + c.c14 * Mw;
+      φ = c.c21 + c.c22 * Mw;
+    } else if (Mw <= 6.5) {
+      Ï„ = c.c15 + c.c16 * Mw;
+      φ = c.c23 + c.c24 * Mw;
+    } else {
+      Ï„ = c.c17 + c.c18 * Mw;
+      φ = c.c25;
+    }
+    return sqrt(τ * τ + φ * φ);
+  }
+
+  static final class PZCT18_1SS extends PezeshkEtAl_2018 {
+    static final String MODEL = Model.PZCT18_1SS;
+    static final String NAME = PezeshkEtAl_2018.NAME + " : " + MODEL;
+
+    PZCT18_1SS(Imt imt) {
+      super(imt, MODEL);
+    }
+  }
+
+  static final class PZCT18_2ES extends PezeshkEtAl_2018 {
+    static final String MODEL = Model.PZCT18_2ES;
+    static final String NAME = PezeshkEtAl_2018.NAME + " : " + MODEL;
+
+    PZCT18_2ES(Imt imt) {
+      super(imt, MODEL);
+    }
+  }
+
+}
diff --git a/src/main/resources/gmm/coeffs/PZCT18_1SS.csv b/src/main/resources/gmm/coeffs/PZCT18_1SS.csv
new file mode 100644
index 00000000..150322dd
--- /dev/null
+++ b/src/main/resources/gmm/coeffs/PZCT18_1SS.csv
@@ -0,0 +1,24 @@
+    T,        c1,       c2,        c3,     c4,       c5,        c6,        c7,        c8,        c9,       c10,    c11,     σReg
+  PGA, -2.043e-1, 7.805e-1, -8.063e-2, -3.956, 3.901e-1, -3.259e-1,  8.243e-2, -1.928e+0,  2.511e-1, -2.347e-3, -6.368, 6.757e-2
+ 0.01,  4.265e-1, 7.075e-1, -7.832e-2, -4.184, 4.091e-1, -6.455e-1,  1.049e-1, -2.056e+0,  2.585e-1, -2.286e-3,  6.653, 6.683e-2
+ 0.02,  6.573e-1, 6.803e-1, -7.444e-2, -4.088, 3.909e-1, -6.327e-1,  5.930e-2, -2.645e+0,  2.934e-1, -2.045e-3,  6.723, 7.019e-2
+ 0.03,  3.420e-1, 7.205e-1, -7.437e-2, -3.896, 3.729e-1,  6.628e-3, -1.971e-2, -2.848e+0,  3.026e-1, -2.068e-3,  6.523, 7.611e-2
+#0.04, -1.266e-2, 7.652e-1, -7.558e-2, -3.753, 3.644e-1,  5.479e-1, -6.757e-2, -2.577e+0,  2.711e-1, -2.376e-3, -6.332, 8.139e-2
+ 0.05, -2.608e-1, 7.963e-1, -7.698e-2, -3.683, 3.639e-1,  7.904e-1, -7.123e-2, -2.094e+0,  2.232e-1, -2.747e-3, -6.190, 8.635e-2
+#0.08, -7.995e-1, 9.087e-1, -8.460e-2, -3.587, 3.591e-1,  6.022e-1,  3.520e-3, -1.075e+0,  1.398e-1, -3.319e-3,  6.105, 9.263e-2
+ 0.10, -1.391e+0, 1.060e+0, -9.486e-2, -3.475, 3.439e-1,  2.369e-1,  6.864e-2, -4.517e-1,  8.967e-2, -3.481e-3,  6.130, 9.041e-2
+ 0.15, -2.425e+0, 1.322e+0, -1.117e-1, -3.322, 3.177e-1, -3.225e-1,  1.450e-1,  1.825e-1,  8.081e-3, -3.216e-3,  6.229, 8.438e-2
+ 0.20, -3.243e+0, 1.537e+0, -1.262e-1, -3.278, 3.062e-1, -5.643e-1,  1.689e-1,  1.641e-1, -4.100e-3, -2.638e-3,  6.366, 8.335e-2
+ 0.25, -3.858e+0, 1.685e+0, -1.361e-1, -3.265, 3.024e-1, -6.514e-1,  1.742e-1,  5.760e-2, -3.273e-3, -2.137e-3,  6.331, 8.384e-2
+ 0.30, -4.240e+0, 1.772e+0, -1.419e-1, -3.291, 3.053e-1, -6.865e-1,  1.736e-1, -6.002e-2,  2.221e-3, -1.744e-3,  6.318, 8.163e-2
+ 0.40, -5.013e+0, 1.932e+0, -1.501e-1, -3.235, 2.919e-1, -6.095e-1,  1.481e-1, -3.715e-1,  2.499e-2, -1.072e-3,  6.493, 7.561e-2
+ 0.50, -5.441e+0, 2.005e+0, -1.532e-1, -3.232, 2.888e-1, -5.287e-1,  1.262e-1, -6.771e-1,  5.550e-2, -6.642e-4,  6.558, 6.897e-2
+ 0.75, -6.085e+0, 2.070e+0, -1.533e-1, -3.201, 2.863e-1, -4.266e-1,  1.014e-1, -9.856e-1,  8.410e-2, -3.040e-4,  6.303, 6.329e-2
+ 1.00, -6.446e+0, 2.077e+0, -1.498e-1, -3.165, 2.814e-1, -3.605e-1,  8.293e-2, -1.113e+0,  9.241e-2, -1.857e-4,  6.187, 6.259e-2
+ 1.50, -6.727e+0, 1.992e+0, -1.381e-1, -3.132, 2.848e-1, -2.712e-1,  6.172e-2, -1.272e+0,  1.104e-1, -4.798e-5,  5.818, 6.435e-2
+ 2.00, -6.801e+0, 1.907e+0, -1.289e-1, -3.162, 2.935e-1, -2.309e-1,  4.892e-2, -1.438e+0,  1.316e-1, -3.612e-6,  5.655, 6.504e-2
+ 3.00, -6.740e+0, 1.729e+0, -1.104e-1, -3.199, 3.019e-1, -1.443e-1,  2.933e-2, -1.619e+0,  1.535e-1,  1.309e-5, -5.447, 6.739e-2
+ 4.00, -6.638e+0, 1.589e+0, -9.647e-2, -3.220, 3.074e-1, -1.276e-1,  2.714e-2, -1.575e+0,  1.411e-1, -4.202e-5, -5.592, 6.594e-2
+ 5.00, -6.726e+0, 1.536e+0, -8.978e-2, -3.231, 3.089e-1, -1.063e-1,  2.324e-2, -1.572e+0,  1.354e-1, -9.189e-5,  5.726, 6.501e-2
+ 7.50, -7.194e+0, 1.514e+0, -8.441e-2, -3.236, 3.170e-1, -1.766e-2,  1.731e-2, -1.658e+0,  1.494e-1, -1.369e-4,  5.846, 6.265e-2
+10.00, -7.507e+0, 1.522e+0, -8.393e-2, -3.290, 3.257e-1,  1.807e-1, -3.022e-3, -1.615e+0,  1.461e-1, -1.939e-4,  5.701, 6.838e-2
diff --git a/src/main/resources/gmm/coeffs/PZCT18_2ES.csv b/src/main/resources/gmm/coeffs/PZCT18_2ES.csv
new file mode 100644
index 00000000..4832aa30
--- /dev/null
+++ b/src/main/resources/gmm/coeffs/PZCT18_2ES.csv
@@ -0,0 +1,24 @@
+    T,        c1,       c2,        c3,     c4,       c5,        c6,        c7,        c8,       c9,       c10,    c11,     σReg
+  PGA, -7.655e-1, 8.994e-1, -7.874e-2, -3.534, 2.948e-1, -4.799e-1,  1.178e-1, -2.182e+0, 3.029e-1, -2.327e-3,  6.461, 5.836e-2
+ 0.01, -1.871e-1, 8.314e-1, -7.503e-2, -3.714, 3.030e-1, -7.793e-1,  1.360e-1, -2.307e+0, 3.093e-1, -2.263e-3,  6.745, 5.637e-2
+ 0.02,  8.387e-2, 7.934e-1, -7.073e-2, -3.641, 2.898e-1, -7.692e-1,  9.124e-2, -2.885e+0, 3.399e-1, -2.013e-3,  6.814, 5.774e-2
+ 0.03, -1.786e-1, 8.256e-1, -7.148e-2, -3.489, 2.809e-1, -1.806e-1,  2.319e-2, -3.072e+0, 3.469e-1, -2.043e-3,  6.616, 6.483e-2
+#0.04, -4.947e-1, 8.659e-1, -7.358e-2, -3.378, 2.796e-1,  3.218e-1, -1.611e-2, -2.791e+0, 3.157e-1, -2.365e-3,  6.425, 7.330e-2
+ 0.05, -7.246e-1, 8.959e-1, -7.568e-2, -3.325, 2.831e-1,  5.318e-1, -1.344e-2, -2.301e+0, 2.693e-1, -2.751e-3,  6.278, 8.156e-2
+#0.08, -1.255e+0, 1.009e+0, -8.397e-2, -3.237, 2.809e-1,  3.432e-1,  6.065e-2, -1.289e+0, 1.932e-1, -3.352e-3,  6.184, 9.085e-2
+ 0.10, -1.849e+0, 1.160e+0, -9.436e-2, -3.125, 2.660e-1,  1.611e-2,  1.168e-1, -6.970e-1, 1.511e-1, -3.519e-3, -6.205, 8.908e-2
+ 0.15, -2.862e+0, 1.418e+0, -1.110e-1, -2.985, 2.416e-1, -4.494e-1,  1.736e-1, -1.474e-1, 8.225e-2, -3.224e-3, -6.322, 8.524e-2
+ 0.20, -3.666e+0, 1.632e+0, -1.256e-1, -2.952, 2.313e-1, -6.274e-1,  1.847e-1, -2.470e-1, 7.741e-2, -2.591e-3,  6.479, 8.309e-2
+ 0.25, -4.260e+0, 1.777e+0, -1.355e-1, -2.955, 2.298e-1, -6.681e-1,  1.811e-1, -4.060e-1, 8.046e-2, -2.041e-3,  6.470, 8.142e-2
+ 0.30, -4.630e+0, 1.864e+0, -1.416e-1, -2.995, 2.347e-1, -6.775e-1,  1.760e-1, -5.479e-1, 8.473e-2, -1.614e-3,  6.475, 7.692e-2
+ 0.40, -5.407e+0, 2.029e+0, -1.506e-1, -2.950, 2.231e-1, -5.911e-1,  1.492e-1, -8.400e-1, 9.921e-2, -9.231e-4,  6.667, 6.876e-2
+ 0.50, -5.843e+0, 2.108e+0, -1.545e-1, -2.956, 2.222e-1, -5.227e-1,  1.298e-1, -1.086e+0, 1.194e-1, -5.303e-4,  6.733, 6.338e-2
+ 0.75, -6.499e+0, 2.185e+0, -1.570e-1, -2.948, 2.259e-1, -4.594e-1,  1.120e-1, -1.252e+0, 1.284e-1, -2.316e-4,  6.466, 6.348e-2
+ 1.00, -6.869e+0, 2.204e+0, -1.557e-1, -2.933, 2.261e-1, -4.044e-1,  9.553e-2, -1.297e+0, 1.260e-1, -1.516e-4,  6.356, 6.575e-2
+ 1.50, -7.172e+0, 2.143e+0, -1.484e-1, -2.940, 2.387e-1, -3.053e-1,  7.187e-2, -1.386e+0, 1.337e-1, -4.130e-5,  5.986, 6.896e-2
+ 2.00, -7.287e+0, 2.085e+0, -1.431e-1, -2.994, 2.533e-1, -2.546e-1,  5.605e-2, -1.519e+0, 1.494e-1, -5.530e-6, -5.806, 6.909e-2
+ 3.00, -7.345e+0, 1.957e+0, -1.300e-1, -3.039, 2.649e-1, -1.506e-1,  3.184e-2, -1.668e+0, 1.648e-1,  7.650e-6, -5.528, 7.060e-2
+ 4.00, -7.387e+0, 1.860e+0, -1.191e-1, -3.023, 2.637e-1, -1.514e-1,  3.288e-2, -1.603e+0, 1.473e-1, -4.230e-5, -5.596, 7.011e-2
+ 5.00, -7.607e+0, 1.839e+0, -1.135e-1, -2.980, 2.545e-1, -1.600e-1,  3.506e-2, -1.583e+0, 1.374e-1, -9.030e-5, -5.663, 7.060e-2
+ 7.50, -8.251e+0, 1.851e+0, -1.072e-1, -2.879, 2.403e-1, -1.687e-1,  5.017e-2, -1.643e+0, 1.455e-1, -1.330e-4, -5.721, 6.987e-2
+10.00, -8.581e+0, 1.850e+0, -1.039e-1, -2.876, 2.362e-1, -8.466e-2,  5.500e-2, -1.599e+0, 1.450e-1, -2.047e-4,  5.604, 7.538e-2
diff --git a/src/main/resources/gmm/coeffs/PZCT18_sigmas.csv b/src/main/resources/gmm/coeffs/PZCT18_sigmas.csv
new file mode 100644
index 00000000..774afda3
--- /dev/null
+++ b/src/main/resources/gmm/coeffs/PZCT18_sigmas.csv
@@ -0,0 +1,24 @@
+    T,      c12,      c13,       c14,      c15,       c16,      c17,       c18,      c19,       c20,       c21,       c22,      c23,       c24,      c25
+  PGA, 4.191e-1, 7.699e-1, -7.798e-2, 5.518e-1, -3.435e-2, 3.596e-1, -4.792e-3, 8.376e-1, -2.941e-2,  1.880e+0, -2.610e-1, 7.848e-1, -4.203e-2, 5.116e-1
+ 0.01, 4.188e-1, 7.505e-1, -7.373e-2, 5.599e-1, -3.560e-2, 3.596e-1, -4.792e-3, 8.379e-1, -2.941e-2,  1.879e+0, -2.607e-1, 7.849e-1, -4.194e-2, 5.122e-1
+ 0.02, 4.245e-1, 8.034e-1, -8.422e-2, 5.569e-1, -3.493e-2, 3.610e-1, -4.790e-3, 8.437e-1, -3.016e-2,  1.886e+0, -2.617e-1, 7.889e-1, -4.235e-2, 5.135e-1
+ 0.03, 4.416e-1, 8.784e-1, -9.709e-2, 5.701e-1, -3.543e-2, 3.716e-1, -4.885e-3, 8.685e-1, -3.285e-2,  1.925e+0, -2.677e-1, 8.097e-1, -4.458e-2, 5.198e-1
+#0.04, 4.571e-1, 9.426e-1, -1.079e-1, 5.736e-1, -3.412e-2, 3.853e-1, -5.163e-3, 8.865e-1, -3.425e-2,  1.974e+0, -2.759e-1, 8.224e-1, -4.559e-2, 5.259e-1
+ 0.05, 4.725e-1, 1.007e+0, -1.187e-1, 5.772e-1, -3.286e-2, 3.990e-1, -5.444e-3, 9.042e-1, -3.566e-2,  2.022e+0, -2.841e-1, 8.346e-1, -4.660e-2, 5.314e-1
+#0.08, 4.653e-1, 7.718e-1, -6.819e-2, 5.843e-1, -3.068e-2, 4.219e-1, -5.694e-3, 9.021e-1, -3.464e-2,  1.967e+0, -2.713e-1, 8.363e-1, -4.514e-2, 5.425e-1
+ 0.10, 4.369e-1, 4.594e-1, -5.078e-3, 5.920e-1, -3.159e-2, 4.231e-1, -5.605e-3, 8.940e-1, -3.336e-2,  1.870e+0, -2.503e-1, 8.416e-1, -4.458e-2, 5.515e-1
+ 0.15, 4.080e-1, 3.551e-1,  1.173e-2, 5.802e-1, -3.329e-2, 3.962e-1, -4.991e-3, 8.847e-1, -3.049e-2,  1.855e+0, -2.460e-1, 8.345e-1, -4.200e-2, 5.613e-1
+ 0.20, 3.959e-1, 4.398e-1, -9.744e-3, 5.797e-1, -3.773e-2, 3.650e-1, -4.710e-3, 8.709e-1, -2.816e-2,  1.770e+0, -2.280e-1, 8.313e-1, -4.022e-2, 5.698e-1
+ 0.25, 3.984e-1, 5.748e-1, -3.920e-2, 5.773e-1, -3.970e-2, 3.497e-1, -4.690e-3, 8.477e-1, -2.513e-2,  1.689e+0, -2.122e-1, 8.126e-1, -3.683e-2, 5.732e-1
+ 0.30, 4.023e-1, 6.887e-1, -6.367e-2, 5.822e-1, -4.236e-2, 3.372e-1, -4.674e-3, 8.101e-1, -2.010e-2,  1.475e+0, -1.679e-1, 8.021e-1, -3.327e-2, 5.858e-1
+ 0.40, 4.116e-1, 9.150e-1, -1.119e-1, 5.601e-1, -4.089e-2, 3.246e-1, -4.652e-3, 7.563e-1, -1.369e-2,  1.155e+0, -1.022e-1, 7.894e-1, -2.917e-2, 5.998e-1
+ 0.50, 4.252e-1, 1.026e+0, -1.336e-1, 5.582e-1, -3.995e-2, 3.286e-1, -4.637e-3, 7.192e-1, -9.542e-3,  9.129e-1, -5.258e-2, 7.771e-1, -2.542e-2, 6.118e-1
+ 0.75, 4.507e-1, 1.017e+0, -1.258e-1, 5.933e-1, -4.109e-2, 3.562e-1, -4.613e-3, 6.487e-1, -2.016e-3,  5.115e-1,  2.847e-2, 7.394e-1, -1.711e-2, 6.281e-1
+ 1.00, 4.716e-1, 1.092e+0, -1.378e-1, 6.055e-1, -4.057e-2, 3.718e-1, -4.602e-3, 6.028e-1,  2.617e-3,  3.564e-1,  5.736e-2, 6.813e-1, -7.617e-3, 6.318e-1
+ 1.50, 4.859e-1, 1.053e+0, -1.260e-1, 6.367e-1, -4.277e-2, 3.886e-1, -4.601e-3, 5.479e-1,  7.745e-3,  2.408e-1,  7.599e-2, 5.958e-1,  4.986e-3, 6.282e-1
+ 2.00, 4.886e-1, 1.051e+0, -1.250e-1, 6.359e-1, -4.197e-2, 3.932e-1, -4.625e-3, 5.176e-1,  1.187e-2,  2.150e-1,  7.910e-2, 5.574e-1,  1.063e-2, 6.264e-1
+ 3.00, 4.907e-1, 9.880e-1, -1.105e-1, 6.469e-1, -4.229e-2, 4.021e-1, -4.627e-3, 5.156e-1,  1.149e-2,  2.479e-1,  7.098e-2, 5.505e-1,  1.046e-2, 6.185e-1
+ 4.00, 5.033e-1, 1.228e+0, -1.610e-1, 6.062e-1, -3.667e-2, 3.977e-1, -4.590e-3, 5.005e-1,  1.287e-2,  2.822e-1,  6.137e-2, 5.287e-1,  1.208e-2, 6.072e-1
+ 5.00, 4.986e-1, 1.102e+0, -1.340e-1, 6.311e-1, -3.990e-2, 4.015e-1, -4.583e-3, 4.748e-1,  1.563e-2,  2.037e-1,  7.588e-2, 5.122e-1,  1.417e-2, 6.043e-1
+ 7.50, 4.910e-1, 1.049e+0, -1.240e-1, 6.579e-1, -4.578e-2, 3.901e-1, -4.583e-3, 4.211e-1,  2.163e-2, -1.653e-2,  1.189e-1, 4.920e-1,  1.717e-2, 6.036e-1
+10.00, 4.711e-1, 8.445e-1, -8.300e-2, 6.848e-1, -5.105e-2, 3.828e-1, -4.583e-3, 3.946e-1,  2.512e-2, -5.540e-2,  1.251e-1, 4.898e-1,  1.609e-2, 5.944e-1
-- 
GitLab