UCVM muscal

From SCECpedia
Revision as of 16:00, 2 April 2026 by Scottcal (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

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

MUSCAL 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.



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
 longitdue: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