resqpy.derived_model.extract_box_for_well¶
- resqpy.derived_model.extract_box_for_well(epc_file=None, source_grid=None, min_k0=None, max_k0=None, trajectory_epc=None, trajectory_uuid=None, blocked_well_uuid=None, column_ji0=None, column_xy=None, well_name=None, radius=None, outer_radius=None, active_cells_shape='tube', quad_triangles=True, inherit_properties=False, inherit_realization=None, inherit_all_realizations=False, inherit_well=False, set_parent_window=None, new_grid_title=None, new_epc_file=None)¶
Extends an existing model with a new grid extracted as an IJK box around a well trajectory in the source grid.
- Parameters
epc_file (string) – file name to rewrite the model’s xml to; if source grid is None, model is loaded from this file
source_grid (grid.Grid object, optional) – if None, the epc_file is loaded and it should contain one ijk grid object (or one ‘ROOT’ grid) which is used as the source grid
min_k0 (integers, optional) – layer range to include; default is full vertical range of source grid
max_k0 (integers, optional) – layer range to include; default is full vertical range of source grid
trajectory_epc (string, optional) – the source file for the trajectory or blocked well, if different to that for the source grid
trajectory_uuid (uuid.UUID) – the uuid of the trajectory object for the well, if working from a trajectory
blocked_well_uuid (uuid.UUID) – the uuid of the blocked well object, an alternative to working from a trajectory; must include blocking against source_grid
column_ji0 (integer pair, optional) – an alternative to providing a trajectory: the column indices of a ‘vertical’ well
column_xy (float pair, optional) – an alternative to column_ji0: the x, y location used to determine the column
well_name (string, optional) – name to use for column well, ignored if trajectory_uuid is not None
radius (float, optional) – the radius around the wellbore to include in the box; units are those of grid xy values; radial distances are applied horizontally regardless of well inclination; if not present, only cells penetrated by the trajectory are included
outer_radius (float, optional) – an outer radius around the wellbore, beyond which an inactive cell mask for the source_grid will be set to True (inactive); units are those of grid xy values
active_cells_shape (string, default 'tube') – the logical shape of cells marked as active in the extracted box; ‘tube’ results in an active shape with circular cross section in IJ planes, that follows the trajectory; ‘prism’ activates all cells in IJ columns where any cell is within the tube; ‘box’ leaves the entire IJK cuboid active
quad_triangles (boolean, default True) – if True, cell K faces are treated as 4 triangles (with a common face centre point) when computing the intersection of the trajectory with layer interfaces (horizons); if False, the K faces are treated as 2 triangles
inherit_properties (boolean, default False) – if True, the new grid will have a copy of any properties associated with the source grid, with values taken from the extracted box
inherit_realization (int, optional) – realization number for which properties will be inherited; ignored if inherit_properties is False
inherit_all_realizations (boolean, default False) – if True (and inherit_realization is None), properties for all realizations will be inherited; if False, only properties with a realization of None are inherited; ignored if inherit_properties is False or inherit_realization is not None
inherit_well (boolean, default False) – if True, the new model will have a copy of the well trajectory, its crs (if different from that of the grid), and any related wellbore interpretation and feature
set_parent_window (boolean, optional) – if True, the extracted grid has its parent window attribute set; if False, the parent window is not set; if None, the default will be True if new_epc_file is None or False otherwise
new_grid_title (string) – used as the citation title text for the new grid object
new_epc_file (string, optional) – if None, the source epc_file is extended with the new grid object; if present, a new epc file (& associated h5 file) is created to contain the extracted grid (& crs)
- Returns
(grid, box) where – grid is the new Grid object with extent as determined by source grid geometry, trajectory and radius arguments; and box is a numpy int array of shape (2, 3) with first axis covering min, max and second axis covering k,j,i; the box array holds the minimum and maximum indices (zero based) in the source grid that have been included in the extraction (nb. maximum indices are included, unlike the usual python protocol)
Notes
this function is designed to work fully for vertical and deviated wells; for horizontal wells use blocked well mode; the extracted box includes all layers between the specified min and max horizons, even if the trajectory terminates above the deeper horizon or does not intersect horizon(s) for other reasons; when specifying a column well by providing x,y the IJ column with the centre of the topmost k face closest to the given point is selected; if an outer_radius is given, a boolean property will be created for the source grid with values set True where the centres of the cells are beyond this distance from the well, measured horizontally; if outer_radius and new_epc_file are both given, the source grid will be copied to the new epc