From 5cd98c559352c72e8275151819ec7757cdac0332 Mon Sep 17 00:00:00 2001 From: Kevin Milner Date: Fri, 5 Nov 2021 16:32:23 -0700 Subject: [PATCH 1/8] added additional periods to RotD100 calculation --- bbp/src/ucb/rotd50/rotd100.f | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/bbp/src/ucb/rotd50/rotd100.f b/bbp/src/ucb/rotd50/rotd100.f index 25f60486..e712afca 100644 --- a/bbp/src/ucb/rotd50/rotd100.f +++ b/bbp/src/ucb/rotd50/rotd100.f @@ -30,22 +30,22 @@ program Calc_RotD50 real dt10 real x0(MAXPTS), y0(MAXPTS), u(MAXPTS), y2(MAXPTS) real rspTH1(MAXPTS), rspTH2(MAXPTS), rsp1(MAXPTS), rsp2(MAXPTS) - real x(MAXPTS), y(MAXPTS), rsp_Period(63), famp15(3) + real x(MAXPTS), y(MAXPTS), rsp_Period(65), famp15(3) real rotangle, w(200), sa(1000), workArray(1000), rotD50(3,200), rotD100(3,200), psa5E(200), psa5N(200) integer rD100ang(3,200), rD50ang(3,200) real saUnsort(1000) real damping complex cu1(MAXPTS) - data RSP_Period / 0.010, 0.011, 0.012, 0.013, 0.015, 0.017, 0.020, 0.022, 0.025, 0.029, - 1 0.032, 0.035, 0.040, 0.045, 0.050, 0.055, 0.060, 0.065, 0.075, 0.085, - 2 0.100, 0.110, 0.120, 0.130, 0.150, 0.170, 0.200, 0.220, 0.240, 0.260, - 3 0.280, 0.300, 0.350, 0.400, 0.450, 0.500, 0.550, 0.600, 0.650, 0.750, - 4 0.850, 1.000, 1.100, 1.200, 1.300, 1.500, 1.700, 2.000, 2.200, 2.400, - 5 2.600, 2.800, 3.000, 3.500, 4.000, 4.400, 5.000, 5.500, 6.000, 6.500, - 6 7.500, 8.500, 10.000 / + data RSP_Period / 0.0001, 0.001, 0.010, 0.011, 0.012, 0.013, 0.015, 0.017, 0.020, 0.022, + 1 0.025, 0.029, 0.032, 0.035, 0.040, 0.045, 0.050, 0.055, 0.060, 0.065, + 2 0.075, 0.085, 0.100, 0.110, 0.120, 0.130, 0.150, 0.170, 0.200, 0.220, + 3 0.240, 0.260, 0.280, 0.300, 0.350, 0.400, 0.450, 0.500, 0.550, 0.600, + 4 0.650, 0.750, 0.850, 1.000, 1.100, 1.200, 1.300, 1.500, 1.700, 2.000, + 5 2.200, 2.400, 2.600, 2.800, 3.000, 3.500, 4.000, 4.400, 5.000, 5.500, + 6 6.000, 6.500, 7.500, 8.500, 10.000 / - nFreq = 63 + nFreq = 65 damping = 0.05 dt_max = 0.001 From ed9347c7d6c86e985af91103d2902c74cc1e53e1 Mon Sep 17 00:00:00 2001 From: Kevin Milner Date: Fri, 5 Nov 2021 16:33:11 -0700 Subject: [PATCH 2/8] new rotd velocity module --- bbp/comps/bbp_formatter.py | 24 ++++-- bbp/comps/rotd_vel.py | 164 +++++++++++++++++++++++++++++++++++++ 2 files changed, 181 insertions(+), 7 deletions(-) create mode 100644 bbp/comps/rotd_vel.py diff --git a/bbp/comps/bbp_formatter.py b/bbp/comps/bbp_formatter.py index 217f6578..0279e0a0 100644 --- a/bbp/comps/bbp_formatter.py +++ b/bbp/comps/bbp_formatter.py @@ -173,7 +173,7 @@ def peer2bbp(in_peer_n_file, in_peer_e_file, in_peer_z_file, out_bbp_file): # Lastly, close the file bbp_file.close() -def bbp2peer(in_bbp_file, out_peer_n_file, out_peer_e_file, out_peer_z_file): +def bbp2peer(in_bbp_file, out_peer_n_file, out_peer_e_file, out_peer_z_file, accel=True): """ Convert bbp file into three peer files for use by RotD50 and other programs that input PEER format seismograms @@ -233,9 +233,14 @@ def bbp2peer(in_bbp_file, out_peer_n_file, out_peer_e_file, out_peer_z_file): "Error in conversion.") else: dt_vals.append(dt) - n_vals.append(float(elems[1]) / bband_utils.G2CMSS) - e_vals.append(float(elems[2]) / bband_utils.G2CMSS) - z_vals.append(float(elems[3]) / bband_utils.G2CMSS) + if accel: + n_vals.append(float(elems[1]) / bband_utils.G2CMSS) + e_vals.append(float(elems[2]) / bband_utils.G2CMSS) + z_vals.append(float(elems[3]) / bband_utils.G2CMSS) + else: + n_vals.append(float(elems[1])) + e_vals.append(float(elems[2])) + z_vals.append(float(elems[3])) # Prepare to write 6 colume format n_file = open(out_peer_n_file, "w") @@ -255,11 +260,16 @@ def bbp2peer(in_bbp_file, out_peer_n_file, out_peer_e_file, out_peer_z_file): e_file.write(line) z_file.write(line) - n_file.write("Acceleration in g\n") + if accel: + n_file.write("Acceleration in g\n") + e_file.write("Acceleration in g\n") + z_file.write("Acceleration in g\n") + else: + n_file.write("Velicity in cm/sec\n") + e_file.write("Velicity in cm/sec\n") + z_file.write("Velicity in cm/sec\n") n_file.write(" %d %1.6f NPTS, DT\n" % (npts, dt)) - e_file.write("Acceleration in g\n") e_file.write(" %d %1.6f NPTS, DT\n" % (npts, dt)) - z_file.write("Acceleration in g\n") z_file.write(" %d %1.6f NPTS, DT\n" % (npts, dt)) cur_line = 0 diff --git a/bbp/comps/rotd_vel.py b/bbp/comps/rotd_vel.py new file mode 100644 index 00000000..0650d987 --- /dev/null +++ b/bbp/comps/rotd_vel.py @@ -0,0 +1,164 @@ +#!/usr/bin/env python +""" +Copyright 2010-2017 University Of Southern California + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +""" +from __future__ import division, print_function + +# Import Python modules +import os +import sys + +# Import Broadband modules +import bband_utils +import install_cfg +import bbp_formatter +from station_list import StationList + +class RotDVel(object): + """ + BBP module implementation of rotd50 for velocity provided by UCB. + Rotd50 inputs seismograms and outputs response spectra + """ + @staticmethod + def do_rotd_vel(workdir, peer_input_e_file, peer_input_n_file, + peer_input_z_file, output_rotd_file, + logfile): + """ + This function runs the rotd50 command inside workdir, using + the inputs and outputs specified + """ + install = install_cfg.InstallCfg.getInstance() + + # Make sure we don't have absolute path names + peer_input_e_file = os.path.basename(peer_input_e_file) + peer_input_n_file = os.path.basename(peer_input_n_file) + peer_input_z_file = os.path.basename(peer_input_z_file) + output_rotd_file = os.path.basename(output_rotd_file) + + # Save cwd, change back to it at the end + old_cwd = os.getcwd() + os.chdir(workdir) + + # Make sure we remove the output files first or Fortran will + # complain if they already exist + try: + os.unlink(output_rotd_file) + except OSError: + pass + + # + # write config file for rotd100 program + rd50_conf = open("rotd100_inp.cfg", 'w') + # This flag indicates inputs acceleration + rd50_conf.write("2 interp flag\n") + # This flag indicate we are processing two input files (horizontals) + rd50_conf.write("1 Npairs\n") + # Number of headers in the file + rd50_conf.write("6 Nhead\n") + rd50_conf.write("%s\n" % peer_input_e_file) + rd50_conf.write("%s\n" % peer_input_n_file) + rd50_conf.write("%s\n" % output_rotd_file) + # Close file + rd50_conf.close() + + progstring = ("%s/rotd100 >> %s 2>&1" % (install.A_UCB_BIN_DIR, logfile)) + bband_utils.runprog(progstring, abort_on_error=True, print_cmd=False) + + # Restore working directory + os.chdir(old_cwd) + + def __init__(self, i_r_stations, sim_id=0): + """ + Initializes class variables + """ + self.sim_id = sim_id + self.r_stations = i_r_stations + + def run(self): + print("RotDVel".center(80, '-')) + # + # convert input bbp acc files to peer format acc files + # + + install = install_cfg.InstallCfg.getInstance() + sim_id = self.sim_id + sta_base = os.path.basename(os.path.splitext(self.r_stations)[0]) + self.log = os.path.join(install.A_OUT_LOG_DIR, str(sim_id), + "%d.rotdvel_%s.log" % (sim_id, sta_base)) + a_statfile = os.path.join(install.A_IN_DATA_DIR, + str(sim_id), + self.r_stations) + a_tmpdir = os.path.join(install.A_TMP_DATA_DIR, str(sim_id)) + a_outdir = os.path.join(install.A_OUT_DATA_DIR, str(sim_id)) + + # + # Make sure the tmp and out directories exist + # + bband_utils.mkdirs([a_tmpdir, a_outdir], print_cmd=False) + + slo = StationList(a_statfile) + site_list = slo.getStationList() + + for site in site_list: + stat = site.scode + print("==> Processing station: %s" % (stat)) + + # Create path names and check if their sizes are within bounds + nsfile = os.path.join(a_tmpdir, + "%d.%s.000" % (sim_id, stat)) + ewfile = os.path.join(a_tmpdir, + "%d.%s.090" % (sim_id, stat)) + udfile = os.path.join(a_tmpdir, + "%d.%s.ver" % (sim_id, stat)) + bbpfile = os.path.join(a_outdir, + "%d.%s.vel.bbp" % (sim_id, stat)) + + bband_utils.check_path_lengths([nsfile, ewfile, udfile], + bband_utils.GP_MAX_FILENAME) + + cmd = ("%s/wcc2bbp " % (install.A_GP_BIN_DIR) + + "wcc2bbp=0 nsfile=%s ewfile=%s udfile=%s < %s >> %s 2>&1" % + (nsfile, ewfile, udfile, bbpfile, self.log)) + bband_utils.runprog(cmd, abort_on_error=True, print_cmd=False) + + # Now we need to convert to peer format + out_n_vel = os.path.join(a_tmpdir, + "%d.%s.peer_n.vel" % (sim_id, stat)) + out_e_vel = os.path.join(a_tmpdir, + "%d.%s.peer_e.vel" % (sim_id, stat)) + out_z_vel = os.path.join(a_tmpdir, + "%d.%s.peer_z.vel" % (sim_id, stat)) + bbp_formatter.bbp2peer(bbpfile, out_n_vel, out_e_vel, out_z_vel, accel=False) + + # Let's have rotD50 create these output files + out_rotd_base = "%d.%s.rdvel" % (sim_id, stat) + tmp_rotd = os.path.join(a_tmpdir, out_rotd_base) + out_rotd = os.path.join(a_outdir, out_rotd_base) + + # Run the rotD50 program + self.do_rotd_vel(a_tmpdir, out_e_vel, out_n_vel, out_z_vel, + out_rotd, self.log) + + cmd = "cp %s %s" % (tmp_rotd, out_rotd) + bband_utils.runprog(cmd, abort_on_error=True, print_cmd=False) + + # All done! + print("RotDVel Completed".center(80, '-')) + +if __name__ == '__main__': + print("Testing Module: %s" % (os.path.basename(sys.argv[0]))) + ME = RotDVel(sys.argv[1], sim_id=int(sys.argv[2])) + ME.run() + sys.exit(0) From 881ff581b9e00bc558ea860f405d0799e95d5b1d Mon Sep 17 00:00:00 2001 From: Kevin Milner Date: Fri, 5 Nov 2021 16:33:54 -0700 Subject: [PATCH 3/8] turned arias duration tool into a module --- bbp/comps/arias_duration.py | 118 ++++++++++++++++++++++++++++++++++-- 1 file changed, 114 insertions(+), 4 deletions(-) diff --git a/bbp/comps/arias_duration.py b/bbp/comps/arias_duration.py index d16e85ab..0bf8da5e 100644 --- a/bbp/comps/arias_duration.py +++ b/bbp/comps/arias_duration.py @@ -21,9 +21,17 @@ from __future__ import division, print_function # G2CMSS = 980.665 # Convert g to cm/s/s +import os +import sys import math import scipy.integrate +# Import Broadband modules +import bband_utils +import install_cfg +import bbp_formatter +from station_list import StationList + # Converting to cm units. Use approximation to g G_TO_CMS = 981.0 # %(cm/s) @@ -146,19 +154,31 @@ def ad_from_acc(a_in_peer_file, a_out_ad): else: ia_norm = [0.0 for i_acc in arias_intensity] - # Define the time for AI=5%, 75%, 95% + # Define the time for AI=5%, 20%, 75%, 80%, 95% time_ai5 = 0 for i in range(pts): if ia_norm[i] >= 5: break time_ai5 = dt * i + time_ai20 = 0 + for i in range(pts): + if ia_norm[i] >= 20: + break + time_ai20 = dt * i + time_ai75 = 0 for i in range(pts): if ia_norm[i] >= 75: break time_ai75 = dt * i + time_ai80 = 0 + for i in range(pts): + if ia_norm[i] >= 80: + break + time_ai80 = dt * i + time_ai95 = 0 for i in range(pts): if ia_norm[i] >= 95: @@ -168,6 +188,7 @@ def ad_from_acc(a_in_peer_file, a_out_ad): # Now, calculate the arias intervals 5% to 75% and 5% to 95% time_5_75 = time_ai75 - time_ai5 time_5_95 = time_ai95 - time_ai5 + time_20_80 = time_ai80 - time_ai20 #print("Arias Intervals: 5 to 75 % 6f (secs), 5 to 95 % 6f (secs) " % # (time_5_75, time_5_95)) @@ -197,8 +218,8 @@ def ad_from_acc(a_in_peer_file, a_out_ad): outfile.write("# Arias Intensities from input accel: %s\n" % a_in_peer_file) outfile.write("# Peak Arias Intensity (cm/sec): %f (secs): %f\n" % (arias_intensity_max, (arias_intensity_index * dt))) - outfile.write("# Arias Intervals: T5-75 %f (s), T5-95 %f (secs)\n" % - (time_5_75, time_5_95)) + outfile.write("# Arias Intervals: T5-75 %f (s), T5-95 %f (s), T20-80 %f (s)\n" % + (time_5_75, time_5_95, time_20_80)) outfile.write("# Seconds Accel (g) " "Arias Intensity (cm/s) " "ADNormalized (%)\n") @@ -207,4 +228,93 @@ def ad_from_acc(a_in_peer_file, a_out_ad): outfile.write("% 8f % 8f % 8f % 8f\n" % (dt_vals[i], acc[i], arias_intensity[i], ia_norm[i])) outfile.close() - return 0 + return arias_intensity_max, time_5_75, time_5_95, time_20_80; + +class AriasDuration(object): + """ + BBP module implementation of arias duration + """ + + def __init__(self, i_r_stations, sim_id=0): + """ + Initializes class variables + """ + self.sim_id = sim_id + self.r_stations = i_r_stations + + def run(self): + print("AriasDuration".center(80, '-')) + # + # convert input bbp acc files to peer format acc files + # + + install = install_cfg.InstallCfg.getInstance() + sim_id = self.sim_id + sta_base = os.path.basename(os.path.splitext(self.r_stations)[0]) + self.log = os.path.join(install.A_OUT_LOG_DIR, str(sim_id), + "%d.araisduration_%s.log" % (sim_id, sta_base)) + a_statfile = os.path.join(install.A_IN_DATA_DIR, + str(sim_id), + self.r_stations) + a_tmpdir = os.path.join(install.A_TMP_DATA_DIR, str(sim_id)) + a_outdir = os.path.join(install.A_OUT_DATA_DIR, str(sim_id)) + + # + # Make sure the tmp and out directories exist + # + bband_utils.mkdirs([a_tmpdir, a_outdir], print_cmd=False) + + slo = StationList(a_statfile) + site_list = slo.getStationList() + + for site in site_list: + stat = site.scode + print("==> Processing station: %s" % (stat)) + bbpfile = os.path.join(a_outdir, + "%d.%s.acc.bbp" % (sim_id, stat)) + + # Now we need to convert to peer format + out_n_acc = os.path.join(a_tmpdir, + "%d.%s.peer_n.acc" % (sim_id, stat)) + out_e_acc = os.path.join(a_tmpdir, + "%d.%s.peer_e.acc" % (sim_id, stat)) + out_z_acc = os.path.join(a_tmpdir, + "%d.%s.peer_z.acc" % (sim_id, stat)) + bbp_formatter.bbp2peer(bbpfile, out_n_acc, out_e_acc, out_z_acc, accel=True) + + # Duration output files + out_n_arias = os.path.join(a_outdir, + "%d.%s_N.arias" % (sim_id, stat)) + out_e_arias = os.path.join(a_outdir, + "%d.%s_E.arias" % (sim_id, stat)) + out_z_arias = os.path.join(a_outdir, + "%d.%s_Z.arias" % (sim_id, stat)) + + # compute each one + n_max, n_time_5_75, n_time_5_95, n_time_20_80 = ad_from_acc(out_n_acc, out_n_arias) + e_max, e_time_5_75, e_time_5_95, e_time_20_80 = ad_from_acc(out_e_acc, out_e_arias) + z_max, z_time_5_75, z_time_5_95, z_time_20_80 = ad_from_acc(out_z_acc, out_z_arias) + geo_max = math.sqrt(n_max*e_max) + geo_time_5_75 = math.sqrt(n_time_5_75*e_time_5_75) + geo_time_5_95 = math.sqrt(n_time_5_95*e_time_5_95) + geo_time_20_80 = math.sqrt(n_time_20_80*e_time_20_80) + + # write summary file + out_duration = os.path.join(a_outdir, + "%d.%s.ard" % (sim_id, stat)) + outfile = open(out_duration, "w") + outfile.write("# Component Peak Arias (cm/s) T5-75 (s) T5-95 (s) T20-80 (s)\n") + outfile.write("N %f %f %f %f\n" % (n_max, n_time_5_75, n_time_5_95, n_time_20_80)) + outfile.write("E %f %f %f %f\n" % (e_max, e_time_5_75, e_time_5_95, e_time_20_80)) + outfile.write("Z %f %f %f %f\n" % (z_max, z_time_5_75, z_time_5_95, z_time_20_80)) + outfile.write("GEOM %f %f %f %f\n" % (geo_max, geo_time_5_75, geo_time_5_95, geo_time_20_80)) + outfile.close() + + # All done! + print("AriasDuration Completed".center(80, '-')) + +if __name__ == '__main__': + print("Testing Module: %s" % (os.path.basename(sys.argv[0]))) + ME = AriasDuration(sys.argv[1], sim_id=int(sys.argv[2])) + ME.run() + sys.exit(0) From 940cf6b5130fb361ae8747742dcdcd311ceb97d7 Mon Sep 17 00:00:00 2001 From: Kevin Milner Date: Fri, 5 Nov 2021 16:34:21 -0700 Subject: [PATCH 4/8] imports for new rotd vel and arias duration modules --- bbp/comps/module.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bbp/comps/module.py b/bbp/comps/module.py index bd792406..89dc25a9 100644 --- a/bbp/comps/module.py +++ b/bbp/comps/module.py @@ -33,6 +33,7 @@ from uc_site import UCSite from wcc_siteamp import WccSiteamp from rotd50 import RotD50 +from rotd_vel import RotDVel from fas import FAS from obs_seismograms import ObsSeismograms from copy_seismograms import CopySeismograms @@ -59,6 +60,7 @@ from irikura_gen_srf import IrikuraGenSrf from irikura_hf import IrikuraHF from seismo_soil import SeismoSoil +from arias_duration import AriasDuration class Module(object): def __init__(self): From 1d99560d50636a7f7a94d6f8a2b4b7f53c92ff6b Mon Sep 17 00:00:00 2001 From: Kevin Milner Date: Mon, 24 Nov 2025 17:27:15 -0800 Subject: [PATCH 5/8] updated get_station_list method --- bbp/comps/genslip_cfg.py.bak | 99 ++++++++++++++++++++++++ bbp/comps/rotd_vel.py | 2 +- bbp/src/gp/StochSim/V6.0/hb_high_v6.0.3 | Bin 0 -> 95336 bytes 3 files changed, 100 insertions(+), 1 deletion(-) create mode 100755 bbp/comps/genslip_cfg.py.bak create mode 100755 bbp/src/gp/StochSim/V6.0/hb_high_v6.0.3 diff --git a/bbp/comps/genslip_cfg.py.bak b/bbp/comps/genslip_cfg.py.bak new file mode 100755 index 00000000..e5113f37 --- /dev/null +++ b/bbp/comps/genslip_cfg.py.bak @@ -0,0 +1,99 @@ +#!/usr/bin/env python +""" +Copyright 2010-2020 University Of Southern California + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +Define the configuration parameters for the GP rupture generator +""" +from __future__ import division, print_function + +# Import Python modules +import os +import sys +import random + +# Import Broadband modules +import bband_utils + +def calculate_rvfac(mean_rvfac, range_rvfac, seed, count=0): + """ + This function calculates a random rvfac value based on the mean + and range values, plus a seed to generate a random number + """ + random.seed(seed) + while count > 0: + count = count - 1 + random.seed(int(random.random() * 100000000)) + rvfac = mean_rvfac + range_rvfac * ((random.random() * 2) - 1) + return rvfac + +class GenslipCfg(object): + """ + Define the configuration parameters for the GP rupture generator + """ + + def __init__(self, a_srcfiles): + """ + Sets basic class parameters, then parses a_srcname for more information + """ + + # User defined parms + self.SLIP_SIGMA = 0.75 + # This is now the default inside genslip-3.3, so don't need to use it + # self.RAND_RAKE_RANGE = 60 + + self.RTDEP = 6.5 + self.RTDEP_RANGE = 1.5 + + # mod Kevin 2/23/22, temporary, conversation with RWG + self.MEAN_RVFAC = 0.75 +# self.MEAN_RVFAC = 0.8 + self.RANGE_RVFAC = 0.05 + self.SHAL_VRUP = 0.6 + + # Default RANGE_FWIDTH_FRAC value (randomization disabled) + self.RANGE_FWIDTH_FRAC = 0.0 + + # Default RISETIME_COEF set for western US simulations, + # override in velocity model config file. This parameter used + # to be set to 1.6, but was modified by RWG in November 2013 + # when the Rupture Generator was updated to version 3.3. The + # value was reset to 1.6 for Genslip 5.0.1 +# self.RISETIME_COEF = 1.6 + # mod Kevin 2/23/22, temporary, conversation with RWG + self.RISETIME_COEF = 2.4 + + # self.EXTRA_RTFAC = 0.0 + self.RISETIME_FAC = 2 + self.RT_SCALEFAC = 1 + self.RT_RAND = 0 + + # As in genslip-3.3, we are using 'Mliu' stype, which is the default + # self.STYPE = "ucsb" + + # Extra parameters in genslip-3.3, updated for genslip-5.0.1 + self.SLIP_WATER_LEVEL = -1 + self.DEEP_RISETIMEDEP = 17.5 + self.DEEP_RISETIMEDEP_RANGE = 2.5 + self.DEEP_RISETIME_FAC = 2.0 + + # Read src files + self.CFGDICT = [] + self.num_srcfiles = len(a_srcfiles) + for a_srcfile in a_srcfiles: + self.CFGDICT.append(bband_utils.parse_src_file(a_srcfile)) + +if __name__ == "__main__": + ME = GenslipCfg(sys.argv[1:]) + print("Created Test Config Class: %s" % os.path.basename(sys.argv[0])) diff --git a/bbp/comps/rotd_vel.py b/bbp/comps/rotd_vel.py index 0650d987..d1135b56 100644 --- a/bbp/comps/rotd_vel.py +++ b/bbp/comps/rotd_vel.py @@ -109,7 +109,7 @@ def run(self): bband_utils.mkdirs([a_tmpdir, a_outdir], print_cmd=False) slo = StationList(a_statfile) - site_list = slo.getStationList() + site_list = slo.get_station_list() for site in site_list: stat = site.scode diff --git a/bbp/src/gp/StochSim/V6.0/hb_high_v6.0.3 b/bbp/src/gp/StochSim/V6.0/hb_high_v6.0.3 new file mode 100755 index 0000000000000000000000000000000000000000..9ab0fd574ba06b05c8bd4377c9f72d581a16bbbc GIT binary patch literal 95336 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
WQ?F;JBi9)r9|YX|8a> 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 literal 0 HcmV?d00001 From b38441f1de9dbba11891ea4d92eca15898a86162 Mon Sep 17 00:00:00 2001 From: Kevin Milner Date: Mon, 24 Nov 2025 17:29:04 -0800 Subject: [PATCH 6/8] removed accidental commits --- bbp/comps/genslip_cfg.py.bak | 99 ------------------------ bbp/src/gp/StochSim/V6.0/hb_high_v6.0.3 | Bin 95336 -> 0 bytes 2 files changed, 99 deletions(-) delete mode 100755 bbp/comps/genslip_cfg.py.bak delete mode 100755 bbp/src/gp/StochSim/V6.0/hb_high_v6.0.3 diff --git a/bbp/comps/genslip_cfg.py.bak b/bbp/comps/genslip_cfg.py.bak deleted file mode 100755 index e5113f37..00000000 --- a/bbp/comps/genslip_cfg.py.bak +++ /dev/null @@ -1,99 +0,0 @@ -#!/usr/bin/env python -""" -Copyright 2010-2020 University Of Southern California - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. - -Define the configuration parameters for the GP rupture generator -""" -from __future__ import division, print_function - -# Import Python modules -import os -import sys -import random - -# Import Broadband modules -import bband_utils - -def calculate_rvfac(mean_rvfac, range_rvfac, seed, count=0): - """ - This function calculates a random rvfac value based on the mean - and range values, plus a seed to generate a random number - """ - random.seed(seed) - while count > 0: - count = count - 1 - random.seed(int(random.random() * 100000000)) - rvfac = mean_rvfac + range_rvfac * ((random.random() * 2) - 1) - return rvfac - -class GenslipCfg(object): - """ - Define the configuration parameters for the GP rupture generator - """ - - def __init__(self, a_srcfiles): - """ - Sets basic class parameters, then parses a_srcname for more information - """ - - # User defined parms - self.SLIP_SIGMA = 0.75 - # This is now the default inside genslip-3.3, so don't need to use it - # self.RAND_RAKE_RANGE = 60 - - self.RTDEP = 6.5 - self.RTDEP_RANGE = 1.5 - - # mod Kevin 2/23/22, temporary, conversation with RWG - self.MEAN_RVFAC = 0.75 -# self.MEAN_RVFAC = 0.8 - self.RANGE_RVFAC = 0.05 - self.SHAL_VRUP = 0.6 - - # Default RANGE_FWIDTH_FRAC value (randomization disabled) - self.RANGE_FWIDTH_FRAC = 0.0 - - # Default RISETIME_COEF set for western US simulations, - # override in velocity model config file. This parameter used - # to be set to 1.6, but was modified by RWG in November 2013 - # when the Rupture Generator was updated to version 3.3. The - # value was reset to 1.6 for Genslip 5.0.1 -# self.RISETIME_COEF = 1.6 - # mod Kevin 2/23/22, temporary, conversation with RWG - self.RISETIME_COEF = 2.4 - - # self.EXTRA_RTFAC = 0.0 - self.RISETIME_FAC = 2 - self.RT_SCALEFAC = 1 - self.RT_RAND = 0 - - # As in genslip-3.3, we are using 'Mliu' stype, which is the default - # self.STYPE = "ucsb" - - # Extra parameters in genslip-3.3, updated for genslip-5.0.1 - self.SLIP_WATER_LEVEL = -1 - self.DEEP_RISETIMEDEP = 17.5 - self.DEEP_RISETIMEDEP_RANGE = 2.5 - self.DEEP_RISETIME_FAC = 2.0 - - # Read src files - self.CFGDICT = [] - self.num_srcfiles = len(a_srcfiles) - for a_srcfile in a_srcfiles: - self.CFGDICT.append(bband_utils.parse_src_file(a_srcfile)) - -if __name__ == "__main__": - ME = GenslipCfg(sys.argv[1:]) - print("Created Test Config Class: %s" % os.path.basename(sys.argv[0])) diff --git a/bbp/src/gp/StochSim/V6.0/hb_high_v6.0.3 b/bbp/src/gp/StochSim/V6.0/hb_high_v6.0.3 deleted file mode 100755 index 9ab0fd574ba06b05c8bd4377c9f72d581a16bbbc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95336 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

WQ?F;JBi9)r9|YX|8a> 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 From f0ee327900ff1d688cf30e2f103a7c67bf8963a4 Mon Sep 17 00:00:00 2001 From: Kevin Milner Date: Mon, 24 Nov 2025 17:37:20 -0800 Subject: [PATCH 7/8] updated to be more in line with rd50 module --- bbp/comps/rotd_vel.py | 45 +++++++++++++++++++++++++++++-------------- 1 file changed, 31 insertions(+), 14 deletions(-) diff --git a/bbp/comps/rotd_vel.py b/bbp/comps/rotd_vel.py index d1135b56..e6d1675e 100644 --- a/bbp/comps/rotd_vel.py +++ b/bbp/comps/rotd_vel.py @@ -1,18 +1,34 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 """ -Copyright 2010-2017 University Of Southern California - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +BSD 3-Clause License + +Copyright (c) 2023, University of Southern California +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. """ from __future__ import division, print_function @@ -30,6 +46,7 @@ class RotDVel(object): """ BBP module implementation of rotd50 for velocity provided by UCB. Rotd50 inputs seismograms and outputs response spectra + Largely copied from RotD50 with minor modifications by Kevin Milner for velocity. """ @staticmethod def do_rotd_vel(workdir, peer_input_e_file, peer_input_n_file, From e896536ff61aa64e58801cee15f026cf153c51ef Mon Sep 17 00:00:00 2001 From: Kevin Milner Date: Mon, 24 Nov 2025 17:44:52 -0800 Subject: [PATCH 8/8] fixed station list method --- bbp/comps/arias_duration.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bbp/comps/arias_duration.py b/bbp/comps/arias_duration.py index 798f4b2a..9e89c654 100644 --- a/bbp/comps/arias_duration.py +++ b/bbp/comps/arias_duration.py @@ -288,7 +288,7 @@ def run(self): bband_utils.mkdirs([a_tmpdir, a_outdir], print_cmd=False) slo = StationList(a_statfile) - site_list = slo.getStationList() + site_list = slo.get_station_list() for site in site_list: stat = site.scode