You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

To maintain compatibility with current workflows while adding additional functionality to the workflow, we intend to change the way perturbed source parameters are passed to the components of the slurm ground motion workflow.

Proposed workflow change

It has been proposed that srf generation will be split into two steps: perturbation and srf generation.

This will split the current two workflow steps (gcmt2srf, nhm2srf) to generate srfs into three (gcmt2srfgenparams, nhm2srfgenparams, srfgenparams2srf).

There will be an intermediary file containing all the parameters to generate the srf, allowing users to manually modify these files if they choose to do so.

This will be able to be integrated into the automated workflow by making each step work on a single realisation, with a multi process wrapper to allow it to also be used as a stand alone step. Unless configured to not progress past file creation the automated workflow step would not allow time for the user to modify the intermediary file.

For each fault with perturbations a mean file is created in that faults Data directory, this can be used to create the Velocity model (Eventually).

Script usage

Currently 3 scripts are available for the new source perturbation workflow. They are:

  • gcmt_to_srfgen: Takes in a perturbation version, fault selection file and gcmt file, creates srf generation parameter files
  • srfgenparams_to_srf: Takes in an srf generation parameter file and creates the related srf, info, stoch and yaml files
  • generate_srf_from_srfgenparams: Takes in a cybershake root directory and creates all srf, info, stoch and yaml files from available srf generation parameter files

Brief usage information is available below, more help is available by calling "<script> --help".

If Pre-processing is installed using pip these scripts will be available from the terminal.

gcmt_to_srfgen:

Usage: gcmt_to_srfgen.py version fault_selection_file gcmt_file [--n_processes <n>] [–cybershake_root <path>] [–aggregate_file <path>]

Arguments:

  • version: name of the perturbation version to use
  • fault_selection_file: path to the fault selection file for this simulation, uses the standard format
  • gcmt_file: path to the gcmt file to use for this simulation
  • n_processes: number of srf generation parameters to create at once. Values larger than the total number of realisations are not useful. Defaults to 1
  • cybershake_root: path to the simulation root directory. Defaults to the current directory
  • aggregate_file: path to a file to store a copy of all saved values in, useful for manual verification of distributions

srfgenparams_to_srf:

Usage: srfgenparams_to_srf.py srfgenparams_file [–cybershake_root <path>]

Arguments

  • srfgenparams_file: path to the srfgenparams file for a realisation
  • cybershake_root: path to the simulation root directory. Defaults to the current directory

generate_srf_from_srfgenparams:

Usage: generate_srf_from_srfgenparams.py [--n_processes <n>] [–cybershake_root <path>]

Arguments:

  • n_processes: number of srf generation parameters to create at once. Values larger than the total number of realisations are not useful. Defaults to 1
  • cybershake_root: path to the simulation root directory. Defaults to the current directory

Creating perturbations

For a given set of perturbations the user will create a perturbation file, the template for which can be found in Pre-processing/srf_generation/source_parameter_generation/uncertainties, and must be placed in the versions folder in that directory.

The version of the perturbation file is the name of the file (without the .py extension).

There are a number of distributions and transformations available in the files common, distribution and mag_scaling.

Currently available distributions

Distribution nameDistribution variableNotes
uniformhalf_rangemean is the median (middle) value, and half_range half the difference between the highest and lowest value.
uniform_relativescale_factorA normal distribution where the highest and lowest possible value are mean* (1+scale_factor) and mean* (1-scale_factor) respectively. Scale factor to be given as a decimal.
weibullk, scale_factor

Does not take a mean value. Equivalent to scale_factor*(-ln((U))1/a where U is the uniform distribution over [0, 1).

truncated_normalstd_dev, std_dev_limitSimilar to normal distribution, except all values fall within [std_dev_limit] standard deviations of the mean. std_dev_limit has a default value of 2.
truncated_log_normalstd_dev, std_dev_limitSimilar to log normal distribution, except all values of the underlying normal distribution fall within [std_dev_limit] standard deviations of the mean. std_dev_limit has a default value of 2. Mean must be given as a string of the form "log(x)" where x is the unmodified value of the mean.

Internal changes

In order to simplify the implementation of this, we have chosen to have every parameter added to the slurm script and passed as an argument to the simulation script, which will then discard any parameters it does not recognize.

Parameters for srf generation

These parameters are available for srf generation. The parameter and its value must be placed in the results dictionary to be used.

This table only shows values that are currently available, as other values become available they will be added

Key:

  • R: Required to run
  • O: Optional, the default value is given in brackets
ParameterType 1Type 2Type 3Type 4
typeR


nameR (Automatically set)


latitudeR


longitudeR


depthR


magnitude

R




mom

O (calculated from mag using mag2mom)




strike

R




rake

R




dip

R




vs

O (3.2)




rho

O (2.44)




risetime

O (0.5)




target_area_km

O1




target_slip_cm

O1




stype

O ("cos")2




inittime

O (0.0)




rvfac





rough





slip_cov





flen





dlen





fwid





dwid





dtop





shypo





dhypo





1) target_area_km and target_slip_cm are used to calculate the area of the fault plane and slip of the fault. target_area_km takes precedence over target_clip_cm, but if neither are given the area and slip are calculated from the moment.

2) Available options are: brune, urs, ucsb, ucsb-T, ucsb2, ucsb-varT1, esg2006, cos, seki, delta.

Parameters for each component

The parameters for each component are as follows:


hfbb
flo
fmin
fmidbot
lfvsref
sim_bin
t-sec
sdrop
rayset
seed
duration
dt
fmax
kappa
qfexp
rvfac
rvfac_shallow
rvfac_deep
czero
calpha
mom
rupv
velocity-model
site-vm-dir
vs-moho
fa_sig1
fa_sig2
rv_sig1
hf_path_dur
  • No labels