UCVM muscal

From SCECpedia
Jump to navigationJump to search

This page describes the Multi-Scale CALifornia (MUSCAL) velocity model and its integration into UCVM.

Model overview

The MUSCAL Vp and Vs model was created by Te-Yang Yeh and Yehuda Ben-Zion in 2025-6 by starting with the CANVAS tomography model as a base and then integrating multiple regional and local high-resolution models. Each submodel is evaluated to determine where it improves the fit through simulations of M4 historical events to 1 Hz, and then the overall model is updated where the submodel improves the fit.

Model Components

The model was built by starting with a base model (the CANVAS (Doody et al., 2023) tomography model). Next, regional and local models are added where they improve the fit, based on M4 simulations. These simulations were run to 1 Hz with topography using a minimum Vs of 450 m/s. Finally, a spatially varying taper following the Ely approach is added.

Regional Models

Regional models evaluated for inclusion are:

  • Northern California
    • Lin et al. (2010)
    • Furlong et al. (2024)
    • Guo et al. (2024)
  • Central California
    • CCA-06
    • CVM-H v15.1.1
    • CVM-S4.26
    • Guo et al. (2024)
    • Berg et al. (2021)
  • Southern California
    • Fang et al. (2022)
    • CVM-S4.26
    • CVM-H v15.1.1
    • Berg et al. (2021)

Local Models

Below is a list of local high-resolution models that were evaluated for inclusion.

Northern and Central California:

  • Ridgecrest regional (Li and Ben-Zion (2024))
  • Ridgecrest fault zone (Zhou et al. (2022))
  • San Joaquin basin (Shaw & Plesch (2016))
  • SFCVM v21.1 (Hirakawa & Aagaard (2022))

Southern California:

  • San Jacinto fault zone (Fang et al. (2019))
  • San Gabriel-San Bernardino Basin (Li et al. (2023))
  • Imperial Valley (Persaud et al. (2016))
  • Coachella Valley (Ajala et al. (2019))
  • Santa Maria Basin (Plesch et al. (2020))

Taper

MUSCAL includes a low-velocity taper using the Ely-Jordan approach. Vs30 for this method is produced by merging the Thompson (2018) Vs30 map with the USGS global Vs30 dataset.

The depth of the taper varies depending on the site and ranges from 300m to 1500m.

Delivered Model

The final version of MUSCAL is delivered in netCDF format. The dimensions of the model are <X x Y x Z>. Grid points have a spacing of <m>. The model is interpolated using trilinear interpolation.

Details about the model creation are provided in the paper and the Zenodo page.

Below is a plot of the 3D model extent.



Datasets

zone: 11


 command  use:
    plot_depth_profile.py -n $UCVM_INSTALL_PATH/conf/ucvm.conf -i $UCVM_INSTALL_PATH -d vs -c muscal 
                          -o muscal_small_depth_1000.png -C 'Multi-Scale Statewide California Velocity Model'
                          -v 1000 -b 0 -s 36.5054,-119.0587 -e 30000


big data in netcdf

 model_MSCAL_CANVAS_dll0.01_dz50_cmpd.nc
 4.5G
 longitude:1301 from -126 to -113 
 latitude:1251  from 31 to 43.5
 depth:671      from 0 to 100,000 
                  50 increments until 30,000
                  1000 increments til 100000

Plot Depth profile at 36.5054,-119.0587 in different step increments. No interpretation and access data using nc api

muscal big 50 vs
muscal big 100 vs
muscal big 500 vs
muscal big 1000 vs


File:Muscal big depth-50 matprops.json.txt
File:Muscal big depth-100 matprops.json.txt
File:Muscal big depth-500 matprops.json.txt
File:Muscal big depth-1000 matprops.json.txt

small data in netcdf

  model_MUSCAL_CANVAS_dll0.01_vardz_cmpd.nc 
  2.1G 
 longitdue:1301 from -126 to -113   
 latitude:1251  from 31 to 43.5
 depth:210      from 0 to 99,000 
                  50 increments upto 3000 
                  100 increments upto 5000
                  250 increments upto 10000
                  500 increments upto 30000
                  1000 increments upto 99000


Depth profiles in different steps : 50m,100m,500m,1000m


Direct from netcdf as external file

muscal small 50 vs
muscal small 100 vs
muscal small 500 vs
muscal small 1000 vs
File:Muscal small depth-50 matprops.json.txt
File:Muscal small depth-100 matprops.json.txt
File:Muscal small depth-500 matprops.json.txt
File:Muscal small depth-1000 matprops.json.txt


Loaded in-memory as binary data no interpolation

muscal small 50 vs
muscal small 100 vs
muscal small 500 vs
muscal small 1000 vs
File:Muscal small no interp-50 matprops.json.txt
File:Muscal small no interp-100 matprops.json.txt
File:Muscal small no interp-500 matprops.json.txt
File:Muscal small no interp-1000 matprops.json.txt

Another small dataset in netcdf

 model_MUSCAL_CANVAS_dll0.01_vardz_float32_cmpd.nc
 1.4G
 All longitude, latitude, and depth points are now saved as float32, as well as the vp, vs, and rho. 

Loaded in-memory as binary data with interpolation

muscal small 50 vs
muscal small 100 vs
muscal small 500 vs
muscal small 1000 vs
File:Muscal small interp-50 matprops.json.txt
File:Muscal small interp-100 matprops.json.txt
File:Muscal small interp-500 matprops.json.txt
File:Muscal small interp-1000 matprops.json.txt

Validation

Several steps of pre/post processing are done to original MUSCAL model(netcdf format) in order to incorporate it into UCVM and CVM explorer.

  Because of the speed of netcdf-C code is too slow to support in-time nature of the explorer and would 
  like to have interpolation on query,
     * Number of depth layer is reduced with deeper layers merged into fewer layers
     * preprocessing the netcdf data into binary data files
     * data are all in float32
File:MUSCAL test points deep.txt
File:MUSCAL test points shallow.txt


Final result from ucvm_query, (with interpolation)

File:MUSCAL test points deep.final.txt
File:MUSCAL test points shallow.final.txt

Extended Model

The 3D MUSCAL model is defined over the same volume as the CANVAS base model. However, some simulation regions may extend beyond the boundaries, like the blue corners in the example CyberShake volume for USC below:

USC muscal horiz slice z0.png

To solve this in a consistent and reproducible way, we will extend the MUSCAL model through UCVM. The initial plan is to use the following algorithm:

  1. Query 3D MUSCAL model at a given point.
  2. If the model returns NaNs (indicating the point is beyond the bounds of the 3D model):
    1. Query the 1D MUSCAL model (Te-Yang to provide this).
    2. Determine Vs30 from the USGS Global Vs30 model.
    3. Apply the Ely taper (LVT) to the top 300m.