resqpy 4.18.10__py3-none-any.whl → 4.18.11__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/multi_processing/wrappers/grid_surface_mp.py +4 -1
- resqpy/olio/read_nexus_fault.py +8 -2
- resqpy/olio/relperm.py +1 -1
- resqpy/property/property_collection.py +9 -5
- resqpy/well/_blocked_well.py +2 -2
- resqpy/well/_deviation_survey.py +3 -3
- resqpy/well/_trajectory.py +3 -3
- resqpy/well/well_object_funcs.py +3 -5
- {resqpy-4.18.10.dist-info → resqpy-4.18.11.dist-info}/METADATA +1 -1
- {resqpy-4.18.10.dist-info → resqpy-4.18.11.dist-info}/RECORD +13 -13
- {resqpy-4.18.10.dist-info → resqpy-4.18.11.dist-info}/LICENSE +0 -0
- {resqpy-4.18.10.dist-info → resqpy-4.18.11.dist-info}/WHEEL +0 -0
resqpy/__init__.py
CHANGED
@@ -43,6 +43,7 @@ def find_faces_to_represent_surface_regular_wrapper(index: int,
|
|
43
43
|
raw_bisector: bool = False,
|
44
44
|
use_pack: bool = False,
|
45
45
|
flange_radius = None,
|
46
|
+
reorient = True,
|
46
47
|
n_threads = 20) -> Tuple[int, bool, str, List[Union[UUID, str]]]:
|
47
48
|
"""Multiprocessing wrapper function of find_faces_to_represent_surface_regular_optimised.
|
48
49
|
|
@@ -96,6 +97,8 @@ def find_faces_to_represent_surface_regular_wrapper(index: int,
|
|
96
97
|
packed format, which will only be readable by resqpy based applications
|
97
98
|
flange_radius (float, optional): the radial distance to use for outer flange extension points; if None,
|
98
99
|
a large value will be calculated from the grid size; units are xy units of grid crs
|
100
|
+
reorient (bool, default True): if True, the points are reoriented to minimise the
|
101
|
+
z range prior to retriangulation (ie. z axis is approximate normal to plane of points), to enhace the triangulation
|
99
102
|
n_threads (int, default 20): the number of parallel threads to use in numba points in triangles function
|
100
103
|
|
101
104
|
returns:
|
@@ -176,7 +179,7 @@ def find_faces_to_represent_surface_regular_wrapper(index: int,
|
|
176
179
|
surf = rqs.Surface(model, crs_uuid = grid.crs.uuid, title = surf_title)
|
177
180
|
flange_bool = surf.set_from_point_set(pset,
|
178
181
|
convexity_parameter = 2.0,
|
179
|
-
reorient =
|
182
|
+
reorient = reorient,
|
180
183
|
extend_with_flange = extend_fault_representation,
|
181
184
|
flange_inner_ring = flange_inner_ring,
|
182
185
|
saucer_parameter = saucer_parameter,
|
resqpy/olio/read_nexus_fault.py
CHANGED
@@ -64,7 +64,10 @@ def load_nexus_fault_mult_table_from_list(file_as_list):
|
|
64
64
|
outdata[mask] = np.concatenate(d_elems)
|
65
65
|
df = pd.DataFrame(outdata)
|
66
66
|
for column in df.columns:
|
67
|
-
|
67
|
+
try:
|
68
|
+
df[column] = pd.to_numeric(df[column], errors = "coerce")
|
69
|
+
except ValueError:
|
70
|
+
pass
|
68
71
|
df.columns = ['i1', 'i2', 'j1', 'j2', 'k1', 'k2', 'mult']
|
69
72
|
df['grid'] = grid
|
70
73
|
df['name'] = name
|
@@ -114,7 +117,10 @@ def load_nexus_fault_mult_table_from_list(file_as_list):
|
|
114
117
|
outdata[mask] = np.concatenate(d_elems)
|
115
118
|
df = pd.DataFrame(outdata)
|
116
119
|
for column in df.columns:
|
117
|
-
|
120
|
+
try:
|
121
|
+
df[column] = pd.to_numeric(df[column], errors = "coerce")
|
122
|
+
except ValueError:
|
123
|
+
pass
|
118
124
|
df.columns = ['i1', 'i2', 'j1', 'j2', 'k1', 'k2', 'mult']
|
119
125
|
df['grid'] = grid
|
120
126
|
df['name'] = name
|
resqpy/olio/relperm.py
CHANGED
@@ -91,7 +91,7 @@ class RelPerm(DataFrame):
|
|
91
91
|
processed_phase_combo_checks.get(processed_phase_combo)(df)
|
92
92
|
# ensure that missing capillary pressure values are stored as np.nan
|
93
93
|
if 'Pc' in df.columns:
|
94
|
-
df['Pc'].replace('None', np.nan
|
94
|
+
df['Pc'] = df['Pc'].replace('None', np.nan)
|
95
95
|
# convert all values in the dataframe to numeric type
|
96
96
|
df[df.columns] = df[df.columns].apply(pd.to_numeric, errors = 'coerce')
|
97
97
|
# ensure that no other column besides Pc has missing values
|
@@ -760,7 +760,8 @@ class PropertyCollection():
|
|
760
760
|
title = None,
|
761
761
|
title_mode = None,
|
762
762
|
related_uuid = None,
|
763
|
-
const_value = None
|
763
|
+
const_value = None,
|
764
|
+
extra = None):
|
764
765
|
"""Returns a single part selected by those arguments which are not None.
|
765
766
|
|
766
767
|
multiple_handling (string, default 'exception'): one of 'exception', 'none', 'first', 'oldest', 'newest'
|
@@ -799,7 +800,8 @@ class PropertyCollection():
|
|
799
800
|
title = title,
|
800
801
|
title_mode = title_mode,
|
801
802
|
related_uuid = related_uuid,
|
802
|
-
const_value = const_value
|
803
|
+
const_value = const_value,
|
804
|
+
extra = extra)
|
803
805
|
parts_list = temp_collection.parts()
|
804
806
|
if len(parts_list) == 0:
|
805
807
|
return None
|
@@ -832,7 +834,8 @@ class PropertyCollection():
|
|
832
834
|
title = None,
|
833
835
|
title_mode = None,
|
834
836
|
related_uuid = None,
|
835
|
-
use_pack = True
|
837
|
+
use_pack = True,
|
838
|
+
extra = None):
|
836
839
|
"""Returns the array of data for a single part selected by those arguments which are not None.
|
837
840
|
|
838
841
|
arguments:
|
@@ -849,7 +852,7 @@ class PropertyCollection():
|
|
849
852
|
|
850
853
|
Other optional arguments:
|
851
854
|
realization, support_uuid, continuous, points, count, indexable, property_kind, facet_type, facet,
|
852
|
-
citation_title, time_series_uuid, time_index, uom, string_lookup_id, categorical, related_uuid:
|
855
|
+
citation_title, time_series_uuid, time_index, uom, string_lookup_id, categorical, related_uuid, extra:
|
853
856
|
|
854
857
|
For each of these arguments: if None, then all members of collection pass this filter;
|
855
858
|
if not None then only those members with the given value pass this filter;
|
@@ -885,7 +888,8 @@ class PropertyCollection():
|
|
885
888
|
multiple_handling = multiple_handling,
|
886
889
|
title = title,
|
887
890
|
title_mode = title_mode,
|
888
|
-
related_uuid = related_uuid
|
891
|
+
related_uuid = related_uuid,
|
892
|
+
extra = extra)
|
889
893
|
if part is None:
|
890
894
|
return None
|
891
895
|
return self.cached_part_array_ref(part,
|
resqpy/well/_blocked_well.py
CHANGED
@@ -877,10 +877,10 @@ class BlockedWell(BaseResqpy):
|
|
877
877
|
@staticmethod
|
878
878
|
def __cell_kji0_from_df(df, df_row):
|
879
879
|
row = df.iloc[df_row]
|
880
|
-
if pd.isna(row[0]) or pd.isna(row[1]) or pd.isna(row[2]):
|
880
|
+
if pd.isna(row.iloc[0]) or pd.isna(row.iloc[1]) or pd.isna(row.iloc[2]):
|
881
881
|
return None
|
882
882
|
cell_kji0 = np.empty((3,), dtype = np.int32)
|
883
|
-
cell_kji0[:] = row[2], row[1], row[0]
|
883
|
+
cell_kji0[:] = row.iloc[2], row.iloc[1], row.iloc[0]
|
884
884
|
cell_kji0[:] -= 1
|
885
885
|
return cell_kji0
|
886
886
|
|
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/_trajectory.py
CHANGED
@@ -510,9 +510,9 @@ class Trajectory(BaseResqpy):
|
|
510
510
|
self.title = 'well trajectory'
|
511
511
|
|
512
512
|
try:
|
513
|
-
|
514
|
-
|
515
|
-
|
513
|
+
sep = r'\s+' if space_separated_instead_of_csv else ','
|
514
|
+
|
515
|
+
df = pd.read_csv(trajectory_file, comment = comment_character, sep = sep)
|
516
516
|
if df is None:
|
517
517
|
raise Exception
|
518
518
|
except Exception:
|
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,
|
@@ -444,7 +442,7 @@ def add_logs_from_cellio(blockedwell, cellio):
|
|
444
442
|
df['cell_indices'] = grid.natural_cell_indices(
|
445
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).all(),
|
445
|
+
assert (df['cell_indices'] == blockedwell.cell_indices).all(), \
|
448
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
|
@@ -1,4 +1,4 @@
|
|
1
|
-
resqpy/__init__.py,sha256=
|
1
|
+
resqpy/__init__.py,sha256=Q8VnNi88WtbWxJhvhtNNgS1CS7UNFWW6Opjfub5WTXc,557
|
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
|
@@ -69,7 +69,7 @@ resqpy/multi_processing/__init__.py,sha256=ZRudHfN9aaZjxvat7t8BZr6mwMi9baiCNjczw
|
|
69
69
|
resqpy/multi_processing/_multiprocessing.py,sha256=bnCKfSC1tWwvZmZ7BZqCyje0C93m6q7HZPxNpx8xoxA,7301
|
70
70
|
resqpy/multi_processing/wrappers/__init__.py,sha256=7vjuTWdHnp3rN9Ud8ljpDnt1NbBAyhA08lv-sQ9Kf3o,72
|
71
71
|
resqpy/multi_processing/wrappers/blocked_well_mp.py,sha256=_2fEsSmJVQCnbQIjTHqmnNEugfhN1KvX-o4ZbvtChdI,5952
|
72
|
-
resqpy/multi_processing/wrappers/grid_surface_mp.py,sha256=
|
72
|
+
resqpy/multi_processing/wrappers/grid_surface_mp.py,sha256=PWIJOmd9EnVfA4LlFdyO6myCZ9pMnxdpFD0nAfD5evI,25564
|
73
73
|
resqpy/multi_processing/wrappers/mesh_mp.py,sha256=0VYoqtgBFfrlyYB6kkjbdrRQ5FKe6t5pHJO3wD9b8Fc,5793
|
74
74
|
resqpy/olio/__init__.py,sha256=j2breqKYVufhw5k8qS2uZwB3tUKT7FhdZ23ninS75YA,84
|
75
75
|
resqpy/olio/ab_toolbox.py,sha256=bZlAhOJVS0HvIYBW0Lg68re17N8eltoQhIUh0xuUyVc,2147
|
@@ -89,8 +89,8 @@ resqpy/olio/keyword_files.py,sha256=8hifLG00eUmHOylbSQNfPwPQWd05tT14bCmCRHteefc,
|
|
89
89
|
resqpy/olio/load_data.py,sha256=koFJMo7kcn3wSkvUGCqhdIOb7hTADJaEYhzlu30oOwA,19204
|
90
90
|
resqpy/olio/point_inclusion.py,sha256=yseq-iWdAypOiZg1vbsEmYhouqaYv0_P9kc_ifYHb1A,6628
|
91
91
|
resqpy/olio/random_seed.py,sha256=ZcuaNKtUtVyp236uVQbEyFmb3122JiSsn1uiCCVfDxw,1103
|
92
|
-
resqpy/olio/read_nexus_fault.py,sha256
|
93
|
-
resqpy/olio/relperm.py,sha256=
|
92
|
+
resqpy/olio/read_nexus_fault.py,sha256=-KpinYLLWOy6JADCzI8u-J6HJQaiOrjF_ZGLsGCgqbQ,5659
|
93
|
+
resqpy/olio/relperm.py,sha256=ONGdaYKv-yHbeXB3SSUvwwqCQO5RijhvmiOgNE_5MYo,17130
|
94
94
|
resqpy/olio/simple_lines.py,sha256=qaR11W5UPgRmtMeFQ-pXg0jOvkJZ_XPzSUpAXqeYtlc,12189
|
95
95
|
resqpy/olio/time.py,sha256=LtoSIf1A6wunHSpDgKsSGEr0rbcSQyy35TgJvY37PrI,760
|
96
96
|
resqpy/olio/trademark.py,sha256=p_EWvUUnfalOA0RC94fSWMDgdGY9-FdZuGtAjg3wNcY,822
|
@@ -135,7 +135,7 @@ resqpy/property/_collection_support.py,sha256=77_DG-0pzhMWdG_mNDiGfihXD7Pp-CvDSG
|
|
135
135
|
resqpy/property/_property.py,sha256=JcG7h6k4cJ4l3WC_VCsvoqHM3FBxrnUuxbIK2Ono1M0,24426
|
136
136
|
resqpy/property/attribute_property_set.py,sha256=gATFe-vI00GrgaJNMHSKbM0xmlxIsO5DT1qRSU9snYI,12295
|
137
137
|
resqpy/property/grid_property_collection.py,sha256=37dVQSBSTpX22UfBcpPvwGjd8H3O2MepKpWXYc4yJvM,66858
|
138
|
-
resqpy/property/property_collection.py,sha256=
|
138
|
+
resqpy/property/property_collection.py,sha256=02T7q7r82uGDk3FG1CPn7ANZZindcBc4CuSj2xCKBbA,154558
|
139
139
|
resqpy/property/property_common.py,sha256=wf429weNtgf6J4gCNNoRwj64elQvUPI_ZWzg4qI7l6c,35993
|
140
140
|
resqpy/property/property_kind.py,sha256=6SK0La09eisHPYOSgdx69K_Ordrq0x2tz4IAyurVyY8,5557
|
141
141
|
resqpy/property/string_lookup.py,sha256=eH-lbLRbb8JKtO91FTtyuYseRGwPkmsghcXbKUTvVgI,7737
|
@@ -184,17 +184,17 @@ resqpy/weights_and_measures/__init__.py,sha256=Kp1pPZFH4rS5_PkCERZBEzGoat6n_dSS0
|
|
184
184
|
resqpy/weights_and_measures/nexus_units.py,sha256=pHqcFbe-8nyqozFgN5Ce-W-UvEnXQ6yiaX3dP1ONtAQ,5434
|
185
185
|
resqpy/weights_and_measures/weights_and_measures.py,sha256=1WnrmhtcyCgY2crClNddmfwtf33JdVZy9wNhqPQIvuc,16210
|
186
186
|
resqpy/well/__init__.py,sha256=v5_gd7sSPRM9q2KsLiLWaw3jbnXFZkou38qeB7_HSN4,990
|
187
|
-
resqpy/well/_blocked_well.py,sha256
|
188
|
-
resqpy/well/_deviation_survey.py,sha256=
|
187
|
+
resqpy/well/_blocked_well.py,sha256=xRxCPH8c7NxWO-5EErCsq3-e51H22rjgBeKnXWpw_TQ,192481
|
188
|
+
resqpy/well/_deviation_survey.py,sha256=AsjTl56v8qa2lSxKAMn4vhEadqRTzwH98PmOObCBoe0,23086
|
189
189
|
resqpy/well/_md_datum.py,sha256=rRrDQckTJwZtIEh28dlgXj32kcBSu-ZvHFYZOiQsyqg,7154
|
190
|
-
resqpy/well/_trajectory.py,sha256=
|
190
|
+
resqpy/well/_trajectory.py,sha256=lt2_MXeRWjsXTMqZZ5n4-fAT0d41RatCG9QUoYopjOQ,52752
|
191
191
|
resqpy/well/_wellbore_frame.py,sha256=rzWsBnM-L2NbSpdk-6F5BKYeaqDWbwrIrlpkPjtt0kE,15192
|
192
192
|
resqpy/well/_wellbore_marker.py,sha256=ZqcZC5Xmta3IJOAaZXZAWAQX9iaS312WjhnJSge8yks,8403
|
193
193
|
resqpy/well/_wellbore_marker_frame.py,sha256=xvYH2_2Ie3a18LReFymbUrZboOx7Rhv5DODEVO4-B-k,20933
|
194
194
|
resqpy/well/blocked_well_frame.py,sha256=Rx8jwkCjchseDZaTttPkA1-f6l7W6vRGrxWtDHlEPx8,22560
|
195
|
-
resqpy/well/well_object_funcs.py,sha256=
|
195
|
+
resqpy/well/well_object_funcs.py,sha256=1O4EVPuTn-kN3uT_V4TbSwehnMUMY0TX36XOUgasTcc,24689
|
196
196
|
resqpy/well/well_utils.py,sha256=zwpYjT85nXAwWBhYB1Pygu2SgouZ-44k6hEOnpoMfBI,5969
|
197
|
-
resqpy-4.18.
|
198
|
-
resqpy-4.18.
|
199
|
-
resqpy-4.18.
|
200
|
-
resqpy-4.18.
|
197
|
+
resqpy-4.18.11.dist-info/LICENSE,sha256=2duHPIkKQyESMdQ4hKjL8CYEsYRHXaYxt0YQkzsUYE4,1059
|
198
|
+
resqpy-4.18.11.dist-info/METADATA,sha256=a_Tji4HNp0WYpwc3l1XEunljv4Ze2UpMzTNyua1yd38,4029
|
199
|
+
resqpy-4.18.11.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
200
|
+
resqpy-4.18.11.dist-info/RECORD,,
|
File without changes
|
File without changes
|