resqpy 4.12.1__py3-none-any.whl → 4.12.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- resqpy/__init__.py +1 -1
- resqpy/grid/_defined_geometry.py +6 -2
- resqpy/grid_surface/_blocked_well_populate.py +4 -1
- resqpy/property/_collection_get_attributes.py +1 -1
- resqpy/property/grid_property_collection.py +1 -1
- resqpy/property/property_collection.py +3 -3
- resqpy/property/property_common.py +2 -2
- resqpy/unstructured/_prism_grid.py +1 -1
- resqpy/weights_and_measures/nexus_units.py +7 -7
- resqpy/well/_blocked_well.py +26 -6
- {resqpy-4.12.1.dist-info → resqpy-4.12.3.dist-info}/METADATA +1 -1
- {resqpy-4.12.1.dist-info → resqpy-4.12.3.dist-info}/RECORD +14 -14
- {resqpy-4.12.1.dist-info → resqpy-4.12.3.dist-info}/WHEEL +1 -1
- {resqpy-4.12.1.dist-info → resqpy-4.12.3.dist-info}/LICENSE +0 -0
resqpy/__init__.py
CHANGED
resqpy/grid/_defined_geometry.py
CHANGED
@@ -348,6 +348,7 @@ def set_geometry_is_defined(grid,
|
|
348
348
|
|
349
349
|
if complete_all:
|
350
350
|
cells_update_needed = __complete_all_pillars(cells_update_needed, grid, points, surround_z)
|
351
|
+
cells_update_needed = True
|
351
352
|
|
352
353
|
if cells_update_needed:
|
353
354
|
# note: each pillar is either fully defined or fully undefined at this point
|
@@ -387,7 +388,10 @@ def __complete_all_pillars(cells_update_needed, grid, points, surround_z):
|
|
387
388
|
if hasattr(grid, 'array_pillar_geometry_is_defined'):
|
388
389
|
del grid.array_pillar_geometry_is_defined
|
389
390
|
cells_update_needed = False
|
390
|
-
|
391
|
+
nan_mask = np.isnan(points)
|
392
|
+
if np.any(nan_mask):
|
393
|
+
log.warning('remaining NaNs after filling missing pillar geometry will be set to zero (dangerous)')
|
394
|
+
points[nan_mask] = 0.0
|
391
395
|
grid.geometry_defined_for_all_cells_cached = True
|
392
396
|
if hasattr(grid, 'array_cell_geometry_is_defined'):
|
393
397
|
del grid.array_cell_geometry_is_defined
|
@@ -585,7 +589,7 @@ def __fill_holes(grid, holes_mask):
|
|
585
589
|
def __fill_surround(grid, surround_mask):
|
586
590
|
# note: only fills x,y; based on bottom layer of points; assumes surround mask is a regularly shaped frame of columns
|
587
591
|
log.debug(f'filling {np.count_nonzero(surround_mask)} pillars for surround')
|
588
|
-
points = grid.points_ref(masked = False)
|
592
|
+
points = grid.points_ref(masked = False).reshape((grid.nk_plus_k_gaps + 1, -1, 3))
|
589
593
|
points_view = points[-1, :, :2].reshape((-1, 2))[:(grid.nj + 1) * (grid.ni + 1), :].reshape(
|
590
594
|
(grid.nj + 1, grid.ni + 1, 2))
|
591
595
|
modified = False
|
@@ -60,7 +60,10 @@ def populate_blocked_well_from_trajectory(blocked_well,
|
|
60
60
|
assert isinstance(blocked_well.trajectory, rqw.Trajectory)
|
61
61
|
assert grid is not None
|
62
62
|
|
63
|
-
flavour =
|
63
|
+
flavour = grid.grid_representation
|
64
|
+
if flavour is None:
|
65
|
+
assert grid.root is not None
|
66
|
+
flavour = grr.grid_flavour(grid.root)
|
64
67
|
if not flavour.startswith('Ijk'):
|
65
68
|
raise NotImplementedError('well blocking only implemented for IjkGridRepresentation')
|
66
69
|
is_regular = (flavour == 'IjkBlockGrid') and hasattr(grid, 'is_aligned') and grid.is_aligned
|
@@ -222,7 +222,7 @@ def _get_perm_k_part(collection, perms, perm_k_mode, share_perm_parts, perm_i_pa
|
|
222
222
|
uom = 'mD',
|
223
223
|
time_index = None,
|
224
224
|
null_value = None,
|
225
|
-
property_kind = 'permeability
|
225
|
+
property_kind = 'rock permeability',
|
226
226
|
facet_type = 'direction',
|
227
227
|
facet = 'K',
|
228
228
|
realization = perms.realization_for_part(perm_i_part),
|
@@ -941,7 +941,7 @@ def _extend_imported_get_fine_collections(other, realization):
|
|
941
941
|
source_sat = rqp_c.selective_version_of_collection(other, realization = realization, property_kind = 'saturation')
|
942
942
|
source_perm = rqp_c.selective_version_of_collection(other,
|
943
943
|
realization = realization,
|
944
|
-
property_kind = 'permeability
|
944
|
+
property_kind = 'rock permeability')
|
945
945
|
# todo: add kh and some other property kinds
|
946
946
|
|
947
947
|
return source_rv, source_ntg, source_poro, source_sat, source_perm
|
@@ -2796,7 +2796,7 @@ class PropertyCollection():
|
|
2796
2796
|
share_perm_parts = False,
|
2797
2797
|
perm_k_mode = None,
|
2798
2798
|
perm_k_ratio = 1.0):
|
2799
|
-
"""Returns five parts: net to gross ratio, porosity, permeability
|
2799
|
+
"""Returns five parts: net to gross ratio, porosity, rock permeability I, J & K; each returned part may be None.
|
2800
2800
|
|
2801
2801
|
arguments:
|
2802
2802
|
realization: (int, optional): if present, only properties with the given realization are considered; if None,
|
@@ -2832,7 +2832,7 @@ class PropertyCollection():
|
|
2832
2832
|
|
2833
2833
|
perms = rqp_c.selective_version_of_collection(self,
|
2834
2834
|
realization = realization,
|
2835
|
-
property_kind = 'permeability
|
2835
|
+
property_kind = 'rock permeability')
|
2836
2836
|
if perms is None or perms.number_of_parts() == 0:
|
2837
2837
|
log.error('no rock permeabilities present')
|
2838
2838
|
else:
|
@@ -2869,7 +2869,7 @@ class PropertyCollection():
|
|
2869
2869
|
share_perm_parts = False,
|
2870
2870
|
perm_k_mode = None,
|
2871
2871
|
perm_k_ratio = 1.0):
|
2872
|
-
"""Returns five uuids: net to gross ratio, porosity, permeability
|
2872
|
+
"""Returns five uuids: net to gross ratio, porosity, rock permeability I, J & K; each returned uuid may be None.
|
2873
2873
|
|
2874
2874
|
note:
|
2875
2875
|
see basic_static_property_parts() method for argument documentation
|
@@ -78,7 +78,7 @@ expected_facet_type_dict = {
|
|
78
78
|
'property multiplier': (
|
79
79
|
'what',
|
80
80
|
[
|
81
|
-
'rock volume', # made up; todo: add rock permeability?
|
81
|
+
'rock volume', # made up; todo: add rock permeability? (would need multiple facets)
|
82
82
|
'pore volume',
|
83
83
|
'transmissibility'
|
84
84
|
]),
|
@@ -159,7 +159,7 @@ def property_kind_and_facet_from_keyword(keyword):
|
|
159
159
|
elif len(lk) >= 2 and lk[0] == 'd' and lk[1] in 'xyz':
|
160
160
|
property_kind, facet_type, facet = _pkf_from_keyword_length(lk)
|
161
161
|
elif lk[:4] == 'perm' or (len(lk) == 2 and lk[0] == 'k'): # permeability
|
162
|
-
property_kind = 'permeability
|
162
|
+
property_kind = 'rock permeability'
|
163
163
|
(facet_type, facet) = _facet_info_for_dir_ch(lk[-1])
|
164
164
|
elif lk[:5] == 'trans' or (len(lk) == 2 and lk[0] == 't'): # transmissibility (for unit viscosity)
|
165
165
|
if 'mult' in lk:
|
@@ -624,7 +624,7 @@ class VerticalPrismGrid(PrismGrid):
|
|
624
624
|
ppc = rqp.selective_version_of_collection(pc,
|
625
625
|
continuous = True,
|
626
626
|
realization = realization,
|
627
|
-
property_kind = 'permeability
|
627
|
+
property_kind = 'rock permeability')
|
628
628
|
assert ppc.number_of_parts() > 0, 'no permeability properties available for vertical prism grid'
|
629
629
|
|
630
630
|
# look for a triple permeability; if present, assume to be per face horizontal permeabilities
|
@@ -40,8 +40,8 @@ def nexus_uom_for_quantity(nexus_unit_system, quantity, english_volume_flavour =
|
|
40
40
|
'length', 'area', 'volume', 'volume per volume', 'permeability rock', 'rock permeability', 'time',
|
41
41
|
'thermodynamic temperature', 'mass per volume', 'pressure', 'volume per time'
|
42
42
|
]
|
43
|
-
if quantity == 'rock
|
44
|
-
quantity = 'permeability
|
43
|
+
if quantity == 'permeability rock':
|
44
|
+
quantity = 'rock permeability'
|
45
45
|
|
46
46
|
if (nexus_unit_system == 'ENGLISH' and english_volume_flavour is not None):
|
47
47
|
english_volume_flavour = english_volume_flavour.lower()
|
@@ -68,7 +68,7 @@ def nexus_uom_for_quantity(nexus_unit_system, quantity, english_volume_flavour =
|
|
68
68
|
'area': 'm2',
|
69
69
|
'volume': 'm3',
|
70
70
|
'volume per volume': 'm3/m3',
|
71
|
-
'permeability
|
71
|
+
'rock permeability': 'mD',
|
72
72
|
'time': 'd',
|
73
73
|
'thermodynamic temperature': 'degC',
|
74
74
|
'mass per volume': 'kg/m3',
|
@@ -80,7 +80,7 @@ def nexus_uom_for_quantity(nexus_unit_system, quantity, english_volume_flavour =
|
|
80
80
|
'area': 'm2',
|
81
81
|
'volume': 'm3',
|
82
82
|
'volume per volume': 'm3/m3',
|
83
|
-
'permeability
|
83
|
+
'rock permeability': 'mD',
|
84
84
|
'time': 'd',
|
85
85
|
'thermodynamic temperature': 'degC',
|
86
86
|
'mass per volume': 'kg/m3',
|
@@ -92,7 +92,7 @@ def nexus_uom_for_quantity(nexus_unit_system, quantity, english_volume_flavour =
|
|
92
92
|
'area': 'm2',
|
93
93
|
'volume': 'm3',
|
94
94
|
'volume per volume': 'm3/m3',
|
95
|
-
'permeability
|
95
|
+
'rock permeability': 'mD',
|
96
96
|
'time': 'd',
|
97
97
|
'thermodynamic temperature': 'degC',
|
98
98
|
'mass per volume': 'kg/m3',
|
@@ -104,7 +104,7 @@ def nexus_uom_for_quantity(nexus_unit_system, quantity, english_volume_flavour =
|
|
104
104
|
'area': 'cm2',
|
105
105
|
'volume': 'cm3',
|
106
106
|
'volume per volume': 'cm3/cm3',
|
107
|
-
'permeability
|
107
|
+
'rock permeability': 'mD',
|
108
108
|
'time': 'h',
|
109
109
|
'thermodynamic temperature': 'degC',
|
110
110
|
'mass per volume': 'g/cm3',
|
@@ -116,7 +116,7 @@ def nexus_uom_for_quantity(nexus_unit_system, quantity, english_volume_flavour =
|
|
116
116
|
'area': 'ft2',
|
117
117
|
'volume': 'ft3', # NB. Nexus expects bbl in some situations!
|
118
118
|
'volume per volume': 'ft3/ft3', # note: some special cases dealt with above
|
119
|
-
'permeability
|
119
|
+
'rock permeability': 'mD',
|
120
120
|
'time': 'd',
|
121
121
|
'thermodynamic temperature': 'degF',
|
122
122
|
'mass per volume': 'lbm/ft3',
|
resqpy/well/_blocked_well.py
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
"""BlockedWell class."""
|
2
2
|
|
3
3
|
# Nexus is a registered trademark of the Halliburton Company
|
4
|
-
# RMS and ROXAR are registered trademarks of Roxar Software Solutions AS, an
|
4
|
+
# RMS and ROXAR are registered trademarks of Roxar Software Solutions AS, an AspenTech company
|
5
5
|
|
6
6
|
import logging
|
7
7
|
|
@@ -301,7 +301,20 @@ class BlockedWell(BaseResqpy):
|
|
301
301
|
gi_node = rqet.find_tag(node, 'GridIndices')
|
302
302
|
assert gi_node is not None, 'blocked well grid indices hdf5 reference not found in xml'
|
303
303
|
rqwu.load_hdf5_array(self, gi_node, 'grid_indices', dtype = 'int')
|
304
|
-
assert self.grid_indices is not None and self.grid_indices.ndim == 1 and self.grid_indices.size == self.node_count - 1
|
304
|
+
# assert self.grid_indices is not None and self.grid_indices.ndim == 1 and self.grid_indices.size == self.node_count - 1
|
305
|
+
# temporary code to handle blocked wells with incorrectly shaped grid indices wrt. nodes
|
306
|
+
assert self.grid_indices is not None and self.grid_indices.ndim == 1
|
307
|
+
if self.grid_indices.size != self.node_count - 1:
|
308
|
+
if self.grid_indices.size == self.cell_count and self.node_count == 2 * self.cell_count:
|
309
|
+
log.warning(f'handling node duplication or missing unblocked intervals in blocked well: {self.title}')
|
310
|
+
|
311
|
+
expanded_grid_indices = np.full(self.node_count - 1, -1, dtype = int)
|
312
|
+
expanded_grid_indices[::2] = self.grid_indices
|
313
|
+
self.grid_indices = expanded_grid_indices
|
314
|
+
else:
|
315
|
+
raise ValueError(
|
316
|
+
f'incorrect grid indices size with respect to node count in blocked well: {self.title}')
|
317
|
+
# end of temporary code
|
305
318
|
unique_grid_indices = np.unique(self.grid_indices) # sorted list of unique values
|
306
319
|
self.gridind_null = rqet.find_tag_int(gi_node, 'NullValue')
|
307
320
|
if self.gridind_null is None:
|
@@ -1477,6 +1490,10 @@ class BlockedWell(BaseResqpy):
|
|
1477
1490
|
|
1478
1491
|
grid_crs_list = self.__verify_number_of_grids_and_crs_units(column_list = column_list)
|
1479
1492
|
|
1493
|
+
if doing_kh or doing_xyz or doing_angles or doing_entry_exit:
|
1494
|
+
for grid in self.grid_list:
|
1495
|
+
grid.cache_all_geometry_arrays()
|
1496
|
+
|
1480
1497
|
k_face_check = np.zeros((2, 2), dtype = int)
|
1481
1498
|
k_face_check[1, 1] = 1 # now represents entry, exit of K-, K+
|
1482
1499
|
k_face_check_end = k_face_check.copy()
|
@@ -2737,7 +2754,7 @@ class BlockedWell(BaseResqpy):
|
|
2737
2754
|
'ANGLE': ('dega', 'plane angle', False),
|
2738
2755
|
'TEMP': (temperature_uom, 'thermodynamic temperature', False),
|
2739
2756
|
'MDCON': length_uom_pk_discrete,
|
2740
|
-
'K': ('mD', 'permeability
|
2757
|
+
'K': ('mD', 'rock permeability', False),
|
2741
2758
|
'DZ': (length_uom, 'cell length', False), # TODO: add direction facet
|
2742
2759
|
'DTOP': (length_uom, 'depth', False),
|
2743
2760
|
'DBOT': (length_uom, 'depth', False),
|
@@ -3057,7 +3074,7 @@ class BlockedWell(BaseResqpy):
|
|
3057
3074
|
if BlockedWell.__is_float_column(col_name):
|
3058
3075
|
form = '{0:>' + str(width) + '.3f}'
|
3059
3076
|
value = row[col_name]
|
3060
|
-
if col_name == 'ANGLA' and (
|
3077
|
+
if col_name == 'ANGLA' and (pd.isna(row[col_name]) or value is None or np.isnan(value)):
|
3061
3078
|
value = 0.0
|
3062
3079
|
fp.write(sep + form.format(float(value)))
|
3063
3080
|
else:
|
@@ -3349,18 +3366,21 @@ class BlockedWell(BaseResqpy):
|
|
3349
3366
|
root = bw_node)
|
3350
3367
|
for grid in self.grid_list:
|
3351
3368
|
grid_root = grid.root
|
3369
|
+
ref_uuid = grid.uuid if grid_root is None else bu.uuid_from_string(grid_root.attrib['uuid'])
|
3352
3370
|
self.model.create_ref_node('Grid',
|
3353
3371
|
rqet.find_nested_tags_text(grid_root, ['Citation', 'Title']),
|
3354
|
-
|
3372
|
+
ref_uuid,
|
3355
3373
|
content_type = 'obj_IjkGridRepresentation',
|
3356
3374
|
root = bw_node)
|
3357
3375
|
|
3358
3376
|
interp_root = None
|
3359
3377
|
if self.wellbore_interpretation is not None:
|
3360
3378
|
interp_root = self.wellbore_interpretation.root
|
3379
|
+
ref_uuid = self.wellbore_interpretation.uuid if interp_root is None else bu.uuid_from_string(
|
3380
|
+
interp_root.attrib['uuid'])
|
3361
3381
|
self.model.create_ref_node('RepresentedInterpretation',
|
3362
3382
|
rqet.find_nested_tags_text(interp_root, ['Citation', 'Title']),
|
3363
|
-
|
3383
|
+
ref_uuid,
|
3364
3384
|
content_type = 'obj_WellboreInterpretation',
|
3365
3385
|
root = bw_node)
|
3366
3386
|
return traj_root, grid_root, interp_root
|
@@ -1,4 +1,4 @@
|
|
1
|
-
resqpy/__init__.py,sha256=
|
1
|
+
resqpy/__init__.py,sha256=nGog1AgOjRmPGcYnc7WedpknkBZCKPZ7rIg2eEW5hoQ,556
|
2
2
|
resqpy/crs.py,sha256=iq0lO3aXzttmJBfuhUjS9IHlv8OV1wuByhFk0b4fvmI,24782
|
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
|
@@ -30,7 +30,7 @@ resqpy/grid/__init__.py,sha256=WsfOnR5lHcnpJEx8ZZ3lhd4dImEiieJLM7eFPxMi3u8,692
|
|
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=
|
33
|
+
resqpy/grid/_defined_geometry.py,sha256=qkkfiSh8hzhTaW3vEot77mFWgApZl92Cb552b-xyjpQ,32297
|
34
34
|
resqpy/grid/_extract_functions.py,sha256=n_SmfkvEssX09SrlvUMe7y-4eOuVckhL_M6tFTg1bRg,28203
|
35
35
|
resqpy/grid/_face_functions.py,sha256=0I7O6DDz7nJWczi_G2bE3L2XUr4acxREwKygXWEp6F4,16516
|
36
36
|
resqpy/grid/_faults.py,sha256=OmukVoLpdrndqDxwE6Rj7Ul5tj3FUQVPhE0raH2FHpg,12236
|
@@ -47,7 +47,7 @@ resqpy/grid/_write_hdf5_from_caches.py,sha256=s3gcoilsFCCSw_wjnTjWe1xMHEWr_cesso
|
|
47
47
|
resqpy/grid/_write_nexus_corp.py,sha256=yEVfiObsedEAXX6UG6ZTf56kZnQVkd3lLqE2NpL-KBM,6147
|
48
48
|
resqpy/grid/_xyz.py,sha256=RLQWOdM_DRoCj4JypwB5gUJ78HTdk5JnZHSeAzuU634,13087
|
49
49
|
resqpy/grid_surface/__init__.py,sha256=iyK3_Vlg9mXffc_1gjvRdKwQE0zicbNXya0tryHkr04,2593
|
50
|
-
resqpy/grid_surface/_blocked_well_populate.py,sha256=
|
50
|
+
resqpy/grid_surface/_blocked_well_populate.py,sha256=MQIHf7Sh_XR3cUCfGhvlu4Xl498DtIKH2ffo4iud93w,35843
|
51
51
|
resqpy/grid_surface/_find_faces.py,sha256=WRoc5g-kLtR0JkuT0nueVF8ZgG09YfR3K_aRp2Rc2K8,64645
|
52
52
|
resqpy/grid_surface/_grid_skin.py,sha256=D0cjHkcuT5KCKb-8EZfXgh0GgJj3kzOBS2wVNXg4bfY,26056
|
53
53
|
resqpy/grid_surface/_grid_surface.py,sha256=l2NJo7Kiucolbb_TlLPC7NGdksg_JahkihfsrJVq99w,14379
|
@@ -130,12 +130,12 @@ resqpy/organize/wellbore_interpretation.py,sha256=jRAHq90tR2dCQSXsZicujXhSVHOEPo
|
|
130
130
|
resqpy/property/__init__.py,sha256=3dNW6fYT8nrNFA3Ja7Tz5AsoT-SX6VPnXYhnkHKl-VQ,2155
|
131
131
|
resqpy/property/_collection_add_part.py,sha256=s0xXU5aLRqvZoHxbRUNY-ItiNPqmUoEMcnWqQh011jk,17076
|
132
132
|
resqpy/property/_collection_create_xml.py,sha256=x6F7cjdC2y3JmPHi88hkpy3nf1wnWGwEexTj_Dmsf6E,12923
|
133
|
-
resqpy/property/_collection_get_attributes.py,sha256=
|
133
|
+
resqpy/property/_collection_get_attributes.py,sha256=MlontPfGo00lxt0SpB49YG9PRsi5oXPqduDgCSOSmzs,32441
|
134
134
|
resqpy/property/_collection_support.py,sha256=77_DG-0pzhMWdG_mNDiGfihXD7Pp-CvDSGCV8ZlDjj4,5889
|
135
135
|
resqpy/property/_property.py,sha256=JcG7h6k4cJ4l3WC_VCsvoqHM3FBxrnUuxbIK2Ono1M0,24426
|
136
|
-
resqpy/property/grid_property_collection.py,sha256=
|
137
|
-
resqpy/property/property_collection.py,sha256=
|
138
|
-
resqpy/property/property_common.py,sha256=
|
136
|
+
resqpy/property/grid_property_collection.py,sha256=bLWCTfhmpDsagBaXXb8XXHL46Cy78HL_NGWpPFZAgdw,66946
|
137
|
+
resqpy/property/property_collection.py,sha256=8uKEqIzmKlxAQRDrJozaWNzEw8um-HYA1qHvVKIDcE4,151987
|
138
|
+
resqpy/property/property_common.py,sha256=pItepusFU94YTNlWJyMj7LRMyRQviBQa0y7ouEs6AHo,36422
|
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
|
@@ -174,15 +174,15 @@ resqpy/time_series/_time_duration.py,sha256=bzRf0fynlB68KUYKa0Ih7qwd4ZJnRjl_Y6Ax
|
|
174
174
|
resqpy/time_series/_time_series.py,sha256=ceCuFbmYmppx0jBitdyjtSKkcLxjZ-qyhFN_HQX-3CQ,10818
|
175
175
|
resqpy/unstructured/__init__.py,sha256=8te-ghWhkDGe0QaLDClvVEkSMtnDtX46K1QODmJU8Xw,603
|
176
176
|
resqpy/unstructured/_hexa_grid.py,sha256=bRzx0PHUtOziEeVk7nZv5aQlogYnqvtbrVMTXsSVcQU,15328
|
177
|
-
resqpy/unstructured/_prism_grid.py,sha256=
|
177
|
+
resqpy/unstructured/_prism_grid.py,sha256=qXurRLWNIvuqr4-ZpmjMg6uqmtClKrtCNB6e0PDVi4M,35856
|
178
178
|
resqpy/unstructured/_pyramid_grid.py,sha256=qDn7FlhLfDuqJYS88tomwuv5CH7RJd7avl-qK7CUy_4,7862
|
179
179
|
resqpy/unstructured/_tetra_grid.py,sha256=IkRRaxulhH42fE2EysLI9gfUf19YoO3nFA_Uq6CrxmI,12453
|
180
180
|
resqpy/unstructured/_unstructured_grid.py,sha256=OTYOSGrKoE51KpRhn4818tdvmZ-q9nmahk_7wC56mvc,51550
|
181
181
|
resqpy/weights_and_measures/__init__.py,sha256=Kp1pPZFH4rS5_PkCERZBEzGoat6n_dSS0y_KLhuIVBM,1135
|
182
|
-
resqpy/weights_and_measures/nexus_units.py,sha256=
|
182
|
+
resqpy/weights_and_measures/nexus_units.py,sha256=pHqcFbe-8nyqozFgN5Ce-W-UvEnXQ6yiaX3dP1ONtAQ,5434
|
183
183
|
resqpy/weights_and_measures/weights_and_measures.py,sha256=i3Fv7hZczQmvTtPwzWvQb-XAxCG6Uta_vd4DV7XDwOU,16186
|
184
184
|
resqpy/well/__init__.py,sha256=v5_gd7sSPRM9q2KsLiLWaw3jbnXFZkou38qeB7_HSN4,990
|
185
|
-
resqpy/well/_blocked_well.py,sha256=
|
185
|
+
resqpy/well/_blocked_well.py,sha256=BXvg-2vBU1NnNxBp1u_sD_GqV9LJQ6XOkULBSubHrIo,190990
|
186
186
|
resqpy/well/_deviation_survey.py,sha256=d3u31JbBqMCsaz6MUrtZium90wrC3omtm46A755fvgk,23115
|
187
187
|
resqpy/well/_md_datum.py,sha256=rRrDQckTJwZtIEh28dlgXj32kcBSu-ZvHFYZOiQsyqg,7154
|
188
188
|
resqpy/well/_trajectory.py,sha256=9sCGXZedICZK_O7qL-BTxUWGRClIVSRBRvP9RFNYk9g,50005
|
@@ -192,7 +192,7 @@ resqpy/well/_wellbore_marker_frame.py,sha256=xvYH2_2Ie3a18LReFymbUrZboOx7Rhv5DOD
|
|
192
192
|
resqpy/well/blocked_well_frame.py,sha256=Lg7TgynfPv9WkklXTLt9VN6uBXWUqX1LI-Xmv_FBqYk,22555
|
193
193
|
resqpy/well/well_object_funcs.py,sha256=LYTcC07ezlBxClfrug_B4iXXZUkXDPgsVufNzp361Wo,24703
|
194
194
|
resqpy/well/well_utils.py,sha256=zwpYjT85nXAwWBhYB1Pygu2SgouZ-44k6hEOnpoMfBI,5969
|
195
|
-
resqpy-4.12.
|
196
|
-
resqpy-4.12.
|
197
|
-
resqpy-4.12.
|
198
|
-
resqpy-4.12.
|
195
|
+
resqpy-4.12.3.dist-info/LICENSE,sha256=2duHPIkKQyESMdQ4hKjL8CYEsYRHXaYxt0YQkzsUYE4,1059
|
196
|
+
resqpy-4.12.3.dist-info/METADATA,sha256=Bbw0kBMNEOSJTceHXdEDLpq_qg65BpRq7eRGrffqjHA,4028
|
197
|
+
resqpy-4.12.3.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
|
198
|
+
resqpy-4.12.3.dist-info/RECORD,,
|
File without changes
|