Skip to content
Snippets Groups Projects
Commit fac4bee1 authored by Jason Altekruse's avatar Jason Altekruse
Browse files

added uncertainty calcs and fixed median - validated at input for global...

added uncertainty calcs and fixed median - validated at input for global interface and slab against official python code
parent 999dba56
No related branches found
No related tags found
1 merge request!142Nga-subduction Parker et al. 2020 - initial
Pipeline #31025 passed
......@@ -8,6 +8,7 @@ import static gov.usgs.earthquake.nshmp.gmm.Imt.PGA;
import static java.lang.Math.exp;
import static java.lang.Math.log;
import static java.lang.Math.log10;
import static java.lang.Math.max;
import static java.lang.Math.min;
import static java.lang.Math.pow;
import static java.lang.Math.sqrt;
......@@ -34,6 +35,9 @@ import gov.usgs.earthquake.nshmp.gmm.GmmInput.Constraints;
* plane, zHypBar, in Eq. 4.6 without modification to coefficients or
* uncertainty.
*
* Path term (Eqs. 4.2 and 4.3 in PEER report) appears to differ in the official
* Python implementation. Compare implementations of getPathTerm() below
*
* <p><b>Reference:</b> Parker, G.A, Stewart, J.P., Boore, D.M., Atkinson, G.M.,
* Hassani, B. (2020) NGA-Subduction global ground-motion models with regional
* adjustment factors. Report no. 2020/03. Berkeley, CA: PEER, 131 p.
......@@ -105,6 +109,19 @@ public abstract class ParkerEtAl_2020 implements GroundMotionModel {
private static final double DB1 = 20.0; // km
private static final double DB2 = 67.0; // km
/* ϕ parameters */
private static final double R1 = 200; // km
private static final double R2 = 500; // km
private static final double V1 = 200; // m/s
private static final double V2 = 500; // m/s
/* ϕS2S and ϕSS parameters */
private static final double R3 = 200; // km
private static final double R4 = 500; // km
private static final double R5 = 500; // km
private static final double R6 = 800; // km
private static final double V3 = 200; // m/s
private static final double V4 = 800; // m/s
private static final class Coefficients {
final Imt imt;
final double c0; // model constant
......@@ -117,7 +134,7 @@ public abstract class ParkerEtAl_2020 implements GroundMotionModel {
final double c_e1, c_e2, c_e3, del_None, del_Seattle; // Cascadia basin
final double τ, ϕ21, ϕ22, ϕ2v, vm, ϕ2s2s0, a1, ϕ2ss1, ϕ2ss2, a2; // alleatory
// uncertainty
final double 𝜎Ep1, 𝜎Ep2, t1, t2;
final double σε1, σε2, t1, t2;
Coefficients(Imt imt, CoefficientContainer cc, boolean isSlab, String region) {
this.imt = imt;
......@@ -168,11 +185,11 @@ public abstract class ParkerEtAl_2020 implements GroundMotionModel {
ϕ2ss1 = coeffs.get("phi2SS1");
ϕ2ss2 = coeffs.get("phi2SS2");
a2 = coeffs.get("a2");
// epistemic model
𝜎Ep1 = 0.4; // GLOBAL INTERFACE
𝜎Ep2 = 0.4; // GLOBAL INTERFACE
t1 = 0.2; // GLOBAL INTERFACE
t2 = 0.2; // GLOBAL INTERFACE
// epistemic model (period-independent)
σε1 = getσε1(region, isSlab);
σε2 = getσε2(region, isSlab);
t1 = getT1(region, isSlab);
t2 = getT2(region, isSlab);
}
private static final String getA0Col(boolean isSlab, String region) {
......@@ -187,6 +204,79 @@ public abstract class ParkerEtAl_2020 implements GroundMotionModel {
return a0Col;
}
/* Table E4 */
private static final double getσε1(String region, boolean isSlab) {
// return region.equals(Region.ALASKA) ? 0.15 :
// region.equals(Region.ALEUTIANS) ? 0.15 :
// region.equals(Region.CASCADIA) ? 0.43 : 0.4; // else GLOBAL
switch (region) {
case Region.GLOBAL:
return isSlab ? 0.35 : 0.4;
case Region.ALASKA:
return isSlab ? 0.15 : .15;
case Region.ALEUTIANS:
return isSlab ? 0.25 : .15;
case Region.CASCADIA:
return isSlab ? 0.35 : 0.43;
default:
throw new IllegalArgumentException("Region [" + region + "] not supported");
}
}
/* Table E4 */
private static final double getσε2(String region, boolean isSlab) {
// return region.equals(Region.ALASKA) ? 0.1 :
// region.equals(Region.ALEUTIANS) ? 0.11 :
// region.equals(Region.CASCADIA) ? 0.33 : 0.4; // else GLOBAL
switch (region) {
case Region.GLOBAL:
return isSlab ? 0.22 : 0.4;
case Region.ALASKA:
return isSlab ? 0.12 : .1;
case Region.ALEUTIANS:
return isSlab ? 0.18 : .1;
case Region.CASCADIA:
return isSlab ? 0.16 : 0.33;
default:
throw new IllegalArgumentException("Region [" + region + "] not supported");
}
}
/* Table E4 */
private static final double getT1(String region, boolean isSlab) {
// return region.equals(Region.ALASKA) ? 1 :
// region.equals(Region.ALEUTIANS) ? 1 :
// region.equals(Region.CASCADIA) ? 0.2 : 0.2; // else GLOBAL
switch (region) {
case Region.GLOBAL:
return isSlab ? 0.15 : 0.2;
case Region.ALASKA:
return isSlab ? 0.5 : 1;
case Region.ALEUTIANS:
return isSlab ? 0.3 : 1;
case Region.CASCADIA:
return isSlab ? 0.2 : 0.2;
default:
throw new IllegalArgumentException("Region [" + region + "] not supported");
}
}
/* Table E4 */
private static final double getT2(String region, boolean isSlab) {
switch (region) {
case Region.GLOBAL:
return isSlab ? 2 : 0.4;
case Region.ALASKA:
return isSlab ? 1 : 4;
case Region.ALEUTIANS:
return isSlab ? 0.8 : 4;
case Region.CASCADIA:
return isSlab ? 3 : 0.5;
default:
throw new IllegalArgumentException("Region [" + region + "] not supported");
}
}
private static final double getSaturationMagnitude(String region, boolean isSlab) {
// TODO? Read from coeff table?
// Parket et al. (2020) Table 4.1
......@@ -207,14 +297,6 @@ public abstract class ParkerEtAl_2020 implements GroundMotionModel {
throw new IllegalArgumentException("Region [" + region + "] not supported");
}
}
// set/get epistemic uncertainty parameters
// Region,SigEp1,SigEp2,T1,T2
// Global,0.4,0.4,0.2,0.4
// Alaska,0.15,0.1,1,4
// Aleutian,0.15,0.1,1,4
// Cascadia,0.43,0.33,0.2,0.5
}
private final Coefficients coeffs;
......@@ -242,7 +324,18 @@ public abstract class ParkerEtAl_2020 implements GroundMotionModel {
double μ = calcMean(coeffs, isSlab(), getBasin(), in.Mw, in.rRup, in.zHyp, pgaRef,
in.vs30, in.z2p5);
double σ = 0.0;
double ϕTotal = getϕTotal(coeffs, in.rRup, in.vs30);
double σ = Maths.hypot(coeffs.τ, ϕTotal);
// System.out.println("calc for T = " + coeffs.imt.toString());
// System.out.printf(" ϕTotal = %.6f\n", ϕTotal);
// System.out.printf(" σ = %.6f\n", σ);
double ϕS2S = getϕS2S(coeffs, in.rRup, in.vs30);
double ϕSS = getϕSS(coeffs, in.rRup, in.vs30);
double σε = getσε(coeffs);
return DefaultScalarGroundMotion.create(μ, σ);
}
......@@ -252,6 +345,14 @@ public abstract class ParkerEtAl_2020 implements GroundMotionModel {
abstract String getBasin();
// abstract double σε1();
//
// abstract double σε2();
//
// abstract double t1();
//
// abstract double t2();
/* calc median at 760 reference conditions */
private static final double calcMean(
final Coefficients c,
......@@ -268,7 +369,7 @@ public abstract class ParkerEtAl_2020 implements GroundMotionModel {
// System.out.printf(" mc = %.2f\n", c.mc);
// System.out.printf(" h = %.6f\n", h);
// System.out.printf(" Fp = %.6f\n", Fp);
System.out.printf(" Fm(ref) = %.6f\n", Fm);
// System.out.printf(" Fm(ref) = %.6f\n", Fm);
// System.out.printf(" Fd = %.6f\n", Fd);
// System.out.printf(" Fb = %.6f (reference calc)\n", 0.0);
// System.out.printf(" mu = %.6f\n", c.c0 + Fp + Fm + Fd);
......@@ -299,19 +400,19 @@ public abstract class ParkerEtAl_2020 implements GroundMotionModel {
double Fsb = getSiteBasinTerm(c, basin, vs30, z2p5);
double Fs = Fslin + Fsnl + Fsb;
System.out.println("calcMean for T = " + c.imt.toString());
System.out.printf(" Vs30 = %.2f\n", vs30);
System.out.printf(" h = %.6f\n", h);
System.out.printf(" Fp = %.6f\n", Fp);
System.out.printf(" Fm = %.6f\n", Fm);
System.out.printf(" Fd = %.6f\n", Fd);
System.out.printf(" PGAref = %.6f\n", pgaRef);
System.out.printf(" Fslin = %.6e\n", Fslin);
System.out.printf(" Fsnl = %.6e\n", Fsnl);
System.out.printf(" Fssb = %.6e\n", Fsb);
System.out.printf(" Fs = %.6e\n", Fs);
System.out.printf(" mu = %.6f\n", c.c0 + Fp + Fm + Fd + Fs);
System.out.printf(" y = %.6f\n", exp(c.c0 + Fp + Fm + Fd + Fs));
// System.out.println("calcMean for T = " + c.imt.toString());
// System.out.printf(" Vs30 = %.2f\n", vs30);
// System.out.printf(" h = %.6f\n", h);
// System.out.printf(" Fp = %.6f\n", Fp);
// System.out.printf(" Fm = %.6f\n", Fm);
// System.out.printf(" Fd = %.6f\n", Fd);
// System.out.printf(" PGAref = %.6f\n", pgaRef);
// System.out.printf(" Fslin = %.6e\n", Fslin);
// System.out.printf(" Fsnl = %.6e\n", Fsnl);
// System.out.printf(" Fssb = %.6e\n", Fsb);
// System.out.printf(" Fs = %.6e\n", Fs);
// System.out.printf(" mu = %.6f\n", c.c0 + Fp + Fm + Fd + Fs);
// System.out.printf(" y = %.6f\n", exp(c.c0 + Fp + Fm + Fd + Fs));
return c.c0 + Fp + Fm + Fd + Fs;
}
......@@ -438,6 +539,141 @@ public abstract class ParkerEtAl_2020 implements GroundMotionModel {
return Fb;
}
/* Eqs. 6.3, 6.4, 6.5 */
private static final double getϕTotal(final Coefficients c, final double rRup,
final double vs30) {
/* Eq. 6.5 */
double Δvar;
double rPrime = max(R1, min(R2, rRup));
if (vs30 <= V1) {
Δvar = c.ϕ2v * (log(R2 / rPrime) / log(R2 / R1));
} else if (vs30 >= V2) {
Δvar = 0;
} else {
Δvar = c.ϕ2v * (log(V2 / vs30) / log(V2 / V1)) * (log(R2 / rPrime) / log(R2 / R1));
}
/* Eq. 6.4 */
double ϕ2;
if (rRup <= R1) {
ϕ2 = c.ϕ21;
} else if (rRup >= R2) {
ϕ2 = c.ϕ22;
} else {
ϕ2 = (c.ϕ22 - c.ϕ21) / log(R2 / R1) * log(rRup / R1) + c.ϕ21;
}
/* Eq. 6.3 */
double ϕTotal = sqrt(Δvar + ϕ2);
// System.out.println("getϕTotal for T = " + c.imt.toString());
// System.out.printf(" rRup = %.6f\n",rRup);
// System.out.printf(" vs30 = %.6f\n",vs30);
// System.out.printf(" rPrime = %.6f\n",rPrime);
// System.out.printf(" c.ϕ2v = %.6f\n",c.ϕ2v);
// System.out.printf(" c.ϕ21 = %.6f\n",c.ϕ21);
// System.out.printf(" c.ϕ22 = %.6f\n",c.ϕ22);
// System.out.printf(" Δvar = %.6f\n",Δvar);
// System.out.printf(" ϕ2 = %.6f\n",ϕ2);
// System.out.printf(" ϕTotal = %.6f\n",ϕTotal);
return ϕTotal;
}
/* Eqs. 6.6, 6.7 */
private static final double getϕS2S(final Coefficients c, final double rRup, final double vs30) {
/* Eq. 6.7 */
double rPrime = max(R3, min(R4, rRup));
double ΔvarS2S;
if (vs30 <= V3) {
ΔvarS2S = c.a1 * log(V3 / c.vm) * log(R4 / rPrime) / log(R4 / R3);
} else if (vs30 < c.vm) {
ΔvarS2S = c.a1 * log(vs30 / c.vm) * log(R4 / rPrime) / log(R4 / R3);
} else if (vs30 < V4) {
ΔvarS2S = c.a1 * log(vs30 / c.vm);
} else { // vs30 >= V4
ΔvarS2S = c.a1 * log(V4 / c.vm);
}
double ϕS2S = sqrt(c.ϕ2s2s0 + ΔvarS2S);
// System.out.println("getϕS2S for T = " + c.imt.toString());
// System.out.printf(" rRup = %.6f\n",rRup);
// System.out.printf(" vs30 = %.6f\n",vs30);
// System.out.printf(" rPrime = %.6f\n",rPrime);
// System.out.printf(" c.a1 = %.6f\n",c.a1);
// System.out.printf(" c.vm = %.6f\n",c.vm);
// System.out.printf(" ΔvarS2S = %.6f\n",ΔvarS2S);
// System.out.printf(" c.ϕ2s2s0 = %.6f\n",c.ϕ2s2s0);
// System.out.printf(" ϕS2S = %.6f\n",ϕS2S);
return ϕS2S;
}
/* Eqs. 6.8, 6.9, 6.10 */
private double getϕSS(Coefficients c, double rRup, double vs30) {
/* Eq. 6.10 */
double rPrime = max(R3, min(R4, rRup));
double ΔvarSS;
if (vs30 <= V3) {
ΔvarSS = c.a2 * log(V3 / c.vm) * log(R4 / rPrime) / log(R4 / R3);
} else if (vs30 < c.vm) {
ΔvarSS = c.a2 * log(vs30 / c.vm) * log(R4 / rPrime) / log(R4 / R3);
} else if (vs30 < V4) {
ΔvarSS = c.a2 * log(vs30 / c.vm);
} else { // vs30 >= V4
ΔvarSS = c.a2 * log(V4 / c.vm);
}
/* Eq. 6.9 */
double ϕSS2rRup;
if (rRup <= R5) {
ϕSS2rRup = c.ϕ2ss1;
} else if (rRup < R6) {
ϕSS2rRup = (c.ϕ2ss2 - c.ϕ2ss1) / log(R6 / R5) * log(rRup / R5) + c.ϕ2ss1;
} else { // rRup >= R6
ϕSS2rRup = c.ϕ2ss2;
}
double ϕSS = sqrt(ϕSS2rRup + ΔvarSS);
// System.out.println("getϕSS for T = " + c.imt.toString());
// System.out.printf(" rRup = %.6f\n",rRup);
// System.out.printf(" vs30 = %.6f\n",vs30);
// System.out.printf(" rPrime = %.6f\n",rPrime);
// System.out.printf(" c.a2 = %.6f\n",c.a1);
// System.out.printf(" c.vm = %.6f\n",c.vm);
// System.out.printf(" c.ϕ2ss1 = %.6f\n",c.ϕ2ss1);
// System.out.printf(" c.ϕ2ss2 = %.6f\n",c.ϕ2ss2);
// System.out.printf(" ΔvarSS = %.6f\n",ΔvarSS);
// System.out.printf(" ϕSS2rRup = %.6f\n",ϕSS2rRup);
// System.out.printf(" ϕS2S = %.6f\n",ϕSS);
return ϕSS;
}
/* Eq. 8.2 */
private double getσε(Coefficients c) {
double σε;
if (c.imt == Imt.PGA || c.imt == Imt.PGV || c.imt.period() < c.t1) {
σε = c.σε1;
} else if (c.imt.period() < c.t2) {
σε = c.σε1 - (c.σε1 - c.σε2) * log(c.imt.period() / c.t1) / log(c.t2 / c.t1);
} else { // T > T2
σε = c.σε2;
}
// System.out.println("getσε for T = " + c.imt.toString());
// System.out.printf(" T1 = %.6f\n",c.t1);
// System.out.printf(" T2 = %.6f\n",c.t2);
// System.out.printf(" c.σε1 = %.6f\n",c.σε1);
// System.out.printf(" c.σε2 = %.6f\n",c.σε2);
// System.out.printf(" σε = %.6f\n",σε);
return σε;
}
/*
* Global interface model
*/
......@@ -462,6 +698,27 @@ public abstract class ParkerEtAl_2020 implements GroundMotionModel {
String getBasin() {
return Basin.NONE;
}
// @Override
// double σε1() {
// return 0;
// }
//
// @Override
// double σε2() {
// return 0;
// }
//
// @Override
// double t1() {
// return 0;
// }
//
// @Override
// double t2() {
// return 0;
// }
}
/*
......@@ -488,6 +745,26 @@ public abstract class ParkerEtAl_2020 implements GroundMotionModel {
String getBasin() {
return Basin.NONE;
}
// @Override
// double σε1() {
// return 0;
// }
//
// @Override
// double σε2() {
// return 0;
// }
//
// @Override
// double t1() {
// return 0;
// }
//
// @Override
// double t2() {
// return 0;
// }
}
/*
......
package gov.usgs.earthquake.nshmp.gmm;
import static gov.usgs.earthquake.nshmp.gmm.Gmm.PSHAB20_INTERFACE;
import static gov.usgs.earthquake.nshmp.gmm.Gmm.PSHAB20_SLAB;
import static gov.usgs.earthquake.nshmp.gmm.Imt.PGA;
import java.io.IOException;
......@@ -33,7 +34,7 @@ class PSHAB20 implements ArgumentsProvider {
}
/* Result generation sets */
private static Set<Gmm> gmms = EnumSet.of(PSHAB20_INTERFACE);
private static Set<Gmm> gmms = EnumSet.of(PSHAB20_INTERFACE, PSHAB20_SLAB);
private static Set<Imt> imts = EnumSet.of(PGA);// PSHAB20_INTERFACE.supportedIMTs();
public static void main(String[] args) throws IOException {
......
0-PSHAB20_INTERFACE-SA0P01,2.08965604936e-02,0.0
0-PSHAB20_INTERFACE-SA0P02,2.12376645069e-02,0.0
0-PSHAB20_INTERFACE-SA0P03,2.24575034172e-02,0.0
0-PSHAB20_INTERFACE-SA0P05,2.58276475982e-02,0.0
0-PSHAB20_INTERFACE-SA0P075,2.96364966819e-02,0.0
0-PSHAB20_INTERFACE-SA0P1,3.25369383278e-02,0.0
0-PSHAB20_INTERFACE-SA0P15,3.55651022874e-02,0.0
0-PSHAB20_INTERFACE-SA0P2,3.64296484198e-02,0.0
0-PSHAB20_INTERFACE-SA0P25,3.69487943052e-02,0.0
0-PSHAB20_INTERFACE-SA0P3,3.71144622014e-02,0.0
0-PSHAB20_INTERFACE-SA0P4,3.46117876964e-02,0.0
0-PSHAB20_INTERFACE-SA0P5,3.11738351662e-02,0.0
0-PSHAB20_INTERFACE-SA0P75,2.56085017514e-02,0.0
0-PSHAB20_INTERFACE-SA1P0,2.06123859520e-02,0.0
0-PSHAB20_INTERFACE-SA1P5,1.45673139070e-02,0.0
0-PSHAB20_INTERFACE-SA2P0,1.08967064936e-02,0.0
0-PSHAB20_INTERFACE-SA3P0,6.26946254992e-03,0.0
0-PSHAB20_INTERFACE-SA4P0,4.36498415871e-03,0.0
0-PSHAB20_INTERFACE-SA5P0,3.44133448941e-03,0.0
0-PSHAB20_INTERFACE-SA7P5,1.95537566087e-03,0.0
0-PSHAB20_INTERFACE-SA10P0,1.25157789513e-03,0.0
0-PSHAB20_INTERFACE-PGA,2.02870001012e-02,0.0
0-PSHAB20_INTERFACE-PGV,1.95216532021e+00,0.0
0-PSHAB20_INTERFACE-SA0P01,2.08965604936e-02,7.89668284788e-01
0-PSHAB20_INTERFACE-SA0P02,2.12376645069e-02,7.95816561778e-01
0-PSHAB20_INTERFACE-SA0P03,2.24575034172e-02,8.14248119433e-01
0-PSHAB20_INTERFACE-SA0P05,2.58276475982e-02,8.67054784890e-01
0-PSHAB20_INTERFACE-SA0P075,2.96364966819e-02,8.99944442730e-01
0-PSHAB20_INTERFACE-SA0P1,3.25369383278e-02,8.89705569276e-01
0-PSHAB20_INTERFACE-SA0P15,3.55651022874e-02,8.46817571854e-01
0-PSHAB20_INTERFACE-SA0P2,3.64296484198e-02,8.26438745462e-01
0-PSHAB20_INTERFACE-SA0P25,3.69487943052e-02,8.31903840597e-01
0-PSHAB20_INTERFACE-SA0P3,3.71144622014e-02,8.23446415986e-01
0-PSHAB20_INTERFACE-SA0P4,3.46117876964e-02,8.21622784494e-01
0-PSHAB20_INTERFACE-SA0P5,3.11738351662e-02,8.18574370476e-01
0-PSHAB20_INTERFACE-SA0P75,2.56085017514e-02,8.30700908872e-01
0-PSHAB20_INTERFACE-SA1P0,2.06123859520e-02,8.19795096350e-01
0-PSHAB20_INTERFACE-SA1P5,1.45673139070e-02,8.05024223238e-01
0-PSHAB20_INTERFACE-SA2P0,1.08967064936e-02,7.96909028685e-01
0-PSHAB20_INTERFACE-SA3P0,6.26946254992e-03,7.80425524954e-01
0-PSHAB20_INTERFACE-SA4P0,4.36498415871e-03,7.56349125735e-01
0-PSHAB20_INTERFACE-SA5P0,3.44133448941e-03,7.34890468029e-01
0-PSHAB20_INTERFACE-SA7P5,1.95537566087e-03,7.04318109947e-01
0-PSHAB20_INTERFACE-SA10P0,1.25157789513e-03,6.87796481526e-01
0-PSHAB20_INTERFACE-PGA,2.02870001012e-02,7.91454357496e-01
0-PSHAB20_INTERFACE-PGV,1.95216532021e+00,7.58636276486e-01
0-PSHAB20_SLAB-SA0P01,7.19805699097e-02,7.89668284788e-01
0-PSHAB20_SLAB-SA0P02,7.78462260065e-02,7.95816561778e-01
0-PSHAB20_SLAB-SA0P03,8.37771432985e-02,8.14248119433e-01
0-PSHAB20_SLAB-SA0P05,1.05691366814e-01,8.67054784890e-01
0-PSHAB20_SLAB-SA0P075,1.35586500017e-01,8.99944442730e-01
0-PSHAB20_SLAB-SA0P1,1.58689587375e-01,8.89705569276e-01
0-PSHAB20_SLAB-SA0P15,1.83281681820e-01,8.46817571854e-01
0-PSHAB20_SLAB-SA0P2,1.93331748629e-01,8.26438745462e-01
0-PSHAB20_SLAB-SA0P25,1.88104417586e-01,8.31903840597e-01
0-PSHAB20_SLAB-SA0P3,1.71253449867e-01,8.23446415986e-01
0-PSHAB20_SLAB-SA0P4,1.49480063250e-01,8.21622784494e-01
0-PSHAB20_SLAB-SA0P5,1.26491388754e-01,8.18574370476e-01
0-PSHAB20_SLAB-SA0P75,8.53899125993e-02,8.30700908872e-01
0-PSHAB20_SLAB-SA1P0,6.18931082597e-02,8.19795096350e-01
0-PSHAB20_SLAB-SA1P5,3.59081844251e-02,8.05024223238e-01
0-PSHAB20_SLAB-SA2P0,2.26680607353e-02,7.96909028685e-01
0-PSHAB20_SLAB-SA3P0,1.25351157474e-02,7.80425524954e-01
0-PSHAB20_SLAB-SA4P0,7.74659496901e-03,7.56349125735e-01
0-PSHAB20_SLAB-SA5P0,5.48590963050e-03,7.34890468029e-01
0-PSHAB20_SLAB-SA7P5,2.61850755964e-03,7.04318109947e-01
0-PSHAB20_SLAB-SA10P0,1.57671022525e-03,6.87796481526e-01
0-PSHAB20_SLAB-PGA,7.18617131166e-02,7.91454357496e-01
0-PSHAB20_SLAB-PGV,5.11504074039e+00,7.58636276486e-01
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment