Module Functions
Warning
These functions should be called using the ALI_FMM
class and not called directly.
- Anis_TTF_rays.addtree(iz, ix, nsts, btg, ntr, ttn)[source]
Function for adding a new value to the minimum heap.
- Parameters:
iz (int) – z index of point being added to heap.
ix (int) – x index of point being added to heap.
nsts (2D numpy array of type int) – Note status for points in the array. -1 is for unknown point, if point is still in the heap then value is the position in the tree.
btg (2D numpy array of type int) – Array for storing the positions of points in the min heap.
ntr (int) – Number of points on the min heap.
ttn (2D numpy array) – Current travel times at all points in the grid (0 for “far” points).
- Returns:
nsts, btg, ntr - Updated values of the parameters nsts, btg and ntr
- Return type:
2D numpy array of type int, 2D numpy array of type int, int
- Anis_TTF_rays.downtree(nsts, btg, ntr, ttn)[source]
Function for removing the root of the min heap and filtering points into correct positions. Root is replaced by the point at the bottom of the tree and then filtered down.
- Parameters:
nsts (2D numpy array of type int) – Node status for points in the array. -1 is for unknown point, if point is still in the heap then value is the position in the tree.
btg (2D numpy array of type int) – Positions of points in the min heap.
ntr (int) – Number of points in binary tree.
ttn (2D numpy array) – Current travel time at all points in the grid (0 for far points).
- Returns:
nsts, btg, ntr, ttn - Updated values of parameters nsts, btg, ntr and ttn.
- Return type:
2D numpy array of type int, 2D numpy array of type int, int, 2D numpy array
- Anis_TTF_rays.find_ray(dnx, velocity_dat, source, receiver, rec_TTF, veln, velpn, vel_map, stif_den, subgrid_size)[source]
Finds a ray path using the travel time field with the receiver as the source. The travel time field is calculated on a finer grid than the original grid.
- Parameters:
dnx (float) – Distance between points on the original grid.
velocity_dat (2D numpy array) – Group velocity of materials at different angles (column 0 is angle i.e 0-360 and other columns are velocity for that angle).
source (array of length 2) – indices for the coordinates of the source on the original grid i.e [i, j].
receiver (array of length 2) – indices of the coordinates of the receiver on the original grid.
rec_TTF (2D numpy array) – Travel time field with the receiver as the source on the finer grid.
veln (2D numpy array) – 2D numpy array for the anisotropic orientation of all grid points on the original grid.
velpn (2D numpy array of type int) – Material index of all grid points on the original grid(0 if using stiffness tensors and density, otherwise index for column in velocity_dat).
vel_map (2D numpy array) – Value used for scaling velocities at all grid points on the original grid (mainly used for isotropic materials).
stif_den (3D numpy array of type int64) – Material parameters with first two indices being the i,j coordinates and the third being the index of the material parameter(c_22, c_23, c_33, c_44, density). Stiffness tensors must be in MPa to avoid overflow errors.
subgrid_size (int) – The size increase from the original grid to the finer grid.
- Returns:
ray_x, ray_y, travel_time - Arrays for the x and y indices of the points on the ray path and the travel time along the ray.
- Return type:
1D numpy array, 1D numpy array, float
- Anis_TTF_rays.finer_grid_n(veln, scale, dtype=int32)[source]
Function for creating a finer grid for a 2D array. Values at each point is the same as the closest point in the original grid.
- Parameters:
veln (2D numpy array) – Array that finer grid is created from.
scale (Odd integer) – How much the grid size is increased by in each direction.
dtype (data type) – Data type of the new array. Since function uses numba njit, dtype must be from numba. Default is numba.int32
- Returns:
2D numpy array: Finer grid.
- Return type:
2D numpy array of type dtype
- Anis_TTF_rays.finer_grid_n_2(data, scale)[source]
Function for creating a finer grid from a 3D array of material parameters (c_22, c_23, c_33, c_44, density). If None is input None is returned.
- Parameters:
data (3D numpy array of type int64) – Material parameters with first two indices being the i,j coordinates and the third being the index of the material parameter in order (c_22, c_23, c_33, c_44, density)
scale (Odd integer) – How much the grid size is increased by.
- Returns:
Material parameters at all points in the finer grid. None if data=None
- Return type:
3D numpy array of type int64
- Anis_TTF_rays.fouds18_A(iz, ix, nsts, ttn, dnx, dnz, nnx, nnz, veln, velpn, vel_map, avlist2, stif_den)[source]
Finite difference method for calculating first arrival travel time at iz, ix from travel times of surrounding points with travel time estimates (not all points have an assigned travel time. Uses finite difference method from Anisotropic Multi-Stencil Fast Marching Method (from tant et al 2020 (Effective grain orientation mapping ….)).
- Parameters:
iz (int) – z index of point being updated.
ix (int) – x index of point being updated.
nsts (2D numpy array of type int) – Node status for points in the array. -1 is for unknown point, if point is still in the heap then value is the position in the tree.
ttn (2D numpy array) – Current travel time at all points in the grid (0 for far points).
dnx (float) – Distance between points in the grid in the x direction.
dnz (float) – Distance between points in the grid in the z direction.
nnx (int) – Number of points in the grid in the x direction.
nnz (int) – Number of points in the grid in the z direction.
veln (2D numpy array) – Anisotropic orientation of all grid points.
velpn (2D numpy array of type int) – Material index of all grid points (0 if using stiffness tensors and density, otherwise index for column in avlist2).
vel_map (2D numpy array) – Values used for scaling velocities at all grid points (mainly used for isotropic materials).
avlist2 (2D numpy array) – Group velocity of materials at different angles (column 0 is angle i.e 0-360 and other columns are velocity for that angle).
stif_den (3D numpy array of type np.int64) – Material parameters with first two indices being the i,j coordinates and the third being the index of the material parameter(c_22, c_23, c_33, c_44, density). Stiffness tensors must be in MPa to avoid overflow errors.
- Returns:
Travel time estimate at the point iz, ix.
- Return type:
float
- Anis_TTF_rays.group_vel(angle, c_22, c_23, c_33, c_44, sigma, vel_scale=1)[source]
Function for the group velocity from material properties w.r.t group angle.
- Parameters:
angle (float) – Effective group angle (0-180)
c_22 (int) – Stifness parameter in MPa.
c_23 (int) – Stifness parameter in MPa.
c_33 (int) – Stifness parameter in MPa.
c_44 (int) – Stifness parameter in MPa.
sigma (int) – Density in Kg/m^3
vel_scale (float) – Velocity scaling parameter, default is 1.
- Returns:
Group velocity
- Return type:
float
- Anis_TTF_rays.min_max_vel(veln, velpn, vel_map, stif_den, group_vel_table)[source]
Function for determining the min / max velocity in a model to check if model is input correctly.
- Parameters:
veln (2D numpy array) – Anisotropic material orientations at grid points. Set as array of zero if using isotropic materials.
velpn (2D numpy array of type int) – Material index of each grid point (0 if using stiffness tensors and density, otherwise index for column in velocity table).
vel_map (2D numpy array) – Values used to scaling velocity for each grid point. Use array of ones for anisotropic materials, or array of velocities for isotropic materials (using material with velocity curve with velocity of 1) . If unused then an array of ones is used.
stif_den (3D numpy array of type np.int64) – Stiffness tensors at each grid point. First two indices are the position of the grid point and 3rd index is for the materials parameters, 0 - c_22, 1 - c_23, 2 - c_33, 3 - c_44, 4 - density. Array must use 64 bit integers with stiffness tensors in MPa and density in Kg/m^3. To use these values the material index of grid points should be 0. If a point is not using stiffness tensors and density the values are not used. If parameter not used, velocity curves will be used instead (don’t set material index to 0).
group_vel_table (2D numpy array) – Group velocity curves with first column giving the angle (0-360 with increments of 1 degree) and other columns group velocities for each material(column is material indecies). If parameter is unused then defalts to velocity curve for isotropic material with velocity of 1(use vel_map to scale curve to set velocities at each point)
- Returns:
min_vel, max_vel. The minimum and maximum velocity in a model
- Return type:
float, float
- Anis_TTF_rays.parallel_TTF(queue1, queue2, nsts, btg, ntr, ttn, veln, velpn, vel_map, stif_den, velocity_dat, phase_vel, gox, goz, dnx, dnz, nnx, nnz, low_mem)[source]
Function used in class for calculating travel time fields in parallel. All variables which remain unchanged for different sources are used to initialise the process.
- Parameters:
queue1 (multiprocessing Queue) – Queue used for receiving jobs to complete from the main process.
queue2 (multiprocessing Queue) – Queue used for returning completed jobs back to the main process.
nsts (2D numpy array of type int) – Node status for points in the array. -1 is for unknown point, if point is still in the heap then value is the position in the tree. Should have values of -1 for start.
btg (2D numpy array of type int) – Positions of points in the min heap.
ntr (int) – Number of points in binary tree. Should start with 0.
ttn (2D numpy array) – Current travel time at all points in the grid (0 for far points).
veln (2D numpy array) – Anisotropic orientation of all grid points.
velpn (2D numpy array of type int) – Material index of all grid points (0 if using stiffness tensors and density, otherwise index for column in velocity_dat.
vel_map (2D numpy array) – Value used for scaling velocities at all grid points (mainly used for isotropic materials).
stif_den (3D numpy array of type np.int64) – Material parameters with first two indices being the i,j coordinates and the third being the index of the material parameter(c_22, c_23, c_33, c_44, density). Stiffness tensors must be in MPa to avoid overflow errors.
velocity_dat (2D numpy array) – Group velocity of materials at different angles (column 0 is angle i.e 0-360 and other columns are velocity for that angle).
phase_vel (2D numpy array) – Phase velocity of materials at different angles (column 0 is angle i.e 0-360 and other columns are velocity for that angle).
gox (float) – x position of the point with indices (0, 0).
goz (float) – z position of the point with indices (0, 0).
dnx (float) – Distance between points in the grid in the x direction.
dnz (float) – Distance between points in the grid in the z direction. Must equal dnx.
nnx (int) – Number of points in the grid in the x direction.
nnz (int) – Number of points in the grid in the z direction.
low_mem (bool) – Parameter used when there are issues with insufficient memory. If True then saves travel time fields to the current directory as “temp_TTF_i.npy” for source index i.
- Returns:
Does not return anything. Process should be terminated by main process when finished.
- Anis_TTF_rays.parallel_TTF_finer_grid(queue1, queue2, veln, velpn, vel_map, stif_den, subgrid_size, velocity_dat, phase_vel, gox, goz, dnx, dnz, low_mem)[source]
Function used in class for calculating travel time fields in parallel. All variables which remain unchanged for different sources are used to initialise the process.
- Parameters:
queue1 (multiprocessing Queue) – Queue used for receiving jobs to complete from the main process.
queue2 (multiprocessing Queue) – Queue used for returning completed jobs back to the main process.
veln (2D numpy array) – Anisotropic orientation of all grid points.
velpn (2D numpy array of type int) – Material index of all grid points (0 if using stiffness tensors and density, otherwise index for column in velocity_dat).
vel_map (2D numpy array) – Value used for scaling velocities at all grid points (mainly used for isotropic materials).
stif_den (3D numpy array of type np.int64) – Material parameters with first two indices being the i,j coordinates and the third being the index of the material parameter(c_22, c_23, c_33, c_44, density).
subgrid_size (int) – The size increase of the finer grid. Must be an odd integer so that points match in the original and finer grid.
velocity_dat (2D numpy array) – Group velocity of materials at different angles (column 0 is angle i.e 0-360 and other columns are velocity for that angle).
phase_vel (2D numpy array) – Phase velocity of materials at different angles (column 0 is angle i.e 0-360 and other columns are velocity for that angle).
gox (float) – x position of the point with indices (0, 0).
goz (float) – z position of the point with indices (0, 0).
dnx (float) – Distance between points in the grid in the x direction.
dnz (float) – Distance between points in the grid in the z direction. Must equal dnx.
low_mem (bool) – Parameter used when there are issues with insufficient memory. If True then saves travel time fields to the current directory as “temp_TTF_i.npy” for source index i.
- Returns:
Does not return anything. Process should be terminated by main process when finished.
- Anis_TTF_rays.parallel_TTF_rays(proc_num, queue1, queue2, trans_pairs, veln, velpn, vel_map, stif_den, subgrid_size, velocity_dat, phase_vel, gox, goz, dnx, scx, scz, new_trans_x, new_trans_z)[source]
Function used in class for calculating travel time fields and ray paths in parallel. All variables which remain unchanged for different sources are used to initialise the process. Uses queue2 with return codes for telling main process when a travel time field is completed and for returning ray paths.
- Parameters:
proc_num (int) – Process number.
queue1 (multiprocessing Queue) – Queue used for receiving jobs to complete from the main process.
queue2 (multiprocessing Queue) – Queue used for telling main process a travel time field has been calculated or for sending ray paths to main process (using return codes 0 for TTF and 1 for ray).
veln (2D numpy array) – Anisotropic orientation of all grid points.
velpn (2D numpy array of type int) – Material index of all grid points (0 if using stiffness tensors and density, otherwise index for column in velocity_dat).
vel_map (2D numpy array) – Value used for scaling velocities at all grid points (mainly used for isotropic materials).
stif_den (3D numpy array of type int64) – Material parameters with first two indices being the i,j coordinates and the third being the index of the material parameter(c_22, c_23, c_33, c_44, density).
subgrid_size (int) – The size increase of the finer grid. Must be an odd integer so that points match in the original and finer grid.
velocity_dat (2D numpy array) – Group velocity of materials at different angles (column 0 is angle i.e 0-360 and other columns are velocity for that angle).
phase_vel (2D numpy array) – Phase velocity of materials at different angles (column 0 is angle i.e 0-360 and other columns are velocity for that angle).
gox (float) – x position of the point with indices (0, 0).
goz (float) – z position of the point with indices (0, 0).
dnx (float) – Distance between points in the grid in the x direction.
scx (1D numpy array) – Array for x coordinates for transducers.
scz (1D numpy array) – Array for z coordinates for transducers.
new_trans_x (1D numpy array) – Array for x coordinates for transducers on finer grid using grid coordinates.
new_trans_z (1D numpy array) – Array for z coordinates for transducers on finer grid using grid coordinates.
- Returns:
Does not return anything. Process should be terminated by main process when finished.
- Anis_TTF_rays.ray_time(ray_x, ray_y, dnx, subgrid_size, velocity_dat, veln, velpn, vel_map, stif_den)[source]
Determine the travel time along a ray path by integrating along the path.
- Parameters:
ray_x (1D numpy array) – x indices of the points in the ray path on the finer grid.
ray_y (1D numpy array) – y indices of the points in the ray path on the finer grid.
dnx (float) – Distance between points on the original grid.
subgrid_size (int) – Size that the original grid was increased by to obtain the finer grid (odd integer)
velocity_dat (2D numpy array) – Group velocity of materials at different angles (column 0 is angle i.e 0-360 and other columns are velocity for that angle).
veln (2D numpy array) – Anisotropic orientation of all grid points on the original grid.
velpn (2D numpy array of type int) – Material index of all grid points on the original grid (0 if using stiffness tensors and density, otherwise index for column in velocity_dat).
vel_map (2D numpy array) – Value used for scaling velocities at all grid points on the original grid (mainly used for isotropic materials).
stif_den (3D numpy array of type int64) – 3D numpy array of type int64 of material parameters with first two indices being the i,j coordinates and the third being the index of the material parameter(c_22, c_23, c_33, c_44, density). Stiffness tensors must be in MPa to avoid overflow errors.
- Returns:
Travel time along ray path
- Return type:
float
- Anis_TTF_rays.slown_d_slown_stif(angle, c_22, c_23, c_33, c_44, sigma, vel_scale=1)[source]
Function for returning the first derivative of the group velocity from material properties w.r.t group angle.
- Parameters:
angle (float) – Effective group angle (0-180)
c_22 (int) – Stifness parameter in MPa.
c_23 (int) – Stifness parameter in MPa.
c_33 (int) – Stifness parameter in MPa.
c_44 (int) – Stifness parameter in MPa.
sigma (int) – Density in Kg/m^3
vel_scale (float) – Velocity scaling parameter
- Returns:
Derivative of group velocity
- Return type:
float
- Anis_TTF_rays.time_between_points(x1, x2, y1, y2, dnx, subgrid_size, velocity_dat, veln, velpn, vel_map, stif_den)[source]
Finds the travel time of a straight ray between two points on a finer grid.
- Parameters:
x1 (float) – x index of the starting position on the finer grid. Does not need to be an integer value.
x2 (float) – x index of the end position on the finer grid. Does not need to be an integer value.
y1 (float) – y index of the starting position on the finer grid. Does not need to be an integer value.
y2 (float) – y index of the end position on the finer grid. Does not need to be an integer value.
dnx (float) – Distance between grid points on the original grid.
subgrid_size (int) – Odd integer for the size that the original grid was increased by to obtain the finer grid.
velocity_dat (2D numpy array) – Group velocity of materials at different angles (column 0 is angle i.e 0-360 and other columns are velocity for that angle).
veln (2D numpy array) – Anisotropic orientation of all grid points on the original grid.
velpn (2D numpy array of type int) – Material index of all grid points on the original grid (0 if using stiffness tensors and density, otherwise index for column in velocity_dat).
vel_map (2D numpy array) – Value used for scaling velocities at all grid points on the original grid (mainly used for isotropic materials).
stif_den (3D numpy array of type int64) – Material parameters with first two indices being the i,j coordinates and the third being the index of the material parameter(c_22, c_23, c_33, c_44, density). Stiffness tensors must be in MPa to avoid overflow errors.
- Returns:
Travel time of straight ray.
- Return type:
float
- Anis_TTF_rays.travel(scx, scz, nsts, btg, ntr, ttn, veln, velpn, vel_map, stif_den, avlist2, phase_vel, gox, goz, dnx, dnz, nnx, nnz)[source]
Function for calculating a travel time field for a given source.
- Parameters:
scx (float) – x position of the source (gets rounded to the nearest grid point in this implementation).
scz (float) – z position of the source (gets rounded to the nearest grid point in this implementation).
nsts (2D numpy array of type int) – Node status for points in the array. -1 is for unknown point, if point is still in the heap then value is the position in the tree.
btg (2D numpy array of type int) – Positions of points in the min heap (start with empty binary tree).
ntr (int) – Number of points in the minimum heap.
ttn (2D numpy array) – Current travel time at all points in the grid. Start with 2D array of zeros
veln (2D numpy array) – Anisotropic orientation of all grid points. For isotropic material this parameter will not affect anything.
velpn (2D numpy array of type int) – Material index of all grid points (0 if using stiffness tensors and density, otherwise index for column in avlist2).
vel_map (2D numpy array) – Value used for scaling velocities at all grid points (mainly used for isotropic materials).
stif_den (3D numpy array of type np.int64) – Material parameters with first two indices being the i,j coordinates and the third being the index of the material parameter(c_22, c_23, c_33, c_44, density). Stiffness tensors must be in MPa to avoid overflow errors.
avlist2 (2D numpy array) – Group velocity of materials at different angles (column 0 is angle i.e 0-360 and other columns are velocity for that angle).
phase_vel (2D numpy array) – Phase velocity of materials at different angles (column 0 is angle i.e 0-360 and other columns are velocity for that angle).
gox (float) – x position of the point with indices (0, 0).
goz (float) – z position of the point with indices (0, 0).
dnx (float) – Distance between points in the grid in the x direction.
dnz (float) – Distance between points in the grid in the z direction.
nnx (int) – Number of points in the grid in the x direction.
nnz (int) – Number of points in the grid in the z direction.
- Returns:
Travel time field for the given source.
- Return type:
2D numpy array
- Anis_TTF_rays.travel_finer_grid(scx, scz, veln0, velpn0, vel_map0, stif_den0, subgrid_size, avlist2, phase_vel, gox, goz, dnx, dnz)[source]
Function for calculating a travel time field for a given source on a finer grid.
- Parameters:
scx (float) – x position of the source (gets rounded to the nearest grid point in this implementation).
scz (float) – z position of the source (gets rounded to the nearest grid point in this implementation).
veln0 (2D numpy array) – Anisotropic orientation of all grid points on the original grid (not finer grid).
velpn0 (2D numpy array of type int) – Material index of all grid points on the original grid (not finer grid). Values are 0 if using stiffness tensors and density, otherwise index for column in avlist2.
vel_map0 (2D numpy array) – Value used for scaling velocities at all grid points on the original grid (not finer grid). This is mainly used for isotropic materials.
stif_den0 (3D numpy array of type int64) – Material parameters with first two indices being the i,j coordinates and the third being the index of the material parameter(c_22, c_23, c_33, c_44, density). Stiffness tensors must be in MPa to avoid overflow errors.
subgrid_size (int) – The size increase of the finer grid. Must be an odd integer so that points match in the original and finer grid.
avlist2 (2D numpy array) – Group velocity of materials at different angles (column 0 is angle i.e 0-360 and other columns are velocity for that angle).
phase_vel (2D numpy array) – Phase velocity of materials at different angles (column 0 is angle i.e 0-360 and other columns are velocity for that angle).
gox (float) – x position of the point with indices (0, 0).
goz (float) – z position of the point with indices (0, 0).
dnx (float) – Distance between points in the grid in the x direction.
dnz – Distance between points in the grid in the z direction. Must equal dnx.
- Returns:
Travel time field for the required source on the finer grid.
- Return type:
2D numpy array
- Anis_TTF_rays.travel_times(ray_x, ray_y)[source]
Splits a ray path up into smaller sections such that we have a point every time we change direction or change between grid cells.
- Parameters:
ray_x (1D numpy array) – x indices of the points in the ray path.
ray_y (1D numpy array) – y indices of the points in the ray path.
- Returns:
ray_x, ray_y - arrays of the x and y indices of ray path which has been split up.
- Return type:
2D numpy array, 2D numpy array
- Anis_TTF_rays.update(veln, velpn, vel_map, nsts, ttn, iz, ix, dnx, nnz, nnx, phase_vel, stif_den)[source]
Our finite difference method for calculating first arrival travel time at point with indices iz, ix from travel times at surrounding points with travel time estimates (not all points have an associated travel time).
- Parameters:
veln (2D numpy array) – Anisotropic orientation of all grid points.
velpn (2D numpy array of type int) – Material index of all grid points (0 if using stiffness tensors and density, otherwise index for column in velocity table).
vel_map (2D numpy array) – Value used for scaling velocities at all grid points (mainly used for isotropic materials).
nsts (2D numpy array of type int) – Node status for points in the array. -1 is for unknown point, if point is still in the heap then value is the position in the tree.
ttn (2D numpy array) – Current travel time at all points in the grid (0 for far points).
iz (int) – z index of point where finite difference is applied.
ix (int) – x index of point where finite difference is applied.
dnx (float) – Distance between points in the grid in the x/z direction.
nnz (int) – Number of points in the grid in the z direction.
nnx (int) – Number of points in the grid in the x direction.
phase_vel (2D numpy array) – Phase velocity of materials at different angles (column 0 is angle i.e 0-360 and other columns are velocity for that angle).
stif_den (3D numpy array of type np.int64) – Material parameters with first two indices being the i,j coordinates and the third being the index of the material parameter(c_22, c_23, c_33, c_44, density). Stiffness tensors must be in MPa to avoid overflow errors.
- Returns:
Travel time estimate at the point iz, ix.
- Return type:
float
- Anis_TTF_rays.updtree(iz, ix, nsts, btg, ttn)[source]
Updates the value of a point in a min heap and and filters value to new position in binary tree.
- Parameters:
iz (int) – z index of point being updated.
ix (int) – x index of point being updated.
nsts (2D numpy array of type int) – Node status for points in the array. -1 is for unknown point, if point is still in the heap then value is the position in the tree.
btg (2D numpy array of type int) – Positions of points in the min heap.
ttn (2D numpy array) – Current travel time at all points in the grid (0 for far points).
- Returns:
nsts, btg - Updated values of parameters nsts and btg.
- Return type:
2D numpy array of type int, 2D numpy array of type int
- Anis_TTF_rays.wavefront_angle_dist(ix, iz, x1, x2, x3, z1, z2, z3, y1, y2, y3)[source]
Calculates the direction of the normal to the wavefront and the minimum distance between the estimated wavefront and the point we are calculating the travel time for. Stencils have points A, B, C where A<=B<C and the estimated wavefront goes through B.
- Parameters:
ix (int) – Index of the x position at the point where we are estimating a travel time.
iz (int) – Index of the z position at the point where we are estimating a travel time.
x1 (int) – Index of the x position at the point with label A.
x2 (int) – Index of the x position at the point with label B.
x3 (int) – Index of the x position at the point with label C.
z1 (int) – Index of the z position at the point with label A.
z2 (int) – Index of the z position at the point with label B.
z3 (int) – Index of the z position at the point with label C.
y1 (float) – Travel time estimate at the point with label A.
y2 (float) – Travel time estimate at the point with label B.
y3 (float) – Travel time estimate at the point with label C.
- Returns:
angle, dist - The direction of the normal to the estimated wavefront and the minimum distance between the wavefront and the point we are estimating.
- Return type:
float, float