Menu

Driver script specifications Log in to Edit

Nick Crabtree

[Documentation]

Driver script specifications

Optional parameters

$velocity[$hrz]{min_vint} : Clip the minimum resulting Vint to this

$velocity[$hrz]{max_vint} : Clip the maximum resulting Vint to this

$velocity[$hrz]{isochron_min_threshold} : Value in msTWT; if the isochron is thinner than this then exclude this well from the computations

$velocity[$hrz]{vint_min_threshold} : Exclude wells which are slower than this

$velocity[$hrz]{vint_max_threshold} : Exclude wells which are faster than this

$velocity[$hrz]{fault_shadow_max_isochron}: If this value is specified, then the isochron will be used as a mask to delete the average velocities where the isochron is thinner than this value. (Depending on the setting of fault_shadow_erode_nodes, this deleted area can be expanded). The deleted area will then be in-filled, and the filled average velocity grid will be used to re-depth-convert. Following this, a revised interval velocity grid will be computed. This process occurs after tne min_vint and max_vint thresholds are applied, so it is possible (probable) that the resulting interval velocity grid will contain values outside the specified range.

$velocity[$hrz]{fault_shadow_erode_nodes}: This value only has any effect if fault_shadow_max_isochron is specified. It serves to expand the deleted area. If any node on the average velocity grid is within n nodes of an deleted node, this node will be deleted as well.

$velocity[$hrz]{error_correct}: Force this horizon to tie to the wells (otherwise error correction is only done for the final horizon).

$velocity[$hrz]{error_correct_threshold}: Correct the depth map so that the remaining errors are less than this threshold. The value is expressed as a percentage of the depth; typical values would be between 2 and 5. This parameter only has an effect when error correction is occurring anyway (due to $velocity[$hrz]{error_correct} being specified, or for the last layer). Note that using this parameter does not enforce a tie, it simply reduces the residual to be less than the threshold.

$velocity[$hrz]{keep_zero_thicknesses}: Ensure that the error correction does not separate areas which have zero isochron, and does not create negative thicknesses.

$velocity[$hrz]{v0}: Vo constant value or grid to be used when appropriate

$velocity[$hrz]{fixed_k}: Fixed k value to be used when appropriate. Note that the sign of k in Xval is opposite to that used in Petrel; Xval uses the standard oil-industry convention that positive depths increase downwards (i.e. a left-hand coordinate system). To use an increase of velocity with increasing depth of burial (positive k in Xval) it is necessary to supply a negative k value to Petrel.

$velocity[$hrz]{minimum_k}
$velocity[$hrz]{maximum_k}: Limits for automatic Vo,k determination

$velocity[$hrz]{v0_referenced_to_other_horizon}: Used when the supplied Vo map is referenced to another horizon rather than zero

$velocity[$hrz]{intercept}
$velocity[$hrz]{gradient} : For a method which requires running a regression, use these parameters rather than actually running the regression.

$velocity[$hrz]{isochore} : For the "supplied isochore" depth
conversion method, this is the filename of the isochore grid.

$velocity[$hrz]{depth} : For the "supplied depth" depth
conversion method, this is the filename of the depth grid.

Geostatistical parameters:

$velocity[$hrz]{variogram_model}->{variogram_range} : variogram range
for this horizon. If the variogram range is "auto" then an appropriate range is automatically computed from the data. However the variogram range can also be specified explicitly. Specifying very large variogram ranges (where the value is larger than the distance between the furthest data points) is effectively saying the data are geostatistically non-stationary, and therefore the mathematical assumptions behind kriging are not correct. Nevertheless, practically speaking this is often a good way to get a nice-looking map which honours the data points.

$velocity[$hrz]{variogram_model}->{sk_mean} : Use simple kriging and
force the mean to this

$velocity[$hrz]{variogram_model}->{azimuth} : Use geometrical
anisotropy; this specifies the angle, from North, clockwise, in
degrees, of the major axis (the major axis length is
variogram_range). If this value is not specified, a circular variogram
model will be used.

$velocity[$hrz]{variogram_model}->{minor_range} : Length of the minor
axis (either this or the anisotropy ratio can be specified)

$velocity[$hrz]{variogram_model}->{anisotropy} : Ratio (between 0 and
1) of the major and minor axis lengths

$velocity[$hrz]{variogram_model}->{model} : Variogram model type. Any
of the types in gstat can be used. Common ones are \'Sph\' for
spherical and \'Exp\' for exponential

$velocity[$hrz]{residual_variogram_model} : Same bits as
variogram_model; apply to error correction when done per-layer.

$velocity[$hrz]{residual_variogram_model_final} : Same bits as
variogram_model; apply to error correction when done at the very end.
Overrides residual_range. Must be in method 0 if using more than one
method.

$velocity[$hrz]{vint_map} : replacement for the @vint_map array in the
calling parameter line. Used to pass external drift grids to the geostatistics,
for use with krige_vint_to_tie_with_external_drift and friends.
This is a file name, not a grid object.

Volumetric options

If the $contact parameter is specified as

$contact[$hrz] = nnnnn; # Contact depth as a number

... then the following parameters can optionally be used to invoke the
spillpoint algorithm (the out2 parameter is also available if there is
more than one potential spillpoint

$velocity[$hrz]{spillpoint}{in}[0] = 2342345; # X coordinate of point within structure
$velocity[$hrz]{spillpoint}{in}[1] = 62342345; # Y coordinate of point within structure
$velocity[$hrz]{spillpoint}{out}[0] = 3342345; # X coordinate of point outside structure
$velocity[$hrz]{spillpoint}{out}[1] = 63342345; # Y coordinate of point outside structure

$options->{polygon_file} = "Polyonfile" : Use a polygon file when
creating pictures of grids in reports. The polygon file format is
similar to that used by Velit, CPS3 and others, but it must have the
line

-65535.0 -65535.0 0 0

between each polygon segment.

$velocity[$hrz]{shift_by_average}: Normally the error correction tends
to zero away from the wells (Simple Kriging with a mean of zero is
used). If this parameter is set, then the error correction grid will
instead tend to the average of all the wells (Ordinary Kriging is
used).

$velocity[$hrz]{shift_vavg_then_error_correct}: Useful for velocity
data from seismic processing etc.; back-out the average velocity from
the grids, and from the wells, and bulk-shift the average velocity
grid to match the average well average velocity, before
re-depth-converting. Should ensure that residual depth errors have a
mean close to zero.

Entry points

sprint_layering

The arrays listed above have an extra dimension, so they are of the
form $velocity[$top][$base]{feature}. All possible layering
combinations using the supplied data will be computed, in order.

sprint_layering_montecarlo

The arrays are as for sprint_layering, however the layering choice
and method choice are randomly chosen for each iteration. By default, depth conversions with
(n_horizons/2) will be chosen much more often than depth conversions
with (n_horizons) or 1 horizon, as each combination has an equal
probability of being chosen. It is generally recommended that the --not-montecarlo option is used when calling this entry point.

sprint_best_from_crossvalidation

This entry point is provided to ease the task of building driver
scripts post-cross-validation. All that is required is a list of
time horizons, and a cross-validation results file. The methods are
run in order, from best to worst.


Related

Wiki: Documentation