E4D User Guide
E4D User Guide
Travel-time Inversion Options File
The information provided by a travel-time survey is typically insufficient to uniquely determine the subsurface velocity distribution at the scale of the computational mesh. In order to produce a reasonable representation of the true subsurface velocity, the inverse solution must be constrained by a priori information in addition to the information provided by the data. The information provided by the data is given implicitly in the survey file. The a priori solution constraints are provided in the inversion options file.
Often, the quality of the inverse solution is highly dependent upon the solution constraints supplied to the inversion algorithm. It is generally beneficial to provide as much information as possible to the inversion algorithm, which can provide marked improvements in imaging resolution. E4D is implemented with a flexible set of model constraints applied using the method of iteratively reweighted least squares (IRLS). The inversion options file provides E4D with solution constraints zone by zone, and tells E4D how those constraints should be implemented across zone boundaries.
Each constraint is specified by two equations, a structural metric and a weighting function.
See File Syntax Rules for specific details.
Variable Name | Description |
---|---|
n_reg_blocks
(int) |
n_reg_blocks is the total number of constraint blocks. Each zone in the mesh is considered a constraint block and should have at least one assignment. |
Constraint Block repeat for n_reg_blocks
zone
(int) |
zone is the zone number for which this constraint block applies. |
s_met wx wy wz
(int) (real) (real) (real) |
s_met is the structural metric to use for this constraint. wx, wy, and wz indicate the relative weighting of this structure metric in the x,y and z directions. These are not used by every structural metric and are ignored if not used. However, they must be present in this file. |
fw mn scl
(int) (real) (real) |
fw is the weighting function to use for this constraint. mn is the mean of the weighting function in natural log space. For example 0.004 would be entered as ln(0.004)=-5.5215. scl is the standard deviation of the weighting function in natural log space. For example 0.0001 would be entered as ln(0.0001)=-9.2103. |
nlinks ilink ... ilink_n
(int) (int) |
nlinks is the number of zones to which this zone is linked. repeat for n_links ilink is the link to which this zone is linked. |
v_ref
(int/char) |
v_ref is the reference value used for this constraint block. If specified as "REF" or "Ref" or "ref", then the reference model specified in <e4d.inp> is used to provide the reference values for this constraint block. |
w_ref
(real) |
w_ref is the the relative weight applied to the regularization constraints specified in this block. |
Convergence Criteria
beta min_red beta_red
(real) (real) (real) |
beta is the global constraint weighting value at the beginning of the inversion, and controls the importance the inversion places on enforcing the model constraints in comparison to fitting the data. This parameter is either held constant or automatically reduced (see up_opt) by E4D during the inversion when required to reduce the misfit between measured and simulated data. min_red is the minimum fractional decrease in the objective function between outer iterations that may occur before beta is reduced. A conservative value for min_red is 0.05. Larger values of min_red will generally decrease time to convergence, but may also provide solutions that violate the model constraints more than what is necessary to appropriately fit the data. beta_red is the beta reduction factor. If the fractional decrease in the objective function between outer iterations is less than or equal to min_beta, then beta is reduced by a factor of beta_red for the next iteration. A conservative value for beta_red is 0.5. |
chi_target
(real) |
chi_target is the normalized chi-squared value at which the inversion is considered to have converged. In the absence of modeling errors and accurately specified data standard deviations, chi_target should reach a value of 1.0 at convergence. |
miniter maxiter
(int) (int) |
miniter is the minimum number of inner iterations (i.e. CGLS iterations) to execute before updating the solution. Recommended value is 30. maxiter is the maximum number of inner iterations (i.e. CGLS iterations) to execute before updating the solution. Recommended value is 50. |
minslow maxslow
(real) (real) |
minslow is the minimum number of slowness values allowed by the inversion. maxslow is the maximum number of slowness values allowed by the inversion. These values do not constrain the inversion, and are only provided as a safety mechanism to ensure the forward solution remains stable. Note: Slowness is the reciprocal of velocity. Maximum and minimum slowness constraints should be specified in the constraints block. |
up_opt
(int) |
up_opt=1a line search is used to estimate the optimum beta value. This option is not avaiable at this time. If up_opt=1 E4D will default to up_opt=2. up_opt = 2beta reduces as specified by min_red and beta_red up_opt = 3beta remains at its starting value, and the inversion converges when the reduction in the objective function is less than min_red or the target chi-squared value is reached, whichever comes first. |
cflag cdev
(int) (int) |
cflag = 1data outlier re-weighting is implemented cflag = 0all data will be used to constrain the inversion at every iteration cdev specifies the outlier removal standard deviation. If the weighted residual error of any datum is greater than cdev standard deviations from the mean weighted residual error and cflag = 1, then that datum is not used to constrain the inversion in next iteration. (Recommended value = 3). Outlier conditions are checked at every iteration, so a particular datum may be removed for one iteration and included in the next, and vice-versa. |
Example of Smoothness Constrained Inversion
2 # of constraint blocks, this file implements 1 constrain zone 1 with this block 2 1.0 1.0 1.0 structural metric 2 (wx wy wz ignored) 1 10.0 .01 weight func. 1 with mean of 10 and small s.d. 1 2 one link to zone 2 0.0 reference value (not used) 1.0 relative weight 2 constrain zone 2 with this block 2 1.0 1.0 1.0 structural metric 2 (wx wy wz ignored) 1 10 0.01 weight func. 1 with mean of 10 and small s.d. 0 no links (already linked to zone 1 above) 0.0 reference value (not used) 1.0 relative weight 100 0.25 0.5 beta min_red beta_red 1.0 chi_targ 30 50 miniter maxiter 0.1 5.0 minslow maxslow (sec/km) 2 up_opt 1 3.0 cflag cdevNotes: This inversion options file implements an Occam's type inversion by specifying similarity constraints between neighboring elements (structural metric 2) that are not removed unless the difference between neighbors is extreme. That is, the weight on the similarity constraints will not be reduced unless the absolute difference in slowness between neighbors exceeds 10, as specified by the weighting function. Zone 1 is linked to zone 2, which specifies that similarity constraints should be applied at the zone 1/zone 2 boundary. Since zone 1 is linked to zone 2, it is not necessary to link zone 2 to zone 1. Hence, zone 2 is not linked to another zone.
Example of Smoothness Constrained Inversion with a Minimum Slowness Constraint
3 # of constraint blocks, this file implements 1 constrain zone 1 with this block 2 1.0 1.0 1.0 structural metric 2 (wx wy wz ignored) 1 10.0 .01 weight func. 1 with mean of 10 and small s.d. 1 2 one link to zone 2 0.0 reference value (not used) 1.0 relative weight 2 constrain zone 2 2 1.0 1.0 1.0 structural metric 2 (wx wy wz ignored) 1 10 0.01 weight func. 1 with mean of 10 and small s.d. 0 no links (already linked to zone 1 above) 0.0 reference value (not used) 1.0 relative weight 1 constrain zone 1 with this block 3 1.0 1.0 1.0 structural metric 3 (wx wy wz ignored) 1 0 .1 weight func. 1 with mean of 0.0 and s.d. of 0.1 0 do not apply this across any boundaries 0.2 reference value (0.2 sec/km), minimum slowness constraint 2 relative weight 100 0.25 0.5 beta min_red beta_red 1.0 chi_targ 30 50 miniter maxiter 0.1 5.0 minslow maxslow (sec/km) 2 up_opt 1 3.0 cflag cdevNotes: This inversion options file implements an Occam's type inversion by specifying similarity constraints between neighboring elements (structural metric 2) that are not removed unless the difference between neighbors is extreme. That is, the weight on the similarity constraints will not be reduced unless the absolute difference in slowness between neighbors exceeds 10, as specified by the weighting function. Zone 1 is linked to zone 2, which specifies that similarity constraints should be applied at the zone 1/zone 2 boundary. Since zone 1 is linked to zone 2, it is not necessary to link zone 2 to zone 1. Hence, zone 2 is not linked to another zone. The third constraint block implements a minimum slowness constraint. Weighting function 1, having a mean of zero, turns the constraint on if the value of the structural metric drops below zero, which occurs if the slowness drops below the reference value of 0.2 sec/km. When the constraint is turned on, the inversion minimizes the structural metric by moving the slowness toward the reference value. A relative weight of 2 is specified to ensure the constraint is enforced.
Example of Smoothness Constrained Inversion with a Maximum Slowness Constraint
3 # of constraint blocks, this file implements 1 constrain zone 1 with this block 2 1.0 1.0 1.0 structural metric 2 (wx wy wz ignored) 1 10.0 .01 weight func. 1 with mean of 10 and small s.d. 1 2 one link to zone 2 0.0 reference value (not used) 1.0 relative weight 2 constrain zone 2 2 1.0 1.0 1.0 structural metric 2 (wx wy wz ignored) 1 10 0.01 weight func. 1 with mean of 10 and small s.d. 0 no links (already linked to zone 1 above) 0.0 reference value (not used) 1.0 relative weight 1 constrain zone 1 with this block 3 1.0 1.0 1.0 structural metric 3 (wx wy wz ignored) 2 0 .1 weight func. 2 with mean of 0.0 and s.d. of 0.1 0 do not apply this across any boundaries 1.0 reference value (1.0 sec/km), maximum slowness constraint 2 relative weight 100 0.25 0.5 beta min_red beta_red 1.0 chi_targ 30 50 miniter maxiter 0.1 5.0 minslow maxslow (sec/km) 2 up_opt 1 3.0 cflag cdevNotes: This inversion options file implements an Occam's type inversion by specifying similarity constraints between neighboring elements (structural metric 2) that are not removed unless the difference between neighbors is extreme. That is, the weight on the similarity constraints will not be reduced unless the absolute difference in slowness between neighbors exceeds 10, as specified by the weighting function. Zone 1 is linked to zone 2, which specifies that similarity constraints should be applied at the zone 1/zone 2 boundary. Since zone 1 is linked to zone 2, it is not necessary to link zone 2 to zone 1. Hence, zone 2 is not linked to another zone. The third constraint block implements a maximum slowness constraint. Weighting function 2, having a mean of zero, turns the constraint on if the value of the structural metric drops below zero, which occurs if the slowness goes above the reference value of 1.0 sec/km. When the constraint is turned on, the inversion minimizes the structural metric by moving the slowness toward the reference value. A relative weight of 2 is specified to ensure the constraint is enforced.
Example of Blocky Inversion
3 # of constraint blocks, this file implements 1 constrain zone 1 with this block 2 1.0 1.0 1.0 structural metric 2 (wx wy wz ignored) 1 0.1 .05 weight func. 1 with mean of 1.0 and s.d. of 0.05 1 2 one link to zone 2 0.0 reference value (not used) 1.0 relative weight 2 constrain zone 2 2 1.0 1.0 1.0 structural metric 2 (wx wy wz ignored) 1 0.1 0.05 weight func. 1 with mean of 0.1 and s.d. of 0.05 0 no links (already linked to zone 1 above) 0.0 reference value (not used) 1.0 relative weight 1 constrain zone 1 with this block 3 1.0 1.0 1.0 structural metric 3 (wx wy wz ignored) 1 0 .1 weight func. 1 with mean of 0.0 and s.d. of 0.1 0 no links 0.2 reference value (0.2 sec/km) 2 relative weight 200 0.25 0.5 beta min_red beta_red 1.0 chi_targ 30 50 miniter maxiter 0.1 5.0 minslow maxslow (sec/km) 2 up_opt 1 3.0 cflag cdevNotes: This inversion options file implements a blocky inversion by enforcing similarity constraints between neighboring elements (structural metric 2) only if the absolute difference in slowness between elements is (approximately) less than the 0.1, which is the mean of the weighting function. With a standard deviation of 0.05 (i.e., one half of the mean), the weighting function transition between one and zero is relatively smooth. Zone 1 is linked to zone 2, which specifies that similarity constraints should be applied at the zone 1/zone 2 boundary. Since zone 1 is linked to zone 2, it is not necessary to link zone 2 to zone 1. Hence, zone 2 is not linked to another zone. The third constraint block implements a minimum slowness constraint. Weighting function 1, having a mean of zero, turns the constraint on if the value of the structural metric drops below zero, which occurs if the slowness drops below the reference value of 0.2 sec/km. When the constraint is turned on, the inversion minimizes the structural metric by moving the slowness toward the reference value (in this case). A relative weight of 2 is specified to ensure the constraint is enforced.
Example of Anisotropic Weighting and Inequality Constraints Inversion
4 4 constraint blocks listed below 1 constrain zone 1 with this block 6 0.25 0.0 1.00 use metric 6 to encourage continuity normal to the dipping plane 1 5.0 .02 use weight function 1 with large mean to encourage smooth structure 1 2 apply these constraints at the boundary with zone 2 0 reference value (not used for structure metric 6) 1 relative weight 2 constraint zone 2 with this block (same constraints as zone 1 above) 6 0.25 0.0 1.00 1 5.0 .02 0 0 1 1 constraint zone 1 with this block 3 1.0 1.0 1.0 use structure metric 3 (slowness - reference) 1 0.0 .1 use weighting function 1 to implement a lower bound inequality constraint 0 no links 0.2 reference value: lower bound = 0.2 sec/km 2 double weight for stronger enforcement 1 constrain zone 1 with this block 3 1.0 1.0 1.0 use structure metric 3 (slowness - reference) 2 0.0 0.1 use weighting function 2 to implement an upper bound inequality constraint 0 no links 1.0 reference value: upper bound = 1.0 sec/km 2 double weight for stronger enforcement 200 0.25 0.5 start with beta = 200, reduce if % reduction is < 25, reduce by 50% 1.0 target chi-squared value is 1.0 30 50 at least 30 and at most 50 inner iterations 0.1 5.0 lower and upper slowness 'safety' limits (sec/km) 2 do not use line search 1 3.0 use data culling with a residual standard deviation of 3Note: Two additional pieces of information are provided in this example: 1) the orientation of the plane and 2) minimum and maximum slowness limits. The orientation of the plane is provided with structural metric 6, which provides the absolute difference in slowness between adjacent elements, and takes as input a vector normal to the plane of preferred smoothing. Neighboring elements with centroids aligned parallel to the plane are weighted more heavily than elements aligned perpendicular to the plane, thereby fostering continuity along the plane. The minimum and maximum slowness constraints set the minimum and maximum slowness limits to 0.2 sec/km and 1.0 sec/km.