resqpy 4.14.2__py3-none-any.whl → 5.1.6__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- resqpy/__init__.py +1 -1
- resqpy/fault/_gcs_functions.py +10 -10
- resqpy/fault/_grid_connection_set.py +277 -113
- resqpy/grid/__init__.py +2 -3
- resqpy/grid/_defined_geometry.py +3 -3
- resqpy/grid/_extract_functions.py +8 -2
- resqpy/grid/_grid.py +95 -12
- resqpy/grid/_grid_types.py +22 -7
- resqpy/grid/_points_functions.py +1 -1
- resqpy/grid/_regular_grid.py +6 -2
- resqpy/grid_surface/__init__.py +17 -38
- resqpy/grid_surface/_blocked_well_populate.py +5 -5
- resqpy/grid_surface/_find_faces.py +1413 -253
- resqpy/lines/_polyline.py +24 -33
- resqpy/model/_catalogue.py +9 -0
- resqpy/model/_forestry.py +18 -14
- resqpy/model/_hdf5.py +11 -3
- resqpy/model/_model.py +85 -10
- resqpy/model/_xml.py +38 -13
- resqpy/multi_processing/wrappers/grid_surface_mp.py +92 -37
- resqpy/olio/read_nexus_fault.py +8 -2
- resqpy/olio/relperm.py +1 -1
- resqpy/olio/transmission.py +8 -8
- resqpy/olio/triangulation.py +36 -30
- resqpy/olio/vector_utilities.py +340 -6
- resqpy/olio/volume.py +0 -20
- resqpy/olio/wellspec_keywords.py +19 -13
- resqpy/olio/write_hdf5.py +1 -1
- resqpy/olio/xml_et.py +12 -0
- resqpy/property/__init__.py +6 -4
- resqpy/property/_collection_add_part.py +4 -3
- resqpy/property/_collection_create_xml.py +4 -2
- resqpy/property/_collection_get_attributes.py +4 -0
- resqpy/property/attribute_property_set.py +311 -0
- resqpy/property/grid_property_collection.py +11 -11
- resqpy/property/property_collection.py +79 -31
- resqpy/property/property_common.py +3 -8
- resqpy/rq_import/_add_surfaces.py +34 -14
- resqpy/rq_import/_grid_from_cp.py +2 -2
- resqpy/rq_import/_import_nexus.py +75 -48
- resqpy/rq_import/_import_vdb_all_grids.py +64 -52
- resqpy/rq_import/_import_vdb_ensemble.py +12 -13
- resqpy/surface/_mesh.py +4 -0
- resqpy/surface/_surface.py +593 -118
- resqpy/surface/_tri_mesh.py +13 -10
- resqpy/surface/_tri_mesh_stencil.py +4 -4
- resqpy/surface/_triangulated_patch.py +71 -51
- resqpy/time_series/_any_time_series.py +7 -4
- resqpy/time_series/_geologic_time_series.py +1 -1
- resqpy/unstructured/_hexa_grid.py +6 -2
- resqpy/unstructured/_prism_grid.py +13 -5
- resqpy/unstructured/_pyramid_grid.py +6 -2
- resqpy/unstructured/_tetra_grid.py +6 -2
- resqpy/unstructured/_unstructured_grid.py +6 -2
- resqpy/well/_blocked_well.py +1986 -1946
- resqpy/well/_deviation_survey.py +3 -3
- resqpy/well/_md_datum.py +11 -21
- resqpy/well/_trajectory.py +10 -5
- resqpy/well/_wellbore_frame.py +10 -2
- resqpy/well/blocked_well_frame.py +3 -3
- resqpy/well/well_object_funcs.py +7 -9
- resqpy/well/well_utils.py +33 -0
- {resqpy-4.14.2.dist-info → resqpy-5.1.6.dist-info}/METADATA +8 -9
- {resqpy-4.14.2.dist-info → resqpy-5.1.6.dist-info}/RECORD +66 -66
- {resqpy-4.14.2.dist-info → resqpy-5.1.6.dist-info}/WHEEL +1 -1
- resqpy/grid/_moved_functions.py +0 -15
- {resqpy-4.14.2.dist-info → resqpy-5.1.6.dist-info}/LICENSE +0 -0
resqpy/well/_deviation_survey.py
CHANGED
@@ -233,9 +233,9 @@ class DeviationSurvey(BaseResqpy):
|
|
233
233
|
"""
|
234
234
|
|
235
235
|
try:
|
236
|
-
|
237
|
-
|
238
|
-
|
236
|
+
sep = r'\s+' if space_separated_instead_of_csv else ','
|
237
|
+
|
238
|
+
df = pd.read_csv(deviation_survey_file, comment = comment_character, sep = sep)
|
239
239
|
if df is None:
|
240
240
|
raise Exception
|
241
241
|
except Exception:
|
resqpy/well/_md_datum.py
CHANGED
@@ -80,19 +80,6 @@ class MdDatum(BaseResqpy):
|
|
80
80
|
assert md_reference in valid_md_reference_list
|
81
81
|
assert len(location) == 3
|
82
82
|
|
83
|
-
def _load_from_xml(self):
|
84
|
-
md_datum_root = self.root
|
85
|
-
assert md_datum_root is not None
|
86
|
-
location_node = rqet.find_tag(md_datum_root, 'Location')
|
87
|
-
self.location = (rqet.find_tag_float(location_node,
|
88
|
-
'Coordinate1'), rqet.find_tag_float(location_node, 'Coordinate2'),
|
89
|
-
rqet.find_tag_float(location_node, 'Coordinate3'))
|
90
|
-
self.md_reference = rqet.node_text(rqet.find_tag(md_datum_root, 'MdReference')).strip().lower()
|
91
|
-
assert self.md_reference in valid_md_reference_list
|
92
|
-
self.crs_uuid = self.extract_crs_uuid()
|
93
|
-
|
94
|
-
# todo: the following function is almost identical to one in the grid module: it should be made common and put in model.py
|
95
|
-
|
96
83
|
def extract_crs_uuid(self):
|
97
84
|
"""Returns uuid for coordinate reference system, as stored in reference node of this md datum's xml tree."""
|
98
85
|
|
@@ -103,14 +90,6 @@ class MdDatum(BaseResqpy):
|
|
103
90
|
self.crs_uuid = bu.uuid_from_string(uuid_str)
|
104
91
|
return self.crs_uuid
|
105
92
|
|
106
|
-
def create_part(self):
|
107
|
-
"""Creates xml for this md datum object and adds to parent model as a part; returns root node for part."""
|
108
|
-
|
109
|
-
# note: deprecated, call create_xml() directly
|
110
|
-
assert self.root is None
|
111
|
-
assert self.location is not None
|
112
|
-
self.create_xml(add_as_part = True)
|
113
|
-
|
114
93
|
def create_xml(self, add_as_part = True, add_relationships = True, title = None, originator = None):
|
115
94
|
"""Creates xml for a measured depth datum element; crs node must already exist; optionally adds as part.
|
116
95
|
|
@@ -164,3 +143,14 @@ class MdDatum(BaseResqpy):
|
|
164
143
|
if self.md_reference != other.md_reference or not np.allclose(self.location, other.location):
|
165
144
|
return False
|
166
145
|
return bu.matching_uuids(self.crs_uuid, other.crs_uuid)
|
146
|
+
|
147
|
+
def _load_from_xml(self):
|
148
|
+
md_datum_root = self.root
|
149
|
+
assert md_datum_root is not None
|
150
|
+
location_node = rqet.find_tag(md_datum_root, 'Location')
|
151
|
+
self.location = (rqet.find_tag_float(location_node,
|
152
|
+
'Coordinate1'), rqet.find_tag_float(location_node, 'Coordinate2'),
|
153
|
+
rqet.find_tag_float(location_node, 'Coordinate3'))
|
154
|
+
self.md_reference = rqet.node_text(rqet.find_tag(md_datum_root, 'MdReference')).strip().lower()
|
155
|
+
assert self.md_reference in valid_md_reference_list
|
156
|
+
self.crs_uuid = self.extract_crs_uuid()
|
resqpy/well/_trajectory.py
CHANGED
@@ -419,8 +419,13 @@ class Trajectory(BaseResqpy):
|
|
419
419
|
set_tangent_vectors = True):
|
420
420
|
"""Load MD and control points (xyz) data directly from numpy arrays."""
|
421
421
|
|
422
|
+
if isinstance(mds, list) or isinstance(mds, tuple):
|
423
|
+
mds = np.array(mds, dtype = float)
|
424
|
+
assert mds.ndim == 1
|
422
425
|
self.knot_count = len(mds)
|
423
426
|
assert self.knot_count >= 2 # vertical well could be hamdled by allowing a single station in survey?
|
427
|
+
if isinstance(control_points, list) or isinstance(control_points, tuple):
|
428
|
+
control_points = np.array(control_points, dtype = float)
|
424
429
|
assert control_points.shape == (self.knot_count, 3)
|
425
430
|
self.line_kind_index = 5 # assume minimum curvature spline
|
426
431
|
self.md_uom = wam.rq_length_unit(md_uom)
|
@@ -443,7 +448,7 @@ class Trajectory(BaseResqpy):
|
|
443
448
|
"""Loads the trajectory object based on the centre points of a list of cells."""
|
444
449
|
|
445
450
|
assert grid is not None, 'grid argument missing for trajectory initislisation from cell list'
|
446
|
-
cell_kji0_list = np.array(cell_kji0_list, dtype =
|
451
|
+
cell_kji0_list = np.array(cell_kji0_list, dtype = np.int32)
|
447
452
|
assert cell_kji0_list.ndim == 2 and cell_kji0_list.shape[1] == 3
|
448
453
|
assert spline_mode in ['none', 'linear', 'square', 'cube']
|
449
454
|
|
@@ -478,7 +483,7 @@ class Trajectory(BaseResqpy):
|
|
478
483
|
df = wellspec_dict[well_name]
|
479
484
|
assert len(df) > 0, 'no rows of perforation data found in wellspec for well ' + well_name
|
480
485
|
|
481
|
-
cell_kji0_list = np.empty((len(df), 3), dtype =
|
486
|
+
cell_kji0_list = np.empty((len(df), 3), dtype = np.int32)
|
482
487
|
cell_kji0_list[:, 0] = df['L']
|
483
488
|
cell_kji0_list[:, 1] = df['JW']
|
484
489
|
cell_kji0_list[:, 2] = df['IW']
|
@@ -505,9 +510,9 @@ class Trajectory(BaseResqpy):
|
|
505
510
|
self.title = 'well trajectory'
|
506
511
|
|
507
512
|
try:
|
508
|
-
|
509
|
-
|
510
|
-
|
513
|
+
sep = r'\s+' if space_separated_instead_of_csv else ','
|
514
|
+
|
515
|
+
df = pd.read_csv(trajectory_file, comment = comment_character, sep = sep)
|
511
516
|
if df is None:
|
512
517
|
raise Exception
|
513
518
|
except Exception:
|
resqpy/well/_wellbore_frame.py
CHANGED
@@ -106,7 +106,11 @@ class WellboreFrame(BaseResqpy):
|
|
106
106
|
assert self.node_mds is not None and self.node_mds.ndim == 1
|
107
107
|
|
108
108
|
def _load_from_xml(self):
|
109
|
-
"""Loads the wellbore frame object from an xml node
|
109
|
+
"""Loads the wellbore frame object from an xml node.
|
110
|
+
|
111
|
+
Also loads the associated data either from an hdf5 file or generated from a
|
112
|
+
lattice array definition.
|
113
|
+
"""
|
110
114
|
|
111
115
|
# NB: node is the root level xml node, not a node in the md list!
|
112
116
|
|
@@ -126,7 +130,11 @@ class WellboreFrame(BaseResqpy):
|
|
126
130
|
|
127
131
|
mds_node = rqet.find_tag(node, 'NodeMd')
|
128
132
|
assert mds_node is not None, 'wellbore frame measured depths hdf5 reference not found in xml'
|
129
|
-
|
133
|
+
if rqet.node_type(mds_node) == "DoubleLatticeArray":
|
134
|
+
rqwu.load_lattice_array(self, mds_node, "node_mds", self.trajectory)
|
135
|
+
self.node_count = self.node_mds.size
|
136
|
+
else:
|
137
|
+
rqwu.load_hdf5_array(self, mds_node, "node_mds")
|
130
138
|
|
131
139
|
assert self.node_mds is not None and self.node_mds.ndim == 1 and self.node_mds.size == self.node_count
|
132
140
|
|
@@ -191,7 +191,7 @@ def add_blocked_well_properties_from_wellbore_frame(bw,
|
|
191
191
|
wb_a = np.zeros(bw.cell_count, dtype = bool)
|
192
192
|
length = np.zeros(bw.cell_count, dtype = float)
|
193
193
|
pperf = np.zeros(bw.cell_count, dtype = float)
|
194
|
-
dominant_wbf_interval = np.full(bw.cell_count, -1, dtype =
|
194
|
+
dominant_wbf_interval = np.full(bw.cell_count, -1, dtype = np.int32)
|
195
195
|
ci = 0
|
196
196
|
for wb_ii in range(bw.node_count - 1):
|
197
197
|
if bw.grid_indices[wb_ii] < 0:
|
@@ -258,7 +258,7 @@ def add_blocked_well_properties_from_wellbore_frame(bw,
|
|
258
258
|
wbf_p = wbf_pc.singleton(property_kind = 'wellbore radius')
|
259
259
|
assert wbf_p is not None, 'problem with wellbore radius wellbore frame property'
|
260
260
|
wbf_a = wbf_pc.cached_part_array_ref(wbf_p)
|
261
|
-
wb_a = np.full(bw.cell_count, np.
|
261
|
+
wb_a = np.full(bw.cell_count, np.nan, dtype = float)
|
262
262
|
for i, wbf_contributions in enumerate(wb_fraction_of_wbf):
|
263
263
|
if len(wbf_contributions) == 0:
|
264
264
|
continue # todo: could try to inherit wellbore radius from above or below?
|
@@ -350,7 +350,7 @@ def add_blocked_well_properties_from_wellbore_frame(bw,
|
|
350
350
|
skin_uom = skin_pc.uom_for_part(skin_part)
|
351
351
|
else:
|
352
352
|
assert skin_pc.uom_for_part(skin_part) == skin_uom, 'mixed skin units of measure'
|
353
|
-
wb_skin = np.full(bw.cell_count, np.
|
353
|
+
wb_skin = np.full(bw.cell_count, np.nan, dtype = float)
|
354
354
|
for i, wbf_contributions in enumerate(wb_fraction_of_wbf):
|
355
355
|
if len(wbf_contributions) == 0:
|
356
356
|
continue
|
resqpy/well/well_object_funcs.py
CHANGED
@@ -77,9 +77,8 @@ def add_wells_from_ascii_file(model,
|
|
77
77
|
assert crs_uuid is not None, 'coordinate reference system not found when trying to add wells'
|
78
78
|
|
79
79
|
try:
|
80
|
-
|
81
|
-
|
82
|
-
delim_whitespace = space_separated_instead_of_csv)
|
80
|
+
sep = r'\s+' if space_separated_instead_of_csv else ','
|
81
|
+
df = pd.read_csv(trajectory_file, comment = comment_character, sep = sep)
|
83
82
|
if df is None:
|
84
83
|
raise Exception
|
85
84
|
except Exception:
|
@@ -350,7 +349,6 @@ def add_las_to_trajectory(las: lasio.LASFile, trajectory, realization = None, ch
|
|
350
349
|
|
351
350
|
# Read in data from each curve in turn (skipping first curve which has depths)
|
352
351
|
for curve in las.curves[1:]:
|
353
|
-
|
354
352
|
collection.add_log(
|
355
353
|
title = curve.mnemonic,
|
356
354
|
data = curve.data,
|
@@ -442,10 +440,10 @@ def add_logs_from_cellio(blockedwell, cellio):
|
|
442
440
|
df = df.apply(pd.to_numeric)
|
443
441
|
# Get the cell_indices from the grid for the given i/j/k
|
444
442
|
df['cell_indices'] = grid.natural_cell_indices(
|
445
|
-
np.array((df['k_index'] - 1, df['j_index'] - 1, df['i_index'] - 1), dtype =
|
443
|
+
np.array((df['k_index'] - 1, df['j_index'] - 1, df['i_index'] - 1), dtype = np.int32).T)
|
446
444
|
df = df.drop(['i_index', 'j_index', 'k_index', 'x_in', 'y_in', 'z_in', 'x_out', 'y_out', 'z_out'], axis = 1)
|
447
|
-
assert (df['cell_indices'] == blockedwell.cell_indices
|
448
|
-
|
445
|
+
assert (df['cell_indices'] == blockedwell.cell_indices).all(), \
|
446
|
+
'Cell indices do not match between blocked well and log inputs'
|
449
447
|
|
450
448
|
# Work out if the data columns are continuous, categorical or discrete
|
451
449
|
type_dict = {}
|
@@ -468,11 +466,11 @@ def add_logs_from_cellio(blockedwell, cellio):
|
|
468
466
|
if log not in ['cell_indices']:
|
469
467
|
data_type = type_dict[log]
|
470
468
|
if log == 'ZONES':
|
471
|
-
data_type, dtype, null, discrete = 'discrete',
|
469
|
+
data_type, dtype, null, discrete = 'discrete', np.int32, -1, True
|
472
470
|
elif data_type == 'continuous':
|
473
471
|
dtype, null, discrete = float, np.nan, False
|
474
472
|
else:
|
475
|
-
dtype, null, discrete =
|
473
|
+
dtype, null, discrete = np.int32, -1, True
|
476
474
|
if data_type == 'categorical':
|
477
475
|
lookup_uuid = lookup_dict[log] # For categorical data, find or generate a StringLookupTable
|
478
476
|
else:
|
resqpy/well/well_utils.py
CHANGED
@@ -35,6 +35,39 @@ def load_hdf5_array(object, node, array_attribute, tag = 'Values', dtype = 'floa
|
|
35
35
|
array_attribute = array_attribute)
|
36
36
|
|
37
37
|
|
38
|
+
def load_lattice_array(object, node, array_attribute, trajectory):
|
39
|
+
"""Loads the property array data as an attribute of object, from the lattice array referenced in xml node.
|
40
|
+
|
41
|
+
This loader expects the XML node to be in the form of a lattice array, which is a
|
42
|
+
variant of NodeMd data defined as a series of regularly spaced measured depth values
|
43
|
+
computed from the metadata in the XML (start_value, offset, step_value, step_count).
|
44
|
+
Checks that the computed NodeMds are valid on the trajectory, and only loads those.
|
45
|
+
|
46
|
+
:param: object: The object to load the data into (typically a WellboreFrame)
|
47
|
+
:param: node: The XML node to load the metadata from
|
48
|
+
:param: array_attribute: The name of the attribute on 'object' to load the data into
|
49
|
+
:param: trajectory: The trajectory object to use to check the validity of the data
|
50
|
+
|
51
|
+
:meta private:
|
52
|
+
"""
|
53
|
+
|
54
|
+
def check_md(md: float, trajectory) -> bool:
|
55
|
+
xyz = np.array(trajectory.xyz_for_md(md))
|
56
|
+
return isinstance(xyz, np.ndarray) and xyz.shape == (3,)
|
57
|
+
|
58
|
+
if array_attribute is not None and getattr(object, array_attribute, None) is not None:
|
59
|
+
return
|
60
|
+
|
61
|
+
start_value = rqet.find_tag_float(node, "StartValue", must_exist = True)
|
62
|
+
offset = rqet.find_tag(node, "Offset", must_exist = True)
|
63
|
+
step_value = rqet.find_tag_float(offset, "Value", must_exist = True)
|
64
|
+
step_count = rqet.find_tag_int(offset, "Count", must_exist = True)
|
65
|
+
if step_count > 0:
|
66
|
+
step_mds = start_value + np.arange(step_count) * step_value
|
67
|
+
valid_mds = [md for md in step_mds if check_md(md, trajectory)]
|
68
|
+
object.__dict__[array_attribute] = np.array(valid_mds)
|
69
|
+
|
70
|
+
|
38
71
|
def extract_xyz(xyz_node):
|
39
72
|
"""Extracts an x,y,z coordinate from a solitary point xml node.
|
40
73
|
|
@@ -1,12 +1,11 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.3
|
2
2
|
Name: resqpy
|
3
|
-
Version:
|
3
|
+
Version: 5.1.6
|
4
4
|
Summary: Python API for working with RESQML models
|
5
|
-
Home-page: https://github.com/bp/resqpy
|
6
5
|
License: MIT
|
7
6
|
Keywords: RESQML
|
8
7
|
Author: BP
|
9
|
-
Requires-Python: >=3.
|
8
|
+
Requires-Python: >=3.9,<3.13
|
10
9
|
Classifier: Development Status :: 5 - Production/Stable
|
11
10
|
Classifier: License :: OSI Approved :: MIT License
|
12
11
|
Classifier: Operating System :: OS Independent
|
@@ -14,17 +13,17 @@ Classifier: Programming Language :: Python :: 3
|
|
14
13
|
Classifier: Programming Language :: Python :: 3.9
|
15
14
|
Classifier: Programming Language :: Python :: 3.10
|
16
15
|
Classifier: Programming Language :: Python :: 3.11
|
17
|
-
Classifier: Programming Language :: Python :: 3.
|
16
|
+
Classifier: Programming Language :: Python :: 3.12
|
18
17
|
Classifier: Topic :: Scientific/Engineering
|
19
18
|
Classifier: Topic :: Scientific/Engineering :: Information Analysis
|
20
19
|
Classifier: Topic :: System :: Filesystems
|
21
20
|
Requires-Dist: h5py (>=3.7,<4.0)
|
22
21
|
Requires-Dist: joblib (>=1.2,<2.0)
|
23
22
|
Requires-Dist: lasio (>=0.31,<0.32)
|
24
|
-
Requires-Dist: lxml (>=
|
25
|
-
Requires-Dist: numba (>=0.
|
26
|
-
Requires-Dist: numpy (>=1.
|
27
|
-
Requires-Dist: pandas (>=
|
23
|
+
Requires-Dist: lxml (>=5.1,<6.0)
|
24
|
+
Requires-Dist: numba (>=0.59,<1.0)
|
25
|
+
Requires-Dist: numpy (>=1.26,<2.0)
|
26
|
+
Requires-Dist: pandas (>=2.2,<3.0)
|
28
27
|
Requires-Dist: scipy (>=1.9,<2.0)
|
29
28
|
Project-URL: Documentation, https://resqpy.readthedocs.io/en/latest/
|
30
29
|
Project-URL: Repository, https://github.com/bp/resqpy
|
@@ -1,4 +1,4 @@
|
|
1
|
-
resqpy/__init__.py,sha256=
|
1
|
+
resqpy/__init__.py,sha256=cnR7ZBD-Sv8zdt5JWWw7n0iqZIaIhsYS7akdPjFzG10,555
|
2
2
|
resqpy/crs.py,sha256=R7DfcTP5xGv5pu9Y8RHA2WVM9DjBCSVMoHcz4RmQ7Yw,27646
|
3
3
|
resqpy/derived_model/__init__.py,sha256=NFvMSOKI3cxmH7lAbddV43JjoUj-r2G7ExEfOqinD1I,1982
|
4
4
|
resqpy/derived_model/_add_edges_per_column_property_array.py,sha256=cpW3gwp6MSYIrtvFmCjoJXcyUsgGuCDbgmwlJCJebUs,6410
|
@@ -24,52 +24,51 @@ resqpy/derived_model/_unsplit_grid.py,sha256=aqcdyn4WhDy7Kys3wnb55QwVXehmir4VW7T
|
|
24
24
|
resqpy/derived_model/_zonal_grid.py,sha256=H-IGMudUV-tiRHZqvl9B1wxMQNjeAM2zHvTllNiagPA,18825
|
25
25
|
resqpy/derived_model/_zone_layer_ranges_from_array.py,sha256=4pHkp7yqvkif_pC59VEK0g0JeFx7kt8mqhqADTOcucI,4358
|
26
26
|
resqpy/fault/__init__.py,sha256=IStX_EhPnppIExf_mgYrBddC4KP26VcqblcfXiBT614,996
|
27
|
-
resqpy/fault/_gcs_functions.py,sha256=
|
28
|
-
resqpy/fault/_grid_connection_set.py,sha256=
|
29
|
-
resqpy/grid/__init__.py,sha256=
|
27
|
+
resqpy/fault/_gcs_functions.py,sha256=NRyhKkYChRaKDUIQ6pfVQiD67e4TTm3LnBvWEPtpkDU,29569
|
28
|
+
resqpy/fault/_grid_connection_set.py,sha256=xStOkWHsbh9m6lql7f2PDURnoFOIM1mFmx-QG6yPaKo,126124
|
29
|
+
resqpy/grid/__init__.py,sha256=FTeNW9kJ8By6gA2-x-NisQQ8cY8RHCAro0lT-3ssxYQ,601
|
30
30
|
resqpy/grid/_cell_properties.py,sha256=pbyAK2eV9n4teOxm2q5hyBinohEbevFPrCfMcpGiqUU,20689
|
31
31
|
resqpy/grid/_connection_sets.py,sha256=-277bh9pMoeESSzy9oZehL-vc82aMGZuSLQs2KJ4Wfg,10120
|
32
32
|
resqpy/grid/_create_grid_xml.py,sha256=p-jKo1BZ-DlhEYixVzadtY-QsqA8ygcXvMYS_TvQCjg,22837
|
33
|
-
resqpy/grid/_defined_geometry.py,sha256=
|
34
|
-
resqpy/grid/_extract_functions.py,sha256=
|
33
|
+
resqpy/grid/_defined_geometry.py,sha256=QYQ3wLbPrlPobgUi9R1izTD4JD9qMGf5eyqbM68Hg-0,32297
|
34
|
+
resqpy/grid/_extract_functions.py,sha256=zfB8rLnt1qdz627BOiM4igXQKbCnsM8fV0HMbnLusTk,28585
|
35
35
|
resqpy/grid/_face_functions.py,sha256=0I7O6DDz7nJWczi_G2bE3L2XUr4acxREwKygXWEp6F4,16516
|
36
36
|
resqpy/grid/_faults.py,sha256=OmukVoLpdrndqDxwE6Rj7Ul5tj3FUQVPhE0raH2FHpg,12236
|
37
|
-
resqpy/grid/_grid.py,sha256
|
38
|
-
resqpy/grid/_grid_types.py,sha256=
|
37
|
+
resqpy/grid/_grid.py,sha256=-OhJpi9x8r74_7_CBrQsanqhFiZQcCiJkvbnhPRq2qQ,135758
|
38
|
+
resqpy/grid/_grid_types.py,sha256=YAmRrrm-J2HKuuwCRCAkE3ppcQLiwc4EEc6dc-sy9Fc,4362
|
39
39
|
resqpy/grid/_intervals_info.py,sha256=ODjDz22n8U9pSpO0Muj8mJr2hYWauFDzgcVQ0RM3csQ,338
|
40
|
-
resqpy/grid/_moved_functions.py,sha256=XboxA0pE55j-P_x5g051WheVamxkAatQGbU5aq2GkaE,604
|
41
40
|
resqpy/grid/_pillars.py,sha256=WXvLjORlNHnm0KI3qgoRtCyXdcT9vQBkJDQWL2wtJwg,7243
|
42
41
|
resqpy/grid/_pixel_maps.py,sha256=Aqn9dpDKjX_v8BnWMdN__ulqjeuXfE6W2_Z7EDaUqdE,5386
|
43
|
-
resqpy/grid/_points_functions.py,sha256=
|
44
|
-
resqpy/grid/_regular_grid.py,sha256=
|
42
|
+
resqpy/grid/_points_functions.py,sha256=72dCLWHrOUM9xSwSaEuxPUA__b6WAdk5rbeWatILdaI,70585
|
43
|
+
resqpy/grid/_regular_grid.py,sha256=5TzyD82S3K0H2zfBXHcGpOODmwc4X28WAUqgZ2kHCLc,46038
|
45
44
|
resqpy/grid/_transmissibility.py,sha256=cLtuVaLgBQqRXa-_YQ5mjR_QC842Jxn2d-Hl6171yOY,22575
|
46
45
|
resqpy/grid/_write_hdf5_from_caches.py,sha256=s3gcoilsFCCSw_wjnTjWe1xMHEWr_cessoGVgzqiqVI,9707
|
47
46
|
resqpy/grid/_write_nexus_corp.py,sha256=yEVfiObsedEAXX6UG6ZTf56kZnQVkd3lLqE2NpL-KBM,6147
|
48
47
|
resqpy/grid/_xyz.py,sha256=RLQWOdM_DRoCj4JypwB5gUJ78HTdk5JnZHSeAzuU634,13087
|
49
|
-
resqpy/grid_surface/__init__.py,sha256=
|
50
|
-
resqpy/grid_surface/_blocked_well_populate.py,sha256=
|
51
|
-
resqpy/grid_surface/_find_faces.py,sha256=
|
48
|
+
resqpy/grid_surface/__init__.py,sha256=zSbyDwUH_p0UXd9PAcAXvcS1wrmRVnZvXXa1zQSQBlY,2925
|
49
|
+
resqpy/grid_surface/_blocked_well_populate.py,sha256=Lme1AR-nLWOUlNnmHMVThk6jEg_lAZxWWtL82Yksppw,35867
|
50
|
+
resqpy/grid_surface/_find_faces.py,sha256=sBzy9mWQZNU41kE5v3taVNDKnqzTcvnOT2FVAXABP0c,120573
|
52
51
|
resqpy/grid_surface/_grid_skin.py,sha256=D0cjHkcuT5KCKb-8EZfXgh0GgJj3kzOBS2wVNXg4bfY,26056
|
53
52
|
resqpy/grid_surface/_grid_surface.py,sha256=l2NJo7Kiucolbb_TlLPC7NGdksg_JahkihfsrJVq99w,14379
|
54
53
|
resqpy/grid_surface/_trajectory_intersects.py,sha256=Och9cZYU9Y7ofovhPzsLyIblRUl2xj9_5nHH3fMZp-A,22498
|
55
54
|
resqpy/grid_surface/grid_surface_cuda.py,sha256=RVhrhzuQOIl3QlUocUeHdmmv6M_HNXe5UH3sDTZRIQI,40016
|
56
55
|
resqpy/lines/__init__.py,sha256=zE7j-BeqkOowj_tsZWd2X_fT-RpbuIh17zfEyj2N0oY,539
|
57
56
|
resqpy/lines/_common.py,sha256=nlgVgZ8utHXuHDyzuP0IpkUJViDNmmy7EBqwLzxSI2M,11960
|
58
|
-
resqpy/lines/_polyline.py,sha256=
|
57
|
+
resqpy/lines/_polyline.py,sha256=boiVQ2lBLp3c0b1bEA2T_j_a5gNsMI2orxZnitZVdSY,42227
|
59
58
|
resqpy/lines/_polyline_set.py,sha256=3K3z_G9l_3mfjLdCL-YVscyj1FA6DHh1uj9rXPtWFOY,27986
|
60
59
|
resqpy/model/__init__.py,sha256=hbxO-IpCOH_82TZqj6e1FjrWxO0tZu2gj2HCN9x-Svw,378
|
61
|
-
resqpy/model/_catalogue.py,sha256=
|
60
|
+
resqpy/model/_catalogue.py,sha256=duvZlNlTPjAfXyqae0J9lMSEx_8-WIcrw2MYxnNEg_Q,30487
|
62
61
|
resqpy/model/_context.py,sha256=0tLBVMcuuIj3i87Ig8lhFMLHE5GHgEA2PEl1NjKaohc,2840
|
63
|
-
resqpy/model/_forestry.py,sha256=
|
62
|
+
resqpy/model/_forestry.py,sha256=42dMwqdvxdRYYwqVSC4ky2iDp9hmqUEEtX2mxMVMLeA,34884
|
64
63
|
resqpy/model/_grids.py,sha256=d7hRQRmni5pJrm1CY31D2icJV1XDar7xTmUexq_eVGY,3371
|
65
|
-
resqpy/model/_hdf5.py,sha256
|
66
|
-
resqpy/model/_model.py,sha256=
|
67
|
-
resqpy/model/_xml.py,sha256=
|
64
|
+
resqpy/model/_hdf5.py,sha256=-dq2r3HzBKf0F43kwPy--MZOOjQZlDS4RJ6nG3VOeSs,14448
|
65
|
+
resqpy/model/_model.py,sha256=w9NcyFYa4woIGGEZlFiHR-LeSWgVjPUOtGq6sy4p48c,106323
|
66
|
+
resqpy/model/_xml.py,sha256=TiZKHZezMdcjRvHSa-HzzrYe9kyDdd8L4hacNV0bjEg,24402
|
68
67
|
resqpy/multi_processing/__init__.py,sha256=ZRudHfN9aaZjxvat7t8BZr6mwMi9baiCNjczwwT0WjI,909
|
69
68
|
resqpy/multi_processing/_multiprocessing.py,sha256=bnCKfSC1tWwvZmZ7BZqCyje0C93m6q7HZPxNpx8xoxA,7301
|
70
69
|
resqpy/multi_processing/wrappers/__init__.py,sha256=7vjuTWdHnp3rN9Ud8ljpDnt1NbBAyhA08lv-sQ9Kf3o,72
|
71
70
|
resqpy/multi_processing/wrappers/blocked_well_mp.py,sha256=_2fEsSmJVQCnbQIjTHqmnNEugfhN1KvX-o4ZbvtChdI,5952
|
72
|
-
resqpy/multi_processing/wrappers/grid_surface_mp.py,sha256=
|
71
|
+
resqpy/multi_processing/wrappers/grid_surface_mp.py,sha256=2XkaD_YWNLz6xFvegkuPM8YN_rRXmOVUoVJmXmTkKBg,27083
|
73
72
|
resqpy/multi_processing/wrappers/mesh_mp.py,sha256=0VYoqtgBFfrlyYB6kkjbdrRQ5FKe6t5pHJO3wD9b8Fc,5793
|
74
73
|
resqpy/olio/__init__.py,sha256=j2breqKYVufhw5k8qS2uZwB3tUKT7FhdZ23ninS75YA,84
|
75
74
|
resqpy/olio/ab_toolbox.py,sha256=bZlAhOJVS0HvIYBW0Lg68re17N8eltoQhIUh0xuUyVc,2147
|
@@ -89,21 +88,21 @@ resqpy/olio/keyword_files.py,sha256=8hifLG00eUmHOylbSQNfPwPQWd05tT14bCmCRHteefc,
|
|
89
88
|
resqpy/olio/load_data.py,sha256=koFJMo7kcn3wSkvUGCqhdIOb7hTADJaEYhzlu30oOwA,19204
|
90
89
|
resqpy/olio/point_inclusion.py,sha256=yseq-iWdAypOiZg1vbsEmYhouqaYv0_P9kc_ifYHb1A,6628
|
91
90
|
resqpy/olio/random_seed.py,sha256=ZcuaNKtUtVyp236uVQbEyFmb3122JiSsn1uiCCVfDxw,1103
|
92
|
-
resqpy/olio/read_nexus_fault.py,sha256
|
93
|
-
resqpy/olio/relperm.py,sha256=
|
91
|
+
resqpy/olio/read_nexus_fault.py,sha256=-KpinYLLWOy6JADCzI8u-J6HJQaiOrjF_ZGLsGCgqbQ,5659
|
92
|
+
resqpy/olio/relperm.py,sha256=ONGdaYKv-yHbeXB3SSUvwwqCQO5RijhvmiOgNE_5MYo,17130
|
94
93
|
resqpy/olio/simple_lines.py,sha256=qaR11W5UPgRmtMeFQ-pXg0jOvkJZ_XPzSUpAXqeYtlc,12189
|
95
94
|
resqpy/olio/time.py,sha256=LtoSIf1A6wunHSpDgKsSGEr0rbcSQyy35TgJvY37PrI,760
|
96
95
|
resqpy/olio/trademark.py,sha256=p_EWvUUnfalOA0RC94fSWMDgdGY9-FdZuGtAjg3wNcY,822
|
97
|
-
resqpy/olio/transmission.py,sha256=
|
98
|
-
resqpy/olio/triangulation.py,sha256=
|
96
|
+
resqpy/olio/transmission.py,sha256=auz_12TKtSPy6Fv3wmKn5lXPRAEnn2tYVyTQfsj37xU,61869
|
97
|
+
resqpy/olio/triangulation.py,sha256=sBNP4MhSpY2bv6BYIn7890stqetkK5dag9pYNFiUs2g,46037
|
99
98
|
resqpy/olio/uuid.py,sha256=JRMi-RZNeGm8tGNloIwTATzNtdj29lBQDV9OILboPRI,7324
|
100
99
|
resqpy/olio/vdb.py,sha256=lQYuK1kr1Wnucq2EoKgT6lrR7vloCemnCKZktzBcLUc,45231
|
101
|
-
resqpy/olio/vector_utilities.py,sha256=
|
102
|
-
resqpy/olio/volume.py,sha256=
|
103
|
-
resqpy/olio/wellspec_keywords.py,sha256=
|
100
|
+
resqpy/olio/vector_utilities.py,sha256=T8n9JMhE13msuy1dwJeIWw6ByKbm2o4zUV8l5frVsuk,61784
|
101
|
+
resqpy/olio/volume.py,sha256=inKZzW8UiYvyetltz_r_OgO3UzVtqdOz_RMg-WqlyDo,5475
|
102
|
+
resqpy/olio/wellspec_keywords.py,sha256=ad3B727golWYiko54OZOw7vG21IvpNxCMCyLv8jSkcI,26533
|
104
103
|
resqpy/olio/write_data.py,sha256=bIX7ilMkXWCMz_zQh-Gqk56sNzng4W5l4BahW2EV7Kw,5142
|
105
|
-
resqpy/olio/write_hdf5.py,sha256=
|
106
|
-
resqpy/olio/xml_et.py,sha256=
|
104
|
+
resqpy/olio/write_hdf5.py,sha256=iUIYPWlbJsSSq9UXXiXAW_S6TeK-N2M7QvlJJE43EK8,19015
|
105
|
+
resqpy/olio/xml_et.py,sha256=aPjxr2XWvYcwlnckL_UiZmd5EGEoIfy_JxeOKOk3vwQ,25322
|
107
106
|
resqpy/olio/xml_namespaces.py,sha256=PiQi2W7gRLxhMSEs26ahT4MlagYqsjMWJlNpIiZupoA,1824
|
108
107
|
resqpy/olio/zmap_reader.py,sha256=YuhZjde_DZszVFsUKfu0XieKGg7ONXtJWskRV9Pw7VE,5709
|
109
108
|
resqpy/organize/__init__.py,sha256=H1c7B4aRJf5peaGUTvGrCVug4Xr_JW38zeWL-LyCDtk,2206
|
@@ -127,15 +126,16 @@ resqpy/organize/structural_organization_interpretation.py,sha256=xEpm1KKiP9dKktW
|
|
127
126
|
resqpy/organize/tectonic_boundary_feature.py,sha256=mMSsIW8YJ6qpeOe-6gRFaQbK39-WIiGunxPSnwxFyqY,2675
|
128
127
|
resqpy/organize/wellbore_feature.py,sha256=E2gFwgPZGr8nkhRHAIR0wTZ8uwcze7y2WBIV7AXeW2A,1843
|
129
128
|
resqpy/organize/wellbore_interpretation.py,sha256=jRAHq90tR2dCQSXsZicujXhSVHOEPoGjFgh5S87SMAI,6973
|
130
|
-
resqpy/property/__init__.py,sha256=
|
131
|
-
resqpy/property/_collection_add_part.py,sha256=
|
132
|
-
resqpy/property/_collection_create_xml.py,sha256=
|
133
|
-
resqpy/property/_collection_get_attributes.py,sha256=
|
129
|
+
resqpy/property/__init__.py,sha256=gRnzjdn6bxCQStfHL5qMOs43okVRW168TjqU0C9oL2g,2360
|
130
|
+
resqpy/property/_collection_add_part.py,sha256=uM64TWqJ0aBUwP1u1OJNTUhKLGlmOQj14fGPLG-2pRs,17156
|
131
|
+
resqpy/property/_collection_create_xml.py,sha256=p9GASodhg4vQqDDvCOHScto_Qtz_nDADGtvZY92Dcu8,13001
|
132
|
+
resqpy/property/_collection_get_attributes.py,sha256=9uHH9TW0Rty7BMclLqQivr6-uglKSjFZkpWdq47OgAo,32697
|
134
133
|
resqpy/property/_collection_support.py,sha256=77_DG-0pzhMWdG_mNDiGfihXD7Pp-CvDSGCV8ZlDjj4,5889
|
135
134
|
resqpy/property/_property.py,sha256=JcG7h6k4cJ4l3WC_VCsvoqHM3FBxrnUuxbIK2Ono1M0,24426
|
136
|
-
resqpy/property/
|
137
|
-
resqpy/property/
|
138
|
-
resqpy/property/
|
135
|
+
resqpy/property/attribute_property_set.py,sha256=gATFe-vI00GrgaJNMHSKbM0xmlxIsO5DT1qRSU9snYI,12295
|
136
|
+
resqpy/property/grid_property_collection.py,sha256=37dVQSBSTpX22UfBcpPvwGjd8H3O2MepKpWXYc4yJvM,66858
|
137
|
+
resqpy/property/property_collection.py,sha256=RJEooAeoEtxQtsm2i0-FtRL8drCo-JneYsgxrJwaxqU,154652
|
138
|
+
resqpy/property/property_common.py,sha256=wf429weNtgf6J4gCNNoRwj64elQvUPI_ZWzg4qI7l6c,35993
|
139
139
|
resqpy/property/property_kind.py,sha256=6SK0La09eisHPYOSgdx69K_Ordrq0x2tz4IAyurVyY8,5557
|
140
140
|
resqpy/property/string_lookup.py,sha256=eH-lbLRbb8JKtO91FTtyuYseRGwPkmsghcXbKUTvVgI,7737
|
141
141
|
resqpy/property/well_interval_property.py,sha256=_6k0NBX2rd2uGjkur37qCslF9Mow14d8LxPGqqp00gg,1077
|
@@ -144,11 +144,11 @@ resqpy/property/well_log.py,sha256=iIEzFznuj4nkB37MB5YsGSN_mml9jgJNBZWIrJlmhnw,1
|
|
144
144
|
resqpy/property/well_log_collection.py,sha256=BvvRjDkXjuX2iGUwAGmnIvj6L3zIYAP0db3PoAyj3Mw,7633
|
145
145
|
resqpy/rq_import/__init__.py,sha256=JV6wDE-_oJ-wY5O5Adaqxoti44NC0QLqrU2esyXvyHA,713
|
146
146
|
resqpy/rq_import/_add_ab_properties.py,sha256=r9MogJr8QYTVFqKHKv8LQv_PYaDZmA_-aaYy-qeAfTE,4493
|
147
|
-
resqpy/rq_import/_add_surfaces.py,sha256=
|
148
|
-
resqpy/rq_import/_grid_from_cp.py,sha256=
|
149
|
-
resqpy/rq_import/_import_nexus.py,sha256=
|
150
|
-
resqpy/rq_import/_import_vdb_all_grids.py,sha256=
|
151
|
-
resqpy/rq_import/_import_vdb_ensemble.py,sha256=
|
147
|
+
resqpy/rq_import/_add_surfaces.py,sha256=f-1nODJpIm4s3OyfA8hHO8WyzH3OT8YfoiE9D_o5dLA,7620
|
148
|
+
resqpy/rq_import/_grid_from_cp.py,sha256=I_TIUjtpc1QwUBxis5URywoirAqMiYqbPWepsqgEKfs,31996
|
149
|
+
resqpy/rq_import/_import_nexus.py,sha256=cOLVS6CNSOE-nuTV7tkNZTYtTzwIaclu0HaBGJFUeZw,35266
|
150
|
+
resqpy/rq_import/_import_vdb_all_grids.py,sha256=m2B4o-_Mmv9YkeIyVI_oQnnB7DNytN3WGfpm3rF_q-A,6942
|
151
|
+
resqpy/rq_import/_import_vdb_ensemble.py,sha256=CeoNVeJ88lbPq19gNNvpZNFQmCQE0K7iEEd2cVKjml8,21284
|
152
152
|
resqpy/strata/__init__.py,sha256=S8-jJMJlCEwt9Vywe7TftZN3w0tEWeqopmuWRRyBqGI,1311
|
153
153
|
resqpy/strata/_binary_contact_interpretation.py,sha256=CCE10qVYznbevssHyNqTZv0Ld-jPEE6-iN7za2XfsFM,8861
|
154
154
|
resqpy/strata/_geologic_unit_interpretation.py,sha256=8DXSTptMq56sa1zdXTh4WKzXekkfz_z1fJlTf8bmmQs,10381
|
@@ -160,40 +160,40 @@ resqpy/strata/_stratigraphic_unit_interpretation.py,sha256=hlzHamLea0qbFy15WZV2w
|
|
160
160
|
resqpy/surface/__init__.py,sha256=YYwmqudBpeW-Qw4gwxlwZHGIBnc9l_xdqjExeI9MKm4,794
|
161
161
|
resqpy/surface/_base_surface.py,sha256=LsWrDrbuuaEVRgf2Dlbc-6ZvGQpjtrKuxF7Jjebvlis,2331
|
162
162
|
resqpy/surface/_combined_surface.py,sha256=8TnNbSywjej6tW_vRr5zoVgBbvnadCaqWk6WyHWHTYQ,3082
|
163
|
-
resqpy/surface/_mesh.py,sha256=
|
163
|
+
resqpy/surface/_mesh.py,sha256=yEFldNWT2g8MCGcU4mTeWzDrLHHGLLGLIle1gAjJ_lg,42352
|
164
164
|
resqpy/surface/_pointset.py,sha256=niTkBik9hAvqrY8340K1TRG7mg4FMQbbp12WZiiXPMs,27416
|
165
|
-
resqpy/surface/_surface.py,sha256=
|
166
|
-
resqpy/surface/_tri_mesh.py,sha256=
|
167
|
-
resqpy/surface/_tri_mesh_stencil.py,sha256=
|
168
|
-
resqpy/surface/_triangulated_patch.py,sha256=
|
165
|
+
resqpy/surface/_surface.py,sha256=FO8bvL1HoSJw0TGHC4FTTIgOzAEElx4GqaYlEh_NhwI,94079
|
166
|
+
resqpy/surface/_tri_mesh.py,sha256=f2BiGYNj5v8CgmWJKEZ7aKp1WX9iWX4myETCjVQ5dCA,26746
|
167
|
+
resqpy/surface/_tri_mesh_stencil.py,sha256=eXt_HIKvsXGsjQ7nm_NbozR6ProQxPbeO52r79j80ig,16087
|
168
|
+
resqpy/surface/_triangulated_patch.py,sha256=FKn_Irzp4aLFkkN_-tx1MLMKjEAiOLE8636sOA481TQ,26802
|
169
169
|
resqpy/time_series/__init__.py,sha256=jiB3HJUWe47OOJTVmRJ4Gh5vm-XdMaMXmD52kAGr2zY,1074
|
170
|
-
resqpy/time_series/_any_time_series.py,sha256=
|
170
|
+
resqpy/time_series/_any_time_series.py,sha256=PabSxptRcvxsr3bY0tDGHGHm02Fn8meBuIqBAgyMNOU,8953
|
171
171
|
resqpy/time_series/_from_nexus_summary.py,sha256=LWTcJNx_rDFNGP2iWk74ABip_f__iYNBE0R8lVzHOYo,6617
|
172
172
|
resqpy/time_series/_functions.py,sha256=D5Wzb7RRfNmmNipQj9DSH-I3eQewP7Zqzkb2T1EGeYk,6366
|
173
|
-
resqpy/time_series/_geologic_time_series.py,sha256
|
173
|
+
resqpy/time_series/_geologic_time_series.py,sha256=-4oMxE0R_ZEqyxb9qckawiHS0SJ-rVSZZ11pF6yYn3M,3349
|
174
174
|
resqpy/time_series/_time_duration.py,sha256=bzRf0fynlB68KUYKa0Ih7qwd4ZJnRjl_Y6AxgX7LAsM,2759
|
175
175
|
resqpy/time_series/_time_series.py,sha256=ceCuFbmYmppx0jBitdyjtSKkcLxjZ-qyhFN_HQX-3CQ,10818
|
176
176
|
resqpy/unstructured/__init__.py,sha256=8te-ghWhkDGe0QaLDClvVEkSMtnDtX46K1QODmJU8Xw,603
|
177
|
-
resqpy/unstructured/_hexa_grid.py,sha256=
|
178
|
-
resqpy/unstructured/_prism_grid.py,sha256=
|
179
|
-
resqpy/unstructured/_pyramid_grid.py,sha256=
|
180
|
-
resqpy/unstructured/_tetra_grid.py,sha256=
|
181
|
-
resqpy/unstructured/_unstructured_grid.py,sha256=
|
177
|
+
resqpy/unstructured/_hexa_grid.py,sha256=M22p_5nysAgF8zlqr3WPjwB5hYD6BzVu7XE99yG_hvs,15604
|
178
|
+
resqpy/unstructured/_prism_grid.py,sha256=pTckhCQZVbqzJ7eDU9KOauujer0F-9XOHEcCrqy9eMQ,36408
|
179
|
+
resqpy/unstructured/_pyramid_grid.py,sha256=dmukk_jlKktjfMEyfCMTpgG3hz3mZFo0O84vSWHxN-M,8138
|
180
|
+
resqpy/unstructured/_tetra_grid.py,sha256=awF9JKI3ws2VXKa_xPZkn8AXLdIsCWrM3HL7CeO6u_U,12729
|
181
|
+
resqpy/unstructured/_unstructured_grid.py,sha256=7DSsywdeTAkhM2Vl4_Yk6aMbb20sgEy5PUmqM5sSyVE,51808
|
182
182
|
resqpy/weights_and_measures/__init__.py,sha256=Kp1pPZFH4rS5_PkCERZBEzGoat6n_dSS0y_KLhuIVBM,1135
|
183
183
|
resqpy/weights_and_measures/nexus_units.py,sha256=pHqcFbe-8nyqozFgN5Ce-W-UvEnXQ6yiaX3dP1ONtAQ,5434
|
184
184
|
resqpy/weights_and_measures/weights_and_measures.py,sha256=1WnrmhtcyCgY2crClNddmfwtf33JdVZy9wNhqPQIvuc,16210
|
185
185
|
resqpy/well/__init__.py,sha256=v5_gd7sSPRM9q2KsLiLWaw3jbnXFZkou38qeB7_HSN4,990
|
186
|
-
resqpy/well/_blocked_well.py,sha256=
|
187
|
-
resqpy/well/_deviation_survey.py,sha256=
|
188
|
-
resqpy/well/_md_datum.py,sha256=
|
189
|
-
resqpy/well/_trajectory.py,sha256=
|
190
|
-
resqpy/well/_wellbore_frame.py,sha256=
|
186
|
+
resqpy/well/_blocked_well.py,sha256=Greo8r4AD_TRoclboIn5jO0_7v2rLN-GXYApPQ6ScOo,192741
|
187
|
+
resqpy/well/_deviation_survey.py,sha256=AsjTl56v8qa2lSxKAMn4vhEadqRTzwH98PmOObCBoe0,23086
|
188
|
+
resqpy/well/_md_datum.py,sha256=O_rPuKsITUi5JD8OzJsf4a6TpWNDCEmjDk8wpQFgJGQ,6709
|
189
|
+
resqpy/well/_trajectory.py,sha256=lt2_MXeRWjsXTMqZZ5n4-fAT0d41RatCG9QUoYopjOQ,52752
|
190
|
+
resqpy/well/_wellbore_frame.py,sha256=7pAJN-yjvyxg8rXzfRDSpHGoE31T7TaLxkyRiUcsm6o,15502
|
191
191
|
resqpy/well/_wellbore_marker.py,sha256=ZqcZC5Xmta3IJOAaZXZAWAQX9iaS312WjhnJSge8yks,8403
|
192
192
|
resqpy/well/_wellbore_marker_frame.py,sha256=xvYH2_2Ie3a18LReFymbUrZboOx7Rhv5DODEVO4-B-k,20933
|
193
|
-
resqpy/well/blocked_well_frame.py,sha256=
|
194
|
-
resqpy/well/well_object_funcs.py,sha256=
|
195
|
-
resqpy/well/well_utils.py,sha256
|
196
|
-
resqpy-
|
197
|
-
resqpy-
|
198
|
-
resqpy-
|
199
|
-
resqpy-
|
193
|
+
resqpy/well/blocked_well_frame.py,sha256=Rx8jwkCjchseDZaTttPkA1-f6l7W6vRGrxWtDHlEPx8,22560
|
194
|
+
resqpy/well/well_object_funcs.py,sha256=1O4EVPuTn-kN3uT_V4TbSwehnMUMY0TX36XOUgasTcc,24689
|
195
|
+
resqpy/well/well_utils.py,sha256=-g_pg2v5XD9g4SQz9sk7KK-x2xEQZHzWehCQqiEGo6M,7627
|
196
|
+
resqpy-5.1.6.dist-info/LICENSE,sha256=2duHPIkKQyESMdQ4hKjL8CYEsYRHXaYxt0YQkzsUYE4,1059
|
197
|
+
resqpy-5.1.6.dist-info/METADATA,sha256=ixIzugCD9ZynPEJP_6VZiiUrn042oJmOx8HoilUgePw,3986
|
198
|
+
resqpy-5.1.6.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
|
199
|
+
resqpy-5.1.6.dist-info/RECORD,,
|
resqpy/grid/_moved_functions.py
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
"""Submodule containing some general grid functions that have now been moved. This file will be deleted in a later release."""
|
2
|
-
|
3
|
-
import warnings
|
4
|
-
|
5
|
-
import resqpy.grid._points_functions as pf
|
6
|
-
import resqpy.property.property_kind as pk
|
7
|
-
|
8
|
-
|
9
|
-
def establish_zone_property_kind(model):
|
10
|
-
"""MOVED: Returns zone local property kind object, creating the xml and adding as part if not found in model."""
|
11
|
-
warnings.warn(
|
12
|
-
'This function has been moved to property/property_kind. Please update your code to the new '
|
13
|
-
'location.', DeprecationWarning)
|
14
|
-
|
15
|
-
return pk.establish_zone_property_kind(model)
|
File without changes
|