Files
TomoATT/test/old_tests/update_input_file/params_log.yaml
2025-12-17 10:53:43 +08:00

237 lines
14 KiB
YAML

version: 2
domain:
min_max_dep: [-10, 10] # depth in km
min_max_lat: [37.7, 42.3] # latitude in degree
min_max_lon: [22.7, 27.3] # longitude in degree
n_rtp: [10, 50, 50] # number of nodes in depth,latitude,longitude direction
source:
src_rec_file: OUTPUT_FILES/src_rec_file_forward.dat # source receiver file path
swap_src_rec: true # swap source and receiver
model:
init_model_path: ./test_model_init.h5 # path to initial model file
# model_1d_name: dummy_model_1d_name # 1D model name used in teleseismic 2D solver (iasp91, ak135, user_defined is available), defined in include/1d_model.h
parallel: # parameters for parallel computation
n_sims: 1 # number of simultanoues runs
ndiv_rtp: [1, 2, 2] # number of subdivision on each direction
nproc_sub: 2 # number of processors for sweep parallelization
use_gpu: true # 1 if use gpu (EXPERIMENTAL)
output_setting:
######### moved to here
output_dir: ./OUTPUT_FILES/ # path to output director (default is ./OUTPUT_FILES/)
output_source_field: false # output the calculated field of all sources 1 for yes; 0 for no; default: 1
output_model_dat: false # output model_parameters_inv_0000.dat or not. 1 for yes; 0 for no; default: 1
######is_verbose_output: 0 # output internal parameters, if no, only model parameters are out. 1 for yes; 0 for no; default: 0
output_final_model: true # output merged final model or not. 1 for yes; 0 for no; default: 1
output_in_process: true # output model at each inv iteration or not. 1 for yes; 0 for no; default: 1
single_precision_output: false # output results in single precision or not. 1 for yes; 0 for no; default: 0
##### new feature !!!
verbose_output_level: 0 # output internal parameters, if 0, only model parameters are out. Higher level, more internal parameters are output. default: 0
output_file_format: 0
##### moved to here!!
# run mode
# 0 for forward simulation only,
# 1 for inversion
# 2 for earthquake relocation
# 3 for inversion+earthquake relocation
run_mode: 1
##### new section
# parameters for model update (inversion)
# ignored if run_mode is not 1 or 3
model_update:
#run_or_not: true # true for run model update, false for not model update
#### name slighly changed !!!
max_iterations: 3 # maximum number of inversion iterations
optim_method: 1 # optimization method. 0 : grad_descent, 1 : halve-stepping, 2 : lbfgs (EXPERIMENTAL)
# common parameters for all optim methods
step_length: 0.01 # step length of model perturbation at each iteration. 0.01 means maximum 1% perturbation for each iteration.
# parameters for optim_method 0 (grad_descent)
optim_method_0:
step_length_decay: 0.9 # if objective function increase, step size -> step length * step_length_decay. default: 0.9
#####step_size_sc: 0.001 # ... # use it also ?
# parameters for optim_method 1 (halve-stepping) or 2 (lbfgs)
optim_method_1_2:
max_sub_iterations: 10 # maximum number of each sub-iteration
regularization_weight: 100 # weight value for regularization (lbfgs mode only)
# smoothing
smoothing:
smooth_method: 0 # 0: multiparametrization, 1: laplacian smoothing (EXPERIMENTAL)
l_smooth_rtp: [1, 1, 1] # smoothing coefficients for laplacian smoothing
# parameters for smooth method 0 (multigrid model parametrization)
n_inversion_grid: 5 # number of inversion grid sets
# inversion grid type
type_invgrid_dep: 1 # 0: uniform inversion grid, 1: flexible grid
type_invgrid_lat: 0 # 0: uniform inversion grid, 1: flexible grid
type_invgrid_lon: 0 # 0: uniform inversion grid, 1: flexible grid
# settings for uniform inversion grid (if type_*_inv : 0)
n_inv_dep_lat_lon: [5, 10, 10] # number of the base inversion grid points (ignored if type_*_inv : 1)
min_max_dep_inv: [-10, 10] # depth in km (Radius of the earth is defined in config.h/R_earth) (ignored if type_dep_inv : 1)
min_max_lat_inv: [37.7, 42.3] # latitude in degree
min_max_lon_inv: [22.7, 27.3] # longitude in degree
# settings for flexible inversion grid (if type_*_inv : 1)
dep_inv: [-10.0, -7.5, -5.0, -2.5, 0.0, 2.5, 5.0, 7.5, 10.0] # depth in km (Radius of the earth is defined in config.h/R_earth)
lat_inv: [0.0, 1.0] # latitude in degree (ignored if type_lat_inv : 0)
lon_inv: [0.0, 1.0] # longitude in degree (ignored if type_lon_inv : 0)
# path to station correction file
sta_correction_file: dummy_sta_correction_file # station correction file path
##
## new feature !!!
##
# -------------- using absolute traveltime data --------------
abs_time:
use_abs_time: true # 'true' for using absolute traveltime data to update model parameters; 'false' for not using (no need to set parameters in this section)
residual_weight: [1.0, 3.0, 1.0, 0.1] # weight (wt) of residual. wt = residual_weight[2] for res < residual_weight[0]. wt = residual_weight[3] for res > residual_weight[1], and linear weight in between.
distance_weight: [50.0, 150.0, 1.0, 0.1] # weight of epicenter distance. wt = distance_weight[2] for dis < distance_weight[0]. wt = distance_weight[3] for dis > distance_weight[1], and linear weight in between.
# -------------- using common source differential traveltime data --------------
cs_dif_time:
use_cs_time: true # 'true' for using common source differential traveltime data to update model parameters; 'false' for not using (no need to set parameters in this section)
residual_weight: [1.0, 3.0, 1.0, 0.1] # weight (wt) of residual.
azimuthal_weight: [15.0, 30.0, 1.0, 0.1] # weight of azimuth between two stations.
# -------------- using common receiver differential traveltime data --------------
cr_dif_time:
use_cr_time: true # 'true' for using common receiver differential traveltime data to update model parameters; 'false' for not using (no need to set parameters in this section)
residual_weight: [1.0, 3.0, 1.0, 0.1] # weight (wt) of residual.
azimuthal_weight: [15.0, 30.0, 1.0, 0.1] # weight of azimuth between two earthquakes.
# -------------- global weight of different types of data (to balance the weight of different data) --------------
global_weight:
balance_data_weight: true # yes: over the total weight of the each type of the data. the obj of different data means the average data misfit; no: use original weight (below weight for each type of data needs to be set)
abs_time_weight: 1.0 # weight of absolute traveltime data, default: 1.0
cs_dif_time_local_weight: 1.0 # weight of common source differential traveltime data, default: 1.0
cr_dif_time_local_weight: 1.0 # weight of common receiver differential traveltime data, default: 1.0
teleseismic_weight: 1.0 # weight of teleseismic data, default: 1.0 (exclude in this version)
# -------------- inversion parameters (exclude in this version) --------------
update_slowness : true # update slowness (velocity) or not. default: true
update_azi_ani : false # update azimuthal anisotropy (xi, eta) or not. default: false
update_rad_ani : false # update radial anisotropy (in future) or not. default: false
# -------------- for teleseismic inversion (exclude in this version) --------------
## changed from kernel_taper
depth_taper : [-200.0, -100.0] # kernel weight : depth. --> 0: -inf ~ taper[0]; 0 ~ 1 : taper[0] ~ taper[1]; 1 : taper[1] ~ inf
# this top tag is not necessary
########inversion:
###########run_mode: 1 # 0 for forward simulation only, 1 for inversion
###########output_dir: ./OUTPUT_FILES/ # path to output director (default is ./OUTPUT_FILES/)
###########optim_method: 1 # optimization method. 0 : grad_descent, 1 : halve-stepping, 2 : lbfgs (EXPERIMENTAL)
####max_iterations_inv: 3 # maximum number of inversion iterations
#####step_size: 0.001 # initial step size for model update
#####step_size_sc: 0.001 # ...
#####step_size_decay: 0.9 # ...
#####smooth_method: 0 # 0: multiparametrization, 1: laplacian smoothing (EXPERIMENTAL)
# parameters for multiparametric inversion
######n_inversion_grid: 5 # number of inversion grid sets
#######n_inv_dep_lat_lon: [5, 10, 10] # number of the base inversion grid points
########sta_correction_file: dummy_sta_correction_file # station correction file path
#######type_dep_inv: 0 # 0: uniform inversion grid, 1: flexible grid
#######type_lat_inv: 0 # 0: uniform inversion grid, 1: flexible grid
#######type_lon_inv: 0 # 0: uniform inversion grid, 1: flexible grid
# parameters for uniform inversion grid
#####min_max_dep_inv: [-10, 10] # depth in km (Radius of the earth is defined in config.h/R_earth)
#####min_max_lat_inv: [37.7, 42.3] # latitude in degree
#####min_max_lon_inv: [22.7, 27.3] # longitude in degree
# parameters for flexible inversion grid
# n_inv_r_flex: 3
# dep_inv: [1, 1, 1]
# n_inv_t_flex: 3
# lat_inv: [1, 1, 1]
# n_inv_p_flex: 3
# lon_inv: [1, 1, 1]
# parameters for halve-stepping or lbfg mode
####max_sub_iterations: 10 # maximum number of each sub-iteration
######l_smooth_rtp: [1, 1, 1] # smoothing coefficients for laplacian smoothing
######regularization_weight: 100 # weight value for regularization (lbfgs mode only)
### new section !!!
#################################################
# relocation parameters setting #
#################################################
relocation: # update earthquake hypocenter and origin time (when run_mode : 1)
###yes_or_no : yes # 'yes' for relocating earthquakes; 'no' for not relocating earthquakes (no need to set parameters in this section);
# relocation_strategy
step_length : 0.01 # step length of relocation perturbation at each iteration. 0.01 means maximum 1% perturbation for each iteration.
step_length_decay : 0.9 # if objective function increase, step size -> step length * step_length_decay. default: 0.9
rescaling_dep_lat_lon_ortime : [10.0, 10.0, 10.0, 1.0] # The perturbation is related to <rescaling_dep_lat_lon_ortime>. Unit: km,km,km,second
max_change_dep_lat_lon_ortime : [5.0, 5.0, 5.0, 0.5] # the change of dep,lat,lon,ortime do not exceed max_change. Unit: km,km,km,second
max_iterations : 100 # maximum number of iterations for relocation
# more option for using different types of data is under development (following)
# -------------- using absolute traveltime data --------------
abs_time:
use_abs_time : yes # 'yes' for using absolute traveltime data to update model parameters; 'no' for not using (no need to set parameters in this section)
residual_weight : [1.0, 3.0, 1.0, 0.1] # weight (wt) of residual. wt = residual_weight[2] for res < residual_weight[0]. wt = residual_weight[3] for res > residual_weight[1], and linear weight in between.
distance_weight : [50.0, 150.0, 1.0, 0.1] # weight of epicenter distance. wt = distance_weight[2] for dis < distance_weight[0]. wt = distance_weight[3] for dis > distance_weight[1], and linear weight in between.
# -------------- using common receiver differential traveltime data --------------
cr_dif_time:
use_cr_time : true # 'yes' for using common receiver differential traveltime data to update model parameters; 'no' for not using (no need to set parameters in this section)
residual_weight : [1.0, 3.0, 1.0, 0.1] # weight (wt) of residual.
distance_weight : [10.0, 30.0, 1.0, 0.1] # weight of distance (km) between two earthquakes.
#### the name of this tag is changed !!!
#inv_strategy: # flags for selecting the target parameters to be inversed
inversion_strategy:
# this flag is not used, because the function is duplicated with "run_mode"
#inv_mode : 0 # 0 for update model parameters and relocation iteratively. (other options for future work)
####is_inv_slowness: true # 1: slowness value will be calculated in inversion, 0: will not be calculated
####is_inv_azi_ani: true # 1: azimuth anisotropy value will be calculated in inversion, 0: will not be calculated
####is_inv_rad_ani: 0 # flag for radial anisotropy (Not implemented yet)
####kernel_taper: [-1e+07, -1e+07]
####is_sta_correction: 0
inv_mode : 0 # 0 for update model parameters and relocation iteratively. (other options for future work)
# for inv_mode : 0, parameters below are required
inv_mode_0: # Fristly, do relocation; Subsequently, do relocation every N steps; Finally, do relocation
relocation_first : true # yes: do relocation first; no: do not relocation first. default: yes
relocation_first_iterations : 10 # maximum number of iterations for relocation in the beginning. default: 10
relocation_every_N_steps : 5 # subsequently, do relocation every N steps of updating model parameters. The iteration of relocation follows <max_iterations> in Section <relocation>
relocation_final : true # yes: do relocation finally; no: do not relocation finally. default: yes
relocation_final_iterations : 10 # maximum number of iterations for relocation in the beginning. default: 10
########################################################################
# Scheme of Eikonal solver (fast sweeping method) #
########################################################################
calculation:
convergence_tolerance: 0.0001 # threshold value for checking the convergence for each forward/adjoint run
max_iterations: 500 # number of maximum iteration for each forward/adjoint run
stencil_order: 3 # order of stencil, 1 or 3
stencil_type: 0 # 0: , 1: first-order upwind scheme (only sweep_type 0 is supported)
sweep_type: 1 # 0: legacy, 1: cuthill-mckee with shm parallelization
#######output_file_format: 0