resqpy.grid_surface.GridSkin

class resqpy.grid_surface.GridSkin(grid, quad_triangles=True, use_single_layer_tactics=True, is_regular=False)[source]

Bases: object

Class of object consisting of outer skin of grid (not a RESQML class in its own right).

Methods:

__init__(grid[, quad_triangles, ...])

Returns a composite surface object consisting of outer skin of grid.

find_first_intersection_of_trajectory(trajectory)

Returns the first intersection of the trajectory with the torn skin.


__init__(grid, quad_triangles=True, use_single_layer_tactics=True, is_regular=False)[source]

Returns a composite surface object consisting of outer skin of grid.

is_regular

indicates a simplified skin for a regular aligned grid

skin

compostite surface constructed during initialisation

find_first_intersection_of_trajectory(trajectory, start=0, start_xyz=None, nudge=None, exclude_kji0=None)[source]

Returns the first intersection of the trajectory with the torn skin.

Returns the x,y,z and K,J,I and axis, polarity & segment.

Parameters:
  • trajectory (well.Trajectory object) – the trajectory to be intersected with the skin

  • start (int, default 0) – the trajectory segment number to start the search from

  • start_xyz (triple float, optional) – if present, this point should lie on the start segment and search continues from this point

  • nudge (float, optional) – if present and positive, the start point is nudged forward by this distance (grid uom); if present and negative (more typical for skin entry search), the start point is nudged back a little

  • exclude_kji0 (triple int, optional) – if present, the indices of a cell to exclude as a possible result

Returns:

5-tuple of

  • (triple float): xyz coordinates of the intersection point in the crs of the grid

  • (triple int): kji0 of the cell that is intersected, which might be a pinched out or otherwise inactive cell

  • (int): 0, 1 or 2 for K, J or I axis of cell face

  • (int): 0 for -ve face, 1 for +ve face

  • (int): trajectory knot prior to the intersection (also the segment number)

Note

if the GridSkin object has been initialised using single layer tactics, then the k0 value will be zero for any initial entry through a sidewall of the grid or through a fault face