Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

CHTtools

Ground motions

As part of the Cascadia CoPes Hub project, a new set of 36 ground motions have been computed using 3D simulations. The surface deformation from these ground motions have been used as sources for tsunami simulations. See ../docs/seismic-and-tsunami-sources.md for more information.

Python tools

The CHTtools module has some functions that may be useful for working with these tsunami sources.

%matplotlib inline
from pylab import *
import os,sys
sys.path.insert(0,'../src')
from CHTuser import CHTtools
from IPython.display import display, Markdown
from importlib import reload
reload(CHTtools)

Short and long names

For labelling tsunami simulation results, we use short versions of the names describing each of the 36 sources, using the following scheme:

CHTtools.name_conversions()
List of events by event number, alphabetized by short name
   1    BL10D    buried-locking-str10-deep 
   2    BL10M    buried-locking-str10-middle 
   3    BL10S    buried-locking-str10-shallow 
   4    BL13D    buried-locking-mur13-deep 
   5    BL13M    buried-locking-mur13-middle 
   6    BL13S    buried-locking-mur13-shallow 
   7    BL16D    buried-locking-skl16-deep 
   8    BL16M    buried-locking-skl16-middle 
   9    BL16S    buried-locking-skl16-shallow 
  10    BR10D    buried-random-str10-deep 
  11    BR10M    buried-random-str10-middle 
  12    BR10S    buried-random-str10-shallow 
  13    BR13D    buried-random-mur13-deep 
  14    BR13M    buried-random-mur13-middle 
  15    BR13S    buried-random-mur13-shallow 
  16    BR16D    buried-random-skl16-deep 
  17    BR16M    buried-random-skl16-middle 
  18    BR16S    buried-random-skl16-shallow 
  19    FL10D    ft-locking-str10-deep 
  20    FL10M    ft-locking-str10-middle 
  21    FL10S    ft-locking-str10-shallow 
  22    FL13D    ft-locking-mur13-deep 
  23    FL13M    ft-locking-mur13-middle 
  24    FL13S    ft-locking-mur13-shallow 
  25    FL16D    ft-locking-skl16-deep 
  26    FL16M    ft-locking-skl16-middle 
  27    FL16S    ft-locking-skl16-shallow 
  28    FR10D    ft-random-str10-deep 
  29    FR10M    ft-random-str10-middle 
  30    FR10S    ft-random-str10-shallow 
  31    FR13D    ft-random-mur13-deep 
  32    FR13M    ft-random-mur13-middle 
  33    FR13S    ft-random-mur13-shallow 
  34    FR16D    ft-random-skl16-deep 
  35    FR16M    ft-random-skl16-middle 
  36    FR16S    ft-random-skl16-shallow 

# print out version to yank and paste into markdown file, with weights:
if 0:
    table_str = CHTtools.name_conversions(markdown_table=True, add_weights=True)
    print(table_str)

Converting names

The function CHTtools.shortname may be useful for converting older file names:

CHTtools.shortname('buried-random-str10-middle')
'BR10M'

One problem we’ve had in the past is that dashes and underscores have not been used consistently in the long file names, so the shortname function accepts all combinations, e.g.

CHTtools.shortname('buried_random-str10_middle')
'BR10M'

Conversely, you can convert from a short name to a long name:

CHTtools.longname('BR10M')
'buried-random-str10-middle'

By default the delimiter is dash, but you can specify and arbitrary delimiter:

CHTtools.longname('BR10M', delimiter='_')
'buried_random_str10_middle'
# print a table of conversions alphabetized by long name:
#CHTtools.name_conversions_long_to_short()

Logic tree

The names are based on a logic tree that follows the National Seismic Hazard Model logic tree, which weighted buried events 0.75 and frontal thrust 0.25, and then the following weights for the downdip limits: Deep: 0.2, Middle: 0.5, Shallow: 0.3. Within each of these 6 branches there are 6 events that have equal weights, since both the slip distribution and magnitude-area relationship branches are equally weighted.

If one wants to assign conditional probabilities to each of these events, this might be done by assigning a weight equal to the product of weights on the branches leading to it, e.g. BR16D would have weight 0.75 * 0.2 * (1/6) = 0.025.

See Cascadia CoPes Hub Ground Motions and Tsunami Sources for a graph of the logic tree.

Computing weights

The function CHTtools.logic_tree_weights returns a dictionary of all the logic tree weights:

weights = CHTtools.logic_tree_weights()
event = 'BL13D'
print(f'Event {event} has weight {weights['BL13D']}')
Event BL13D has weight 0.0375

Accessing ground motion data on DesignSafe

Ground motion data published in Dunham et al. (2025) can be accessed on DesignSafe JupyterHub in directory ~/NHERI-Published/PRJ-5885, which contains:

bgrid_bb/   bgrid_im_files/  model/    pnsn_det/
bgrid_det/  logfiles/        pnsn_bb/  pnsn_im_files/
ls ~/NHERI-Published/PRJ-5885  # only works on DesignSafe
ls: /Users/rjl/NHERI-Published/PRJ-5885: No such file or directory

GeoClaw dtopo files

See Shared data files on TACC

Working with netCDF files

Tsunami simulation results are often combined into netCDF files.

For gauge time series, see the notebooks listed in Loading and plotting Gauge output.

More information to appear.

References
  1. Dunham, A., Wirth, E., grant, alex, & Frankel, A. (2025). CSZ Full-Margin Megathrust Earthquake Scenarios. Designsafe-CI. 10.17603/DS2-DQRM-DH11