Difference between revisions of "Preferred Rupture Directivity in Hazard Curve Computations"

From SCECpedia
Jump to navigationJump to search
(→‎Plots: Add runtimes for 90p and USC+SBSM 100p. Add explanation of comparison plots we'll be adding. Detail TODO comments)
Line 65: Line 65:
 
* PDE
 
* PDE
  
All are plotted with periods of 2, 3, 5, and 10 seconds. The modified probabilities are such that the hypocenters are responsible for 90% of the probability, unless otherwise specified.
+
There is a plot for each site of the periods (K) 2, 3, 5, and 10, for a total of 20 plots.
 +
Each figure has the following plot lines
 +
* The reference using original probabilities (Ref)
 +
* Where hypocenters are responsible for 90% of the probability (90p)
 +
* USC and SBSM has additional plot line where hypocenters are responsible for 100% (100p)
  
  
Line 73: Line 77:
 
TODO: Explain where comparison plot was made (Excel) and potential to expand existing OpenSHA Comparison Plot functionality for this purpose.
 
TODO: Explain where comparison plot was made (Excel) and potential to expand existing OpenSHA Comparison Plot functionality for this purpose.
  
 +
TODO: Generate overlay with 10p probabilities as well
 +
TODO: Add command parameters and runtimes for 10p to all sites
  
=== USC 9306 (10p) ===
 
Unlike with other plots, the hypocenters are responsible for 10% of the probability.
 
  
TODO: Add individual plot
+
=== USC 9306 ===
 +
 
 +
TODO: Add plot
  
Compute Time: 33.15 min
+
Compute Time: 20.5 mins (90p), 15.8 mins (100p)
  
 
Command Parameters:
 
Command Parameters:
  
 
<code>
 
<code>
-o src/test/resources/org/opensha/sha/cybershake/plot/HazardCurvePlotter/modprob/\
+
--output-dir src/test/resources/org/opensha/sha/cybershake/plot/HazardCurvePlotter/modprob/90p/USC  \
 +
 
 +
--run-id 9306 \
  
-R 9306 \
+
--component RotD50 \
  
-cmp RotD50 \
+
--period 2,3,5,10 \
  
-rv src/test/resources/org/opensha/sha/cybershake/plot/HazardCurvePlotter/USC_mod_probs_Mojave_Coachella.csv \
+
--rv-probs-csv src/test/resources/org/opensha/sha/cybershake/plot/HazardCurvePlotter/USC_mod_probs_Mojave_Coachella_90p.csv \
  
 
--plot-chars-file src/main/resources/org/opensha/sha/cybershake/conf/robPlot.xml \
 
--plot-chars-file src/main/resources/org/opensha/sha/cybershake/conf/robPlot.xml \
  
-t TXT,PDF \
+
--type TXT,PDF
 
 
-p 2,3,5,10
 
 
</code>
 
</code>
 
=== USC 9306 ===
 
TODO: Add individual plot
 
 
TODO: Add compute time.
 
 
Command Parameters:
 
  
 
<code>
 
<code>
--output-dir src/test/resources/org/opensha/sha/cybershake/plot/HazardCurvePlotter/modprob/USC  \
+
--output-dir src/test/resources/org/opensha/sha/cybershake/plot/HazardCurvePlotter/modprob/100p/USC  \
  
 
--run-id 9306 \
 
--run-id 9306 \
Line 115: Line 114:
 
--period 2,3,5,10 \
 
--period 2,3,5,10 \
  
--rv-probs-csv src/test/resources/org/opensha/sha/cybershake/plot/HazardCurvePlotter/USC_mod_probs_Mojave_Coachella_90p.csv \
+
--rv-probs-csv src/test/resources/org/opensha/sha/cybershake/plot/HazardCurvePlotter/USC_mod_probs_Mojave_Coachella_100p.csv \
  
 
--plot-chars-file src/main/resources/org/opensha/sha/cybershake/conf/robPlot.xml \
 
--plot-chars-file src/main/resources/org/opensha/sha/cybershake/conf/robPlot.xml \
Line 123: Line 122:
  
 
=== ALP 9542 ===
 
=== ALP 9542 ===
TODO: Add individual plot
+
TODO: Add plot
  
TODO: Add compute time.
+
Compute Time: 22.8 mins
  
 
Command Parameters:
 
Command Parameters:
Line 146: Line 145:
  
 
=== SBSM 9320 ===
 
=== SBSM 9320 ===
TODO: Add individual plot
+
TODO: Add plot
  
TODO: Add compute time.
+
Compute Time: 21.1 mins (90p), 17.2 mins (100p)
  
 
Command Parameters:
 
Command Parameters:
  
 
<code>
 
<code>
--output-dir src/test/resources/org/opensha/sha/cybershake/plot/HazardCurvePlotter/modprob/SBSM  \
+
--output-dir src/test/resources/org/opensha/sha/cybershake/plot/HazardCurvePlotter/modprob/90p/SBSM  \
  
 
--run-id 9320 \
 
--run-id 9320 \
Line 162: Line 161:
  
 
--rv-probs-csv src/test/resources/org/opensha/sha/cybershake/plot/HazardCurvePlotter/SBSM_mod_probs_Mojave_Coachella_90p.csv \
 
--rv-probs-csv src/test/resources/org/opensha/sha/cybershake/plot/HazardCurvePlotter/SBSM_mod_probs_Mojave_Coachella_90p.csv \
 +
 +
--plot-chars-file src/main/resources/org/opensha/sha/cybershake/conf/robPlot.xml \
 +
 +
--type TXT,PDF
 +
</code>
 +
 +
<code>
 +
--output-dir src/test/resources/org/opensha/sha/cybershake/plot/HazardCurvePlotter/modprob/100p/SBSM  \
 +
 +
--run-id 9320 \
 +
 +
--component RotD50 \
 +
 +
--period 2,3,5,10 \
 +
 +
--rv-probs-csv src/test/resources/org/opensha/sha/cybershake/plot/HazardCurvePlotter/SBSM_mod_probs_Mojave_Coachella_100p.csv \
  
 
--plot-chars-file src/main/resources/org/opensha/sha/cybershake/conf/robPlot.xml \
 
--plot-chars-file src/main/resources/org/opensha/sha/cybershake/conf/robPlot.xml \
Line 169: Line 184:
  
 
=== SVD 9647 ===
 
=== SVD 9647 ===
TODO: Add individual plot
+
TODO: Add plot
  
TODO: Add compute time.
+
Compute Time: 21.2 mins (90p)
  
 
Command Parameters:
 
Command Parameters:
  
 
<code>
 
<code>
--output-dir src/test/resources/org/opensha/sha/cybershake/plot/HazardCurvePlotter/modprob/SVD  \
+
--output-dir src/test/resources/org/opensha/sha/cybershake/plot/HazardCurvePlotter/modprob/90p/SVD  \
  
 
--run-id 9647 \
 
--run-id 9647 \
Line 192: Line 207:
  
 
=== PDE 9663 ===
 
=== PDE 9663 ===
TODO: Add individual plot
+
TODO: Add plot
  
TODO: Add compute time.
+
Compute Time: 21.2 mins (90p)
  
 
Command Parameters:
 
Command Parameters:
  
 
<code>
 
<code>
--output-dir src/test/resources/org/opensha/sha/cybershake/plot/HazardCurvePlotter/modprob/PDE  \
+
--output-dir src/test/resources/org/opensha/sha/cybershake/plot/HazardCurvePlotter/modprob/90p/PDE  \
  
 
--run-id 9663 \
 
--run-id 9663 \

Revision as of 16:50, 1 July 2025

Notice: This page is still under construction. TODO statements indicate areas still under work.

This page documents efforts to investigate the impact that preferred rupture directions would have on hazard as calculated with CyberShake ground motions in OpenSHA.

Research Plan

There is some evidence that some faults have a preferred rupture direction. To investigate the impact this could have on hazard, we'll identify a handful of faults, modify the probabilities of individual rupture variations to favor those at the preferred end of the fault, and generate new hazard products with the modified probabilities. No new ground motions will need to be calculated; we'll use Study 22.12 and 24.8 ground motions.

Below is a flow chart representing the steps involved in performing this work.

Preferred Rupture Direction flow chart.png

Implementation Details

With the UCERF2 ERF used in Study 22.12 and Study 24.8, probabilities are specified at the rupture level -- that is, for a specific fault segment(s) and magnitude. We then divide the probability by the number of rupture variations to get the uniform probability of each rupture variation. For this work, we will create modified rupture variation probabilities and use these to generate a modified hazard curve.

We will add new functionality to the CyberShake-related code in OpenSHA to support this work. OpenSHA has a defined interface to return a list of probabilities for a given source ID and rupture ID. We'll specify the source ID, rupture ID, rupture variation ID, probability in a CSV file which will be passed to OpenSHA. This file will be parsed and used to populate a data structure, which will then be accessed by an implementation of the interface to determine the new probabilities. For any source ID, rupture ID, rupture variation ID combinations not in the file, we'll use the default UCERF2 probabilities. Then the new probabilities will be used to create a hazard curve.

Modifying the HazardCurvePlotter to allow us to input custom probabilities for rupture variations allows us to compare hazard expected for persistent directivity vs random rupture direction. We can prescribe directivity based on topography or physics reasons and see if the signature is drowned out by randomness of the network or if it still stands out.


New Functionality

The existing OpenSHA command-line tool, HazardCurvePlotter, is able to compute hazard curves and plot them to images locally on a system. We’ve added a new parameter, rv-probs-csv, for a Rupture Variation Probabilities Input CSV file.

Passing this file allows a user to specify directivity for specific rupture variations. Previously, all variations had an equal probability, distributed from the probability of the rupture itself. The sum of probabilities of the variations must still sum to the probability of the corresponding rupture.

Curves with modified probabilities are not cached to the CyberShake database by default. It takes me approximately 4 minutes to compute hazard curves for just period 3 locally on my system. It takes about 33 minutes to compute for periods 2, 3, 5, and 10.

CSV Files

CSV Structure

The input CSV file should have the following columns.

  • Source_ID
  • Rupture_ID
  • Rup_Var_ID
  • Probability

The specified source and rupture acts as a composite key, uniquely identifying a rupture variation. Each rupture at a site is comprised of a set of rupture variations. The CSV file does not need to have an entry for each variation found in the CyberShake database. The remaining unspecified variations are given an equal probability distributed from the difference of the rupture probability and the sum of rupture variation probabilities specified. The formatting, structure, and sum or probabilities are validated in the HazardCurvePlotter.

CSV Generation

To generate the CSV files used for these tests, we created a Python script which takes in a configuration file and outputs a CSV with modified probabilities for selected rupture variations.

The Python script is available here.



TODO: See some examples of input CSVs here.

TODO: The commands utilizing these CSVs and the corresponding runs are found

Plots

The following plots show curves for the following sites:

  • ALP
  • USC
  • SBSM
  • SVD
  • PDE

There is a plot for each site of the periods (K) 2, 3, 5, and 10, for a total of 20 plots. Each figure has the following plot lines

  • The reference using original probabilities (Ref)
  • Where hypocenters are responsible for 90% of the probability (90p)
  • USC and SBSM has additional plot line where hypocenters are responsible for 100% (100p)


TODO: Add comparison 90p plots (1 for each period), overlay reference, and thoughts on impact of modified probabilities overall.


TODO: Explain where comparison plot was made (Excel) and potential to expand existing OpenSHA Comparison Plot functionality for this purpose.

TODO: Generate overlay with 10p probabilities as well TODO: Add command parameters and runtimes for 10p to all sites


USC 9306

TODO: Add plot

Compute Time: 20.5 mins (90p), 15.8 mins (100p)

Command Parameters:

--output-dir src/test/resources/org/opensha/sha/cybershake/plot/HazardCurvePlotter/modprob/90p/USC \

--run-id 9306 \

--component RotD50 \

--period 2,3,5,10 \

--rv-probs-csv src/test/resources/org/opensha/sha/cybershake/plot/HazardCurvePlotter/USC_mod_probs_Mojave_Coachella_90p.csv \

--plot-chars-file src/main/resources/org/opensha/sha/cybershake/conf/robPlot.xml \

--type TXT,PDF

--output-dir src/test/resources/org/opensha/sha/cybershake/plot/HazardCurvePlotter/modprob/100p/USC \

--run-id 9306 \

--component RotD50 \

--period 2,3,5,10 \

--rv-probs-csv src/test/resources/org/opensha/sha/cybershake/plot/HazardCurvePlotter/USC_mod_probs_Mojave_Coachella_100p.csv \

--plot-chars-file src/main/resources/org/opensha/sha/cybershake/conf/robPlot.xml \

--type TXT,PDF

ALP 9542

TODO: Add plot

Compute Time: 22.8 mins

Command Parameters:

--output-dir src/test/resources/org/opensha/sha/cybershake/plot/HazardCurvePlotter/modprob/ALP  \

--run-id 9542 \

--component RotD50 \

--period 2,3,5,10 \

--rv-probs-csv src/test/resources/org/opensha/sha/cybershake/plot/HazardCurvePlotter/ALP_mod_probs_Mojave_Coachella_90p.csv \

--plot-chars-file src/main/resources/org/opensha/sha/cybershake/conf/robPlot.xml \

--type TXT,PDF

SBSM 9320

TODO: Add plot

Compute Time: 21.1 mins (90p), 17.2 mins (100p)

Command Parameters:

--output-dir src/test/resources/org/opensha/sha/cybershake/plot/HazardCurvePlotter/modprob/90p/SBSM  \

--run-id 9320 \

--component RotD50 \

--period 2,3,5,10 \

--rv-probs-csv src/test/resources/org/opensha/sha/cybershake/plot/HazardCurvePlotter/SBSM_mod_probs_Mojave_Coachella_90p.csv \

--plot-chars-file src/main/resources/org/opensha/sha/cybershake/conf/robPlot.xml \

--type TXT,PDF

--output-dir src/test/resources/org/opensha/sha/cybershake/plot/HazardCurvePlotter/modprob/100p/SBSM \

--run-id 9320 \

--component RotD50 \

--period 2,3,5,10 \

--rv-probs-csv src/test/resources/org/opensha/sha/cybershake/plot/HazardCurvePlotter/SBSM_mod_probs_Mojave_Coachella_100p.csv \

--plot-chars-file src/main/resources/org/opensha/sha/cybershake/conf/robPlot.xml \

--type TXT,PDF

SVD 9647

TODO: Add plot

Compute Time: 21.2 mins (90p)

Command Parameters:

--output-dir src/test/resources/org/opensha/sha/cybershake/plot/HazardCurvePlotter/modprob/90p/SVD  \

--run-id 9647 \

--component RotD50 \

--period 2,3,5,10 \

--rv-probs-csv src/test/resources/org/opensha/sha/cybershake/plot/HazardCurvePlotter/SVD_mod_probs_Mojave_Coachella_90p.csv \

--plot-chars-file src/main/resources/org/opensha/sha/cybershake/conf/robPlot.xml \

--type TXT,PDF

PDE 9663

TODO: Add plot

Compute Time: 21.2 mins (90p)

Command Parameters:

--output-dir src/test/resources/org/opensha/sha/cybershake/plot/HazardCurvePlotter/modprob/90p/PDE  \

--run-id 9663 \

--component RotD50 \

--period 2,3,5,10 \

--rv-probs-csv src/test/resources/org/opensha/sha/cybershake/plot/HazardCurvePlotter/PDE_mod_probs_Mojave_Coachella_90p.csv \

--plot-chars-file src/main/resources/org/opensha/sha/cybershake/conf/robPlot.xml \

--type TXT,PDF