Broadband CyberShake Validation

From SCECpedia
Jump to navigationJump to search

This page follows on CyberShake BBP Verification, moving from 1D comparisons to 3D CyberShake comparisons with both the BBP and observations.

Process

These are the steps involved in comparing CyberShake and BBP results to observations for a verification event.

BBP

  1. Create a working directory.
  2. Create an src_files directory inside it.
  3. Copy the src file from the BBP validation directory into the src_files directory.
  4. Copy the station list into the working directory.
  5. Run run_bbp.py with the '--expert -g' arguments to create an XML file description of the run. Instead of using the defaults for the validation event, point to the station list file in the working directory and the src file in the src_files directory. Include the GP GOF, but not FAS.
  6. Copy the created XML file into the working directory.
  7. Run helper_scripts/create_srcs.sh, which will create 64 random seeds and then create 64 realizations by copying over the initial src file and changing the random seed
  8. Create 64 directories, one for each source.
  9. Run helper_scripts/prepare_lsf_files.sh script. This will copy both the XML file and the run_bbp_src.lsf script into each realization directory, and make the needed changes to each for that realization.
  10. Submit all 64 src_*/run_bbp_src*.lsf files.
  11. Once all 64 run successfully, make a purple_plot/Sims directory, and logs, indata, tmpdata, and outdata directories inside it.
  12. Edit stage_purple_plot.sh to have the right sim_id.
  13. Run stage_purple_plot.sh .
  14. Run utils/batch/combine_gof_gen.py -d purple_plot -o . -c gp
  15. Examine the .png file produced to make sure it looks OK.

CyberShake

Set up and run BBP validation event

    Setup
  1. Create working directory on local system.
  2. Copy in the following scripts:
    • insert_sites_from_list.py
    • pop_seeds.py
    • update_dist.py
    • pop_rvs.py
    • pop_site_ruptures.py

    Create the sites.
  3. Copy over *.stl list from BBP validation event.
  4. Copy stl list into a bbp_to_cs version of the stl list.
  5. Run the script ./check_for_duplicate_stations.py to see if any stations used by this event are already in the CyberShake site list.
  6. For the stations not in the CyberShake site list, determine their full name from https://www.strongmotioncenter.org/wserv/stations/builder/ . If no full name exists, look at Google maps and make one up. Add the abbreviation to the bbp_to_cs file, and add a full entry (lon, lat, short name, long name, 3) for each new site into a sites_to_insert.txt file.
  7. Check each new site short name to make sure one doesn’t already exist in the DB.
  8. Run insert_sites_from_list.py on the sites_to_insert.txt file.

  9. Set up the rupture variations remotely.
  10. On the remote system, create a directory inside the Ruptures_erf60 directory corresponding to the source_id of the run.
  11. Inside the source_id directory, create one directory for each realization, which will each be its own rupture.
  12. Copy the realizations from the BBP tmpdirs in which the realizations were created, into the corresponding source directory.
  13. Create a symlink to each SRF with the name <src_id>_<rup_id>_event<rup_id>.srf .
  14. Create rupture geometries, <src_id>_<rup_id>.txt, for each file. Note that each of these rupture geometries will be slightly different due to the subfaults shifting. To create the rupture geometry files, run RuptureCodes/utils/extract_rup_geom on each rupture.
  15. Determine the distances from each station to each rupture variation by running calc_distance.py for each variation on a site file in lon, lat, short name format.
  16. Copy the rupture geometry files and the distance files back locally.
  17. Copy the random_seeds.txt file from the BBP validation dir/src_files locally.

  18. Insert rupture variations into database.
  19. Run pop_rvs.py, pointing to the rupture geometry files, to insert the rupture variations into the DB.
  20. Run pop_site_ruptures.py, pointing to a site list file, the distance files, and rupture geometry files.
  21. Run pop_seeds.py on the random_seeds.txt file to populate the seeds into the DB.
  22. Create a new RLS file on shock with the LFNs for both the rupture geometries and the SRFs.
  23. Run pegasus-rc-client to insert the LFNs into the DB.

Perform GoF analysis on results

  1. Create a working directory.
  2. Copy the src_files directory from the Broadband validation run directory.
  3. Copy in the *.stl file from the BBP for this validation event.
  4. Create site_list.txt, with one CyberShake site per line.
  5. From another CyberShake validation directory, copy in the following scripts:
    • import.lsf
    • prep.lsf
    • prep_stat.sh
    • rename.py
    • run_gof.sh
    • stage_purple_plot.sh
    • run_cs_src0.lsf
  6. Create a .tgz file on shock with the seismograms for all the stations and all the events.
  7. Unzip this .tgz file into the working directory.
  8. Submit prep.lsf. This will copy the seismograms from the station directories into the src directories, and then process them into BBP-friendly format.
  9. Edit rename.py to point to the BB-to-CS STL file, and then run it to rename the seismograms to include the full BBP site names.
  10. Edit import.lsf to use the correct Run ID prefix, src_id, directory name, and BBP STL file, then submit it. This script will import the seismograms into BBP working directories, so that the BBP can run GoF on them.
  11. Run the BBP to create an XML file which includes running the GoF. To do this, run
    run_bbp.py --expert -g
    When prompted, select
    • 'validation simulation'
    • the validation simulation created in the first part from the list
    • 'GP'
    • yes custom source
    • point to BBP-provided source installed in src_files directory
    • yes rupture generator
    • custom list
    • point to list in the working directory
    • yes site response
    • yes velocity seismogram plots
    • yes acceleration seismogram plots
    • no GMPE comparisons
    • yes goodness-of-fit
    • 'GP'
    • no additional metrics

    Copy the created XML file into the working directory.

  12. Edit run_cs_src0.lsf and set SIM_ID_PREFIX, DIR_NAME, and XML_PREFIX to the correct values for this event.
  13. Edit run_gof.sh to set DIR_NAME and XML_PREFIX to the same values, and modify the paths to the *.src and *.srf files used in the sed commands.
  14. Run run_gof.sh, which will submit a job to calculate GoF for each of the 64 realizations.
  15. Create the directory purple_plot/Sims. Inside there, create 4 directories: logs, indata, tmpdata, and outdata.
  16. Edit stage_purple_plot.sh to use the correct sim id.
  17. Run stage_purple_plot.sh.
  18. Create the directory purple_plot_output.
  19. Run bbp/utils/batch/combine_gof_gen.py -d purple_plot -o purple_plot_output -c gp to produce a purple plot, combining the GoF results from all stations and events.
  20. Run bbp/utils/batch/compare_bbp_runs.py -d purple_plot -o purple_plot_output/ -c gp to generate the bias values.

Northridge

1D BBP comparisons

We calculated 64 realizations for Northridge for these 38 stations.

Some of the differences between the 1D BBP and 3D CyberShake results can be attributed to differences in site response, which is calculated based on the reference velocity ('vref') and the vs30 of the site. A spreadsheet with vref and Vs30 for both the BBP and CyberShake is available File:BBP v CyberShake Northridge vs30.xls

V1 (2/14/22)

Initially, we used vref=500 for both the high-frequency and low-frequency site response. However, this is incorrect; vref for the low-frequency should vary depending on the properties of the 3D velocity mesh.

V2 (2/25/22)

We continued to use vref=500 for the high-frequency site response. For the low-frequency site response, we are now using the same vref we used in Study 15.12:

vref_LF_eff = Vs30 * [ VsD5H / Vs5H ]

Vs30 = 30 / Sum (1/(Vs sampled from [0.5,29.5] in 1 meter increments))

H = grid spacing

Vs5H = travel time averaged Vs, computed from the CVM in 1 meter increments down to a depth of 5*H

VsD5H = discrete travel time averaged Vs computed from 3D velocity mesh used in the SGT calculation over the upper 5 grid points

So, for H=100m Vs5H would be:

Vs500 = 500 / ( Sum ( 1 / Vs sampled from [0.5,499.5] in 1 meter increments ))

And then VsD5H is given by:

VsD500 = 5/{ 0.5/Vs(Z=0m) + 1/Vs(Z=100m) + 1/Vs(Z=200m) + 1/Vs(Z=300m) + 1/Vs(Z=400m) + 0.5/Vs(Z=500m) }

Below are the ts_process plots for a subset of 10 stations, comparing the 3D CyberShake with 1D BBP results.

Site TS Process plot
SCE
Ts process SCE src0 2 25.png
SYL
Ts process SYL src0 2 25.png
LDM
Ts process LDM src0 2 25.png
PAC
Ts process PAC src0 2 25.png
PKC
Ts process PKC src0 2 25.png
SPV
Ts process SPV src0 2 25.png
WON
Ts process WON src0 2 25.png
KAT
Ts process KAT src0 2 25.png
RO3
Ts process RO3 src0 2 25.png
ANA
Ts process ANA src0 2 25.png

V3 (3/2/22)

Next, we recalculated the CyberShake results for 10 sites, using the BBP vs30 values for both the low-frequency and high-frequency elements. Note that the vref low-frequency value for CyberShake is still being derived from the velocity model.

Site TS Process plot
SCE
Ts process SCE src0 3 2.png
SYL
Ts process SYL src0 3 2.png
LDM
Ts process LDM src0 3 2.png
PAC
Ts process PAC src0 3 2.png
PKC
Ts process PKC src0 3 2.png
SPV
Ts process SPV src0 3 2.png
WON
Ts process WON src0 3 2.png
KAT
Ts process KAT src0 3 2.png
RO3
Ts process RO3 src0 3 2.png
ANA
Ts process ANA src0 3 2.png


Observational Comparisons

We calculated goodness-of-fit results for both Broadband CyberShake and the BBP against observations for Northridge, using the 64 realizations and 38 stations.

TS process plots comparing the 3 results are available here: v1 ts process plots.

Broadband Platform

Overall GoF GoF, best realization (#7) GoF, worse realization (#15)
BBP-GoF-NR-combined.png
BBP-GoF-NR-real7.png
BBP-GoF-NR-real15.png

CyberShake v4_8

Overall GoF GoF, best realization (#53) GoF, worse realization (#54)
CyberShake-GoF-NR-4 8 combined.png
CyberShake-GoF-NR-4 8 real53.png
CyberShake-GoF-NR-4 8 real54.png

Broadband Platform, updated frequency bands

We realized that our GoF comparisons were run using hard-coded frequency bands of [0.05, 50] Hz. This was correct when doing CS-to-BBP comparisons, but not correct when using observations. We updated the frequency bands and reran the GoF.

Overall GoF GoF, best BBP realization (#47) GoF, worst BBP realization (#25) GoF, best CS realization (#40) GoF, worst CS realization (#37)
BBP-freqbands-GoF-NR-combined.png
BBP-freqbands-GoF-NR-real47.png
BBP-freqbands-GoF-NR-real25.png
BBP-freqbands-GoF-NR-real40.png
BBP-freqbands-GoF-NR-real37.png


CyberShake v4_8, updated frequency bands

As above, reran the GoF.

Overall GoF GoF, best CS realization (#40) GoF, worst CS realization (#37) GoF, best BBP realization (#47) GoF, worst BBP realization (#25)
CyberShake-GoF-NR-4 8 freqbands combined.png
CyberShake-GoF-NR-4 8 freqbands real40.png
CyberShake-GoF-NR-4 8 freqbands real37.png
CyberShake-GoF-NR-4 8 freqbands real47.png
CyberShake-GoF-NR-4 8 freqbands real25.png


CyberShake v4_28, BBP Vs30

We recalculated the CyberShake GoF results, using the BBP Vs30 values.

Overall GoF GoF, best CS realization (#40) GoF, worst CS realization (#51) GoF, best BBP realization (#47) GoF, worst BBP realization (#25)
CyberShake-GoF-NR-4 28 combined.png
CyberShake-GoF-NR-4 28 real40.png
CyberShake-GoF-NR-4 28 real51.png
CyberShake-GoF-NR-4 28 real47.png
CyberShake-GoF-NR-4 28 real25.png

BBP, FAS

CyberShake-GoF-NR-BBP FAS.png

CyberShake v4_7, FAS

CyberShake-GoF-NR-4 7 FAS.png

Observational Comparisons, BBP v22.4

We repeated the comparisons, using BBP v22.4 for both the 1D BBP and 3D CyberShake calculations.

BBP

Overall GoF GoF, best BBP realization (#6) GoF, worst BBP realization (#51) GoF, best CS realization (#40) GoF, worst CS realization (#51)
BBP-v22.4-GoF-NR-combined.png
BBP-v22.4-GoF-NR-real6.png
BBP-v22.4-GoF-NR-real51.png
BBP-v22.4-GoF-NR-real40.png
BBP-v22.4-GoF-NR-real51.png

CyberShake

Overall GoF GoF, best CS realization (#40) GoF, worst CS realization (#51) GoF, best BBP realization (#6) GoF, worst BBP realization (#51)
CyberShake-GoF-NR-9 1 combined.png
CyberShake-GoF-NR-9 1 real40.png
CyberShake-GoF-NR-9 1 real51.png
CyberShake-GoF-NR-9 1 real6.png
CyberShake-GoF-NR-9 1 real51.png

CyberShake, updated velocity model

Overall GoF GoF, best CS realization (#33) GoF, worst CS realization (#51)
CyberShake-GoF-NR-11 28 combined.png
CyberShake-GoF-NR-11 28 real33.png
CyberShake-GoF-NR-11 28 real51.png

Study 22.12 configuration

These are the validation results using the Study 22.12 configuration, with risetime_coef=2.3 and hb_high_v6.1.1.

BBP (12/9/22)

Overall GoF GoF, best CS realization (#40) GoF, worst CS realization (#9) GoF, best BBP realization (#6) GoF, worst BBP realization (#51)
CyberShake-GoF-NR-12 9 combined.png
CyberShake-GoF-NR-12 9 real40.png
CyberShake-GoF-NR-12 9 real9.png
CyberShake-GoF-NR-12 9 real6.png
CyberShake-GoF-NR-12 9 real51.png

CyberShake (12/11/22)

Overall GoF GoF, best CS realization (#40) GoF, worst CS realization (#9) GoF, best BBP realization (#6) GoF, worst BBP realization (#51)
CyberShake-GoF-NR-12 11 combined.png
CyberShake-GoF-NR-12 11 real40.png
CyberShake-GoF-NR-12 11 real9.png
CyberShake-GoF-NR-12 11 real6.png
CyberShake-GoF-NR-12 11 real51.png

Chino Hills

For our second event, we selected Chino Hills.

Sites

The BBP validation event for Chino Hills has 40 stations. A KML file with the stations is available here.

BBP

Overall GoF GoF, best realization (#24) GoF, worst realization (#35) GoF, worst CS realization (#34)
BBP-GoF-CH-combined.png
BBP-GoF-CH-real24.png
BBP-GoF-CH-real35.png
BBP-GoF-CH-real34.png
BBP-GoF-CH-FAS-combined.png

CyberShake

Overall GoF GoF, best realization (#24) GoF, worst realization (#34) GoF, worst BBP realization (#35)
CS-GoF-CH-combined.png
CS-GoF-CH-real24.png
CS-GoF-CH-real34.png
CS-GoF-CH-real35.png
CS-GoF-CH-FAS-combined.png

CyberShake, BBP Vs30 values

Overall GoF GoF, best realization (#24) GoF, worst realization (#34) GoF, worst BBP realization (#35)
CS-BBPvs30-GoF-CH-combined.png
CS-BBPvs30-GoF-CH-real24.png
CS-BBPvs30-GoF-CH-real34.png
CS-BBPvs30-GoF-CH-real35.png
CS-BBPvs30-GoF-CH-FAS-combined.png

CyberShake, BBP v22.4

Overall GoF GoF, best realization (#24) GoF, worst realization (#34) GoF, best BBP realization (#24) GoF, worst BBP realization (#35)
CS-9 2-GoF-CH-combined.png
CS-9 2-GoF-CH-real24.png
CS-9 2-GoF-CH-real34.png
CS-9 2-GoF-CH-real24.png
CS-9 2-GoF-CH-real35.png

CyberShake, BBP v22.4, BBP Vs30

Whittier

Our third event is Whittier.

Sites

The BBP validation event for Whittier has 39 stations, one of which is a duplicate. A KML file with the 38 stations used in these tests is available here.

BBP

Overall GoF GoF, best realization (#15) GoF, worst realization (#7) GoF, best CS realization (#62) GoF, worst CS realization (#3)
BBP-GoF-WH-combined.png
BBP-GoF-WH-2022052315.png
BBP-GoF-WH-2022052307.png
BBP-GoF-WH-2022052362.png
BBP-GoF-WH-2022052303.png
BBP-GoF-WH-FAS-combined.png

CyberShake

These results are incomplete, without 2 of the stations (VER and PMN).

Overall GoF GoF, best realization (#62) GoF, worst realization (#3) GoF, best BBP realization (#15) GoF, worst BBP realization (#7)
CS-GoF-WH-combined.png
CS-GoF-WH-2022061362.png
CS-GoF-WH-2022061303.png
CS-GoF-WH-2022061315.png
CS-GoF-WH-2022061307.png

CyberShake, BBP Vs30 values

Overall GoF GoF, best realization GoF, worst realization GoF, best BBP realization GoF, worst BBP realization

CyberShake, BBP v22.4

Overall GoF GoF, best realization (#62) GoF, worst realization (#39) GoF, best BBP realization (#15) GoF, worst BBP realization (#7)
CS-9 4-GoF-WH-combined.png
CS-9 4-GoF-WH-real62.png
CS-9 4-GoF-WH-real39.png
CS-9 4-GoF-WH-real15.png
CS-9 4-GoF-WH-real7.png

CyberShake, BBP v22.4, BBP Vs30 values

Landers

Single fault realization

CS (2/15/22)

Overall GoF GoF, best CS realization (#6) GoF, best BBP realization (#13)
CS-GoF-Landers-2 15 combined.png
CS-GoF-Landers-2 15 real6.png
CS-GoF-Landers-2 15 real13.png

BBP (12/10/22)

Overall GoF GoF, best CS realization (#9) GoF, best BBP realization (#13)
BBP-GoF-Landers-12 10 combined.png
BBP-GoF-Landers-12 10 real9.png
BBP-GoF-Landers-12 10 real13.png

CyberShake (Study 22.12 configuration, 12/12/22)

Overall GoF GoF, best CS realization (#9) GoF, worst CS realization (#22) GoF, best BBP realization (#13) GoF, worst BBP realization (#22)
CS-GoF-Landers-12 12 combined.png
CS-GoF-Landers-12 12 real9.png
CS-GoF-Landers-12 12 real22.png
CS-GoF-Landers-12 12 real13.png
CS-GoF-Landers-12 12 real22.png

GMPE

GMPE-GoF-Landers-single.png

Multi fault realization

BBP

Overall GoF GoF, best CS realization (#54) GoF, worst CS realization (#11) GoF, best BBP realization (#55) GoF, worst BBP realization (#11)
BBP-GoF-Landers-9 22 combined.png
BBP-GoF-Landers-9 22 real54.png
BBP-GoF-Landers-9 22 real11.png
BBP-GoF-Landers-9 22 real55.png
BBP-GoF-Landers-9 22 real11.png

CyberShake

Overall GoF GoF, best CS realization (#54) GoF, worst CS realization (#11) GoF, best BBP realization (#55) GoF, worst BBP realization (#11)
CyberShake-GoF-Landers-8 25 combined.png
CyberShake-GoF-Landers-8 25 real54.png
CyberShake-GoF-Landers-8 25 real11.png
CyberShake-GoF-Landers-8 25 real55.png
CyberShake-GoF-Landers-8 25 real11.png

GMPE

Fabio notes that the GMPE codes we have on the BBP are not set up for multi-segment events, and probably only use the first segment in the rupture.

GMPE-GoF-Landers-multi.png

Ridgecrest

We looked at both the smaller Ridgecrest (7/4/19, M6.4) 'A' event and the larger (7/6/19, M7.1) multi-fault 'C' event.

Ridgecrest A

BBP (6/19/23)

Overall GoF GoF, best CS realization (#6) GoF, worst CS realization (#16) GoF, best BBP realization (#27) GoF, worst BBP realization (#16)
BBP-GoF-RidgecrestA-6 19 combined.png
BBP-GoF-RidgecrestA-6 19 real06.png
BBP-GoF-RidgecrestA-6 19 real16.png
BBP-GoF-RidgecrestA-6 19 real27.png
BBP-GoF-RidgecrestA-6 19 real16.png

CyberShake (9/29/23)

Overall GoF GoF, best CS realization (#6) GoF, worst CS realization (#16) GoF, best BBP realization (#27) GoF, worst BBP realization (#16)
CyberShake-GoF-RidgecrestA-9 29 combined.png
CyberShake-GoF-RidgecrestA-9 29 real06.png
CyberShake-GoF-RidgecrestA-9 29 real16.png
CyberShake-GoF-RidgecrestA-9 29 real27.png
CyberShake-GoF-RidgecrestA-9 29 real16.png

GMPE

Ridgecrest C multi-fault

North Palm Springs