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.
Files changed (67) hide show
  1. resqpy/__init__.py +1 -1
  2. resqpy/fault/_gcs_functions.py +10 -10
  3. resqpy/fault/_grid_connection_set.py +277 -113
  4. resqpy/grid/__init__.py +2 -3
  5. resqpy/grid/_defined_geometry.py +3 -3
  6. resqpy/grid/_extract_functions.py +8 -2
  7. resqpy/grid/_grid.py +95 -12
  8. resqpy/grid/_grid_types.py +22 -7
  9. resqpy/grid/_points_functions.py +1 -1
  10. resqpy/grid/_regular_grid.py +6 -2
  11. resqpy/grid_surface/__init__.py +17 -38
  12. resqpy/grid_surface/_blocked_well_populate.py +5 -5
  13. resqpy/grid_surface/_find_faces.py +1413 -253
  14. resqpy/lines/_polyline.py +24 -33
  15. resqpy/model/_catalogue.py +9 -0
  16. resqpy/model/_forestry.py +18 -14
  17. resqpy/model/_hdf5.py +11 -3
  18. resqpy/model/_model.py +85 -10
  19. resqpy/model/_xml.py +38 -13
  20. resqpy/multi_processing/wrappers/grid_surface_mp.py +92 -37
  21. resqpy/olio/read_nexus_fault.py +8 -2
  22. resqpy/olio/relperm.py +1 -1
  23. resqpy/olio/transmission.py +8 -8
  24. resqpy/olio/triangulation.py +36 -30
  25. resqpy/olio/vector_utilities.py +340 -6
  26. resqpy/olio/volume.py +0 -20
  27. resqpy/olio/wellspec_keywords.py +19 -13
  28. resqpy/olio/write_hdf5.py +1 -1
  29. resqpy/olio/xml_et.py +12 -0
  30. resqpy/property/__init__.py +6 -4
  31. resqpy/property/_collection_add_part.py +4 -3
  32. resqpy/property/_collection_create_xml.py +4 -2
  33. resqpy/property/_collection_get_attributes.py +4 -0
  34. resqpy/property/attribute_property_set.py +311 -0
  35. resqpy/property/grid_property_collection.py +11 -11
  36. resqpy/property/property_collection.py +79 -31
  37. resqpy/property/property_common.py +3 -8
  38. resqpy/rq_import/_add_surfaces.py +34 -14
  39. resqpy/rq_import/_grid_from_cp.py +2 -2
  40. resqpy/rq_import/_import_nexus.py +75 -48
  41. resqpy/rq_import/_import_vdb_all_grids.py +64 -52
  42. resqpy/rq_import/_import_vdb_ensemble.py +12 -13
  43. resqpy/surface/_mesh.py +4 -0
  44. resqpy/surface/_surface.py +593 -118
  45. resqpy/surface/_tri_mesh.py +13 -10
  46. resqpy/surface/_tri_mesh_stencil.py +4 -4
  47. resqpy/surface/_triangulated_patch.py +71 -51
  48. resqpy/time_series/_any_time_series.py +7 -4
  49. resqpy/time_series/_geologic_time_series.py +1 -1
  50. resqpy/unstructured/_hexa_grid.py +6 -2
  51. resqpy/unstructured/_prism_grid.py +13 -5
  52. resqpy/unstructured/_pyramid_grid.py +6 -2
  53. resqpy/unstructured/_tetra_grid.py +6 -2
  54. resqpy/unstructured/_unstructured_grid.py +6 -2
  55. resqpy/well/_blocked_well.py +1986 -1946
  56. resqpy/well/_deviation_survey.py +3 -3
  57. resqpy/well/_md_datum.py +11 -21
  58. resqpy/well/_trajectory.py +10 -5
  59. resqpy/well/_wellbore_frame.py +10 -2
  60. resqpy/well/blocked_well_frame.py +3 -3
  61. resqpy/well/well_object_funcs.py +7 -9
  62. resqpy/well/well_utils.py +33 -0
  63. {resqpy-4.14.2.dist-info → resqpy-5.1.6.dist-info}/METADATA +8 -9
  64. {resqpy-4.14.2.dist-info → resqpy-5.1.6.dist-info}/RECORD +66 -66
  65. {resqpy-4.14.2.dist-info → resqpy-5.1.6.dist-info}/WHEEL +1 -1
  66. resqpy/grid/_moved_functions.py +0 -15
  67. {resqpy-4.14.2.dist-info → resqpy-5.1.6.dist-info}/LICENSE +0 -0
@@ -233,9 +233,9 @@ class DeviationSurvey(BaseResqpy):
233
233
  """
234
234
 
235
235
  try:
236
- df = pd.read_csv(deviation_survey_file,
237
- comment = comment_character,
238
- delim_whitespace = space_separated_instead_of_csv)
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()
@@ -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 = int)
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 = int)
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
- df = pd.read_csv(trajectory_file,
509
- comment = comment_character,
510
- delim_whitespace = space_separated_instead_of_csv)
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:
@@ -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 (and associated hdf5 data)."""
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
- rqwu.load_hdf5_array(self, mds_node, 'node_mds')
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 = int)
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.NaN, dtype = float)
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.NaN, dtype = float)
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
@@ -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
- df = pd.read_csv(trajectory_file,
81
- comment = comment_character,
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 = int).T)
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
- ).all(), 'Cell indices do not match between blocked well and log inputs'
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', int, -1, True
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 = int, -1, True
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
1
+ Metadata-Version: 2.3
2
2
  Name: resqpy
3
- Version: 4.14.2
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.1,<3.12
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.8
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 (>=4.9,<5.0)
25
- Requires-Dist: numba (>=0.56,<1.0)
26
- Requires-Dist: numpy (>=1.23,<2.0)
27
- Requires-Dist: pandas (>=1.4,<2.0)
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=S0sVtuHNxUEz09-YTlh-REx7XEcNMmgpxCKDQ0oYVm0,556
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=T3syDK7okT-xmx-ipk4xda1gwHEnaVn5VYmQAn1R5pE,29616
28
- resqpy/fault/_grid_connection_set.py,sha256=vpEFTXn5fvy2X6jgR-a4UUVbiU-ShOZ8MuSGEZklbos,117671
29
- resqpy/grid/__init__.py,sha256=WsfOnR5lHcnpJEx8ZZ3lhd4dImEiieJLM7eFPxMi3u8,692
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=qkkfiSh8hzhTaW3vEot77mFWgApZl92Cb552b-xyjpQ,32297
34
- resqpy/grid/_extract_functions.py,sha256=n_SmfkvEssX09SrlvUMe7y-4eOuVckhL_M6tFTg1bRg,28203
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=kG5YwHmflK30-26r4v2QCjvfXL1DVImMD6bpH_TN_Ng,132130
38
- resqpy/grid/_grid_types.py,sha256=vN_mMAEvcQ7HGxDQ8VMJilGXADPfJ_2rgebOJ__2P8E,3572
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=bJkU7JoCF8t_TW43OzWenEmqTgmVMYbj8YXtIvj9EHg,70585
44
- resqpy/grid/_regular_grid.py,sha256=6lXWSsgzVAB4QwGOwhB7Gb9_kiU2rNM55xWIf9qT3GI,45758
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=iyK3_Vlg9mXffc_1gjvRdKwQE0zicbNXya0tryHkr04,2593
50
- resqpy/grid_surface/_blocked_well_populate.py,sha256=MQIHf7Sh_XR3cUCfGhvlu4Xl498DtIKH2ffo4iud93w,35843
51
- resqpy/grid_surface/_find_faces.py,sha256=WRoc5g-kLtR0JkuT0nueVF8ZgG09YfR3K_aRp2Rc2K8,64645
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=37E0pGDDaBuqtmvXq2zHyYO97uUIUWljZoSWNibQemc,42659
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=ZSzLaZWBLgrna6DPPfEQK72hmuRieLrWr5jhj51YIsI,30205
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=HRKCGnfqSb-J9zbeUcVMbYb7oUzIrvxmzxe3jFh5lvk,34670
62
+ resqpy/model/_forestry.py,sha256=42dMwqdvxdRYYwqVSC4ky2iDp9hmqUEEtX2mxMVMLeA,34884
64
63
  resqpy/model/_grids.py,sha256=d7hRQRmni5pJrm1CY31D2icJV1XDar7xTmUexq_eVGY,3371
65
- resqpy/model/_hdf5.py,sha256=2iQdyUp5eNLfWhmvl_XuFO8j7dCdtTBjtrr6-9mq3Qg,14238
66
- resqpy/model/_model.py,sha256=8CTqYCxSoiA8ONrxEQ_vq20qTJfHkhhF-tiJUTwfEEk,103055
67
- resqpy/model/_xml.py,sha256=n042AUhJU8AV1S4GdeeAdXikSqu2UGoSYT6AMXS2_bA,23589
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=WYJK_vkTPq3pjOYnSm6uJswQqbpiqM0NXfC1pI53tl0,23348
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=vkMr-At7qFZGZ87gZ6QWzgpqwsDHFQf6m3rBTe-Hdrc,5441
93
- resqpy/olio/relperm.py,sha256=VSyqVz_OsjCL9tB7jBnjVdLA4F5yiKYJthIghux8_aI,17135
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=ojMRvzMOulb-S3FHnkR3ouIBTXA4knI0drDOt_WACso,61869
98
- resqpy/olio/triangulation.py,sha256=JA4LN4uASqkN_gx4eE_cAHNOJfTqAQQPYET_cLPJuU8,45621
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=yPxHseCCAG8z-IqLvqIVYRQvXte5jBiSTinYkuN-5EY,46836
102
- resqpy/olio/volume.py,sha256=F1pMnDoJ4ricy4dfdLuLuK1xkVgJckL9V06tUeyK6Wc,6185
103
- resqpy/olio/wellspec_keywords.py,sha256=MqrXRSzVfXAKUhiJkop3EwoVdKEjgZRwHYBJjx2IW8Q,26265
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=KXB2L6Qz3TFb9yDjT-Ty0CXgjyq0nhVp3GADlekWhMQ,19055
106
- resqpy/olio/xml_et.py,sha256=Rt0i1ZTALebB4KKT9AQAXUUxc3QrjEp409RNktEZiow,24988
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=3dNW6fYT8nrNFA3Ja7Tz5AsoT-SX6VPnXYhnkHKl-VQ,2155
131
- resqpy/property/_collection_add_part.py,sha256=s0xXU5aLRqvZoHxbRUNY-ItiNPqmUoEMcnWqQh011jk,17076
132
- resqpy/property/_collection_create_xml.py,sha256=x6F7cjdC2y3JmPHi88hkpy3nf1wnWGwEexTj_Dmsf6E,12923
133
- resqpy/property/_collection_get_attributes.py,sha256=MlontPfGo00lxt0SpB49YG9PRsi5oXPqduDgCSOSmzs,32441
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/grid_property_collection.py,sha256=bLWCTfhmpDsagBaXXb8XXHL46Cy78HL_NGWpPFZAgdw,66946
137
- resqpy/property/property_collection.py,sha256=b4J_bzigN-P5nag49Y6IG4mq3s1KbelsQC5frYg2ij8,151911
138
- resqpy/property/property_common.py,sha256=pItepusFU94YTNlWJyMj7LRMyRQviBQa0y7ouEs6AHo,36422
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=wl8COboHnvfE-rPWZ0pwjNZZbCR3GBKvHQYkEOOViVk,6161
148
- resqpy/rq_import/_grid_from_cp.py,sha256=5XUDDAWKXPgSCgG2oDwq4wZpl_8QOxlr4JajLIEHDXA,32019
149
- resqpy/rq_import/_import_nexus.py,sha256=SPLmAiqznoAYj21ORCEmv1cFNuXpMUbvDt641skHvtI,34317
150
- resqpy/rq_import/_import_vdb_all_grids.py,sha256=yiD88hwXUWDlPtn9pcG_-T23mRDwC2eKkLiVkEJMB2A,6306
151
- resqpy/rq_import/_import_vdb_ensemble.py,sha256=DJejxaMzDHVdj_zI-bqZGj83PpAoaZlgmtmImqGeA_8,21372
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=bhHfIjRg9xWhv1aWW9oDhTK6LlwS5rZBST1ONJuG8pg,42192
163
+ resqpy/surface/_mesh.py,sha256=yEFldNWT2g8MCGcU4mTeWzDrLHHGLLGLIle1gAjJ_lg,42352
164
164
  resqpy/surface/_pointset.py,sha256=niTkBik9hAvqrY8340K1TRG7mg4FMQbbp12WZiiXPMs,27416
165
- resqpy/surface/_surface.py,sha256=yOqB9c-Rwh7Micj3vKb0M5SC77Tg9B1zokwPFtO7S9c,65671
166
- resqpy/surface/_tri_mesh.py,sha256=rqWk64m9mL4Gzk-R1bI-ThA0OEBdMUFjHyezbGMd0gg,26465
167
- resqpy/surface/_tri_mesh_stencil.py,sha256=0FgsWSPUIIt3k9_-FURy4J2idA3Ps2AXWJpcFX1o8OU,16087
168
- resqpy/surface/_triangulated_patch.py,sha256=cmZVssA5Yde0JzgawkahlZFNFcmgxJS59HxirOu7nQ4,25907
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=PPBm_gjliZTFJszrREH0Glb5gVRWbS3NvZiZlITJr98,8595
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=LgehAtBxeAl96uhiWV8NLoAYsgrPV3AdTPVjPnh4_Eo,3311
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=bRzx0PHUtOziEeVk7nZv5aQlogYnqvtbrVMTXsSVcQU,15328
178
- resqpy/unstructured/_prism_grid.py,sha256=qXurRLWNIvuqr4-ZpmjMg6uqmtClKrtCNB6e0PDVi4M,35856
179
- resqpy/unstructured/_pyramid_grid.py,sha256=qDn7FlhLfDuqJYS88tomwuv5CH7RJd7avl-qK7CUy_4,7862
180
- resqpy/unstructured/_tetra_grid.py,sha256=IkRRaxulhH42fE2EysLI9gfUf19YoO3nFA_Uq6CrxmI,12453
181
- resqpy/unstructured/_unstructured_grid.py,sha256=OTYOSGrKoE51KpRhn4818tdvmZ-q9nmahk_7wC56mvc,51550
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=JIe65xusZUd4tpo2TZaUSynUoDExHG783VYApZ6nZtY,191992
187
- resqpy/well/_deviation_survey.py,sha256=d3u31JbBqMCsaz6MUrtZium90wrC3omtm46A755fvgk,23115
188
- resqpy/well/_md_datum.py,sha256=rRrDQckTJwZtIEh28dlgXj32kcBSu-ZvHFYZOiQsyqg,7154
189
- resqpy/well/_trajectory.py,sha256=tycBqo24z58As1tier64gobapDc60zVWhIVhRu_Viic,52484
190
- resqpy/well/_wellbore_frame.py,sha256=rzWsBnM-L2NbSpdk-6F5BKYeaqDWbwrIrlpkPjtt0kE,15192
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=Lg7TgynfPv9WkklXTLt9VN6uBXWUqX1LI-Xmv_FBqYk,22555
194
- resqpy/well/well_object_funcs.py,sha256=LYTcC07ezlBxClfrug_B4iXXZUkXDPgsVufNzp361Wo,24703
195
- resqpy/well/well_utils.py,sha256=zwpYjT85nXAwWBhYB1Pygu2SgouZ-44k6hEOnpoMfBI,5969
196
- resqpy-4.14.2.dist-info/LICENSE,sha256=2duHPIkKQyESMdQ4hKjL8CYEsYRHXaYxt0YQkzsUYE4,1059
197
- resqpy-4.14.2.dist-info/METADATA,sha256=UkHVAuWTDpg1CL9bvaXPu3zyy8InFUbpMGtcoA9IvtE,4028
198
- resqpy-4.14.2.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
199
- resqpy-4.14.2.dist-info/RECORD,,
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,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 1.9.0
2
+ Generator: poetry-core 2.0.1
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -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)