Forward Modeling
A forward calculation predicts surface-wave travel times for a given model. It can be used to compute residuals for a reference model, or to build the synthetic observations of a checkerboard test.
Command SURFATT_tomo -f
This command predict synthetic traveltime from existing model.
Usage: SURFATT_tomo -i para_file [-f] [-h]
Adjoint-state travel time tomography for surface wave
required arguments:
-i para_file Path to parameter file in yaml format
optional arguments:
-f Forward simulate travel time instead of inversion (default: false)
-h Print help messageWith -f, the run stops after one forward calculation:
mpirun -np 8 SURFATT_tomo -i input_params.yml -fSet model.init_model_type: 2 and model.init_model_path to run the forward calculation through an existing 3-D model, for example the final_model.h5 of a previous inversion.
Command SURFATT_cb_fwd
This command create a checkerboard model and predict synthetic traveltime data from it.
Usage: SURFATT_cb_fwd -i para_file -n nx/ny/nz [-h] [-m margin_degree] [-p pert] [-s anom_size_km]
Create checkerboard and forward simulate travel time for surface wave
required arguments:
-i para_file Path to parameter file in yaml format
-n nx/ny/nz Number of anomalies along X, Y and Z
optional arguments:
-h Print help message
-a nx/ny/nz[/angle] Add azimuthal anisotropy anomalies with optional angle (deg, default: 120)
-r Use radial anisotropy instead of azimuthal (cannot be used with -a)
-v Only perturb Vs model, default: false
-m margin_degree Margin between anomalies to boundary in degrees (default: 0)
-p pert_vel[/pert_ani] Magnitude of velocity/anisotropy perturbations
For azimuthal: -p pert_vel[/pert_gc_gs] (default: 0.08)
For radial: -p pert_vs[/pert_zeta] (default: 0.08)
-s anom_size_km Size of top anomalies in km (default: uniform)How the checkerboard is built
-n nx/ny/nzgives the number of anomalies along longitude, latitude, and depth. The perturbation is the product of one sinusoid per direction.-m margin_degreeleaves an unperturbed band of the given width in degrees along the horizontal edges of the model, which keeps the anomalies away from the poorly covered boundary.-s anom_size_kmindicates the thickness of the shallow layer anomaly. Default setting is each layer has even thickness.-vperturbs only. By default, and are recomputed from the perturbed with the empirical Brocher (2005) relations.
Anisotropic checkerboards
-a nx/ny/nz[/angle]adds azimuthal anisotropy anomalies with their own block layout and a fast axis atangledegrees. Blocks of the opposite sign get a fast axis rotated by . Their amplitude is set by the second value of-p.-radds radial anisotropy. The perturbation uses the same block layout as , and its amplitude is the second value of-p.
Outputs
Both commands write to output.output_path:
src_rec_file_forward_<TAG>.csv: the synthetic travel times, one file per activated data set.<TAG>isRL_PH,RL_GR,LV_PH, orLV_GR. The file has the same columns as the input table, withtt,dist, andvelfilled with the calculated values.initial_model.h5: the unperturbed starting model, whenoutput.output_initial_modelisTrue.target_model.h5: the perturbed checkerboard model. Written bySURFATT_cb_fwdonly.
The output file name is built from the data type, not from the input file name. When data.src_rec_file_* points into output_path under the src_rec_file_forward_<TAG>.csv name, the forward run overwrites its own input. This is intended in the checkerboard examples.
Example: synthetic data for a checkerboard test
The examples first copy the observed geometry to the file name that the parameter file declares, then let the forward run replace its travel times:
mkdir -p OUTPUT_FILES
cp src_rec_file_ph.csv OUTPUT_FILES/src_rec_file_forward_RL_PH.csv
# 2 x 3 x 2 isotropic checkerboard, 8% Vs perturbation, 0.2 degree margin
mpirun -np 8 SURFATT_cb_fwd -i input_params.yml -n 2/3/2 -m 0.2 -p 0.08
# invert the synthetic travel times
mpirun -np 8 SURFATT_tomo -i input_params.ymlFor a radial-anisotropy test, both Rayleigh and Love data are activated, and -r adds a checkerboard:
mkdir -p OUTPUT_FILES
cp src_rec_file_ph.csv OUTPUT_FILES/src_rec_file_forward_RL_PH.csv
cp src_rec_file_ph.csv OUTPUT_FILES/src_rec_file_forward_LV_PH.csv
mpirun -np 8 SURFATT_cb_fwd -i input_params.yml -n 2/3/2 -s 2 -r -m 0.2 -p 0.08/0.08Complete cases are described in the Synthetic Examples section.