LoopStructural 1.6.10__py3-none-any.whl → 1.6.12__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.
Potentially problematic release.
This version of LoopStructural might be problematic. Click here for more details.
- LoopStructural/datatypes/_bounding_box.py +1 -3
- LoopStructural/datatypes/_point.py +2 -2
- LoopStructural/datatypes/_surface.py +0 -1
- LoopStructural/interpolators/_finite_difference_interpolator.py +18 -3
- LoopStructural/interpolators/supports/_3d_base_structured.py +3 -3
- LoopStructural/interpolators/supports/_3d_structured_tetra.py +3 -3
- LoopStructural/interpolators/supports/_3d_unstructured_tetra.py +3 -3
- LoopStructural/interpolators/supports/_face_table.py +3 -3
- LoopStructural/modelling/core/geological_model.py +7 -8
- LoopStructural/modelling/features/fault/_fault_function.py +16 -24
- LoopStructural/modelling/features/fault/_fault_segment.py +11 -5
- LoopStructural/modelling/input/process_data.py +6 -6
- LoopStructural/version.py +1 -1
- {loopstructural-1.6.10.dist-info → loopstructural-1.6.12.dist-info}/METADATA +1 -1
- {loopstructural-1.6.10.dist-info → loopstructural-1.6.12.dist-info}/RECORD +18 -18
- {loopstructural-1.6.10.dist-info → loopstructural-1.6.12.dist-info}/WHEEL +0 -0
- {loopstructural-1.6.10.dist-info → loopstructural-1.6.12.dist-info}/licenses/LICENSE +0 -0
- {loopstructural-1.6.10.dist-info → loopstructural-1.6.12.dist-info}/top_level.txt +0 -0
|
@@ -147,8 +147,8 @@ class VectorPoints:
|
|
|
147
147
|
else:
|
|
148
148
|
norm = np.linalg.norm(vectors, axis=1)
|
|
149
149
|
vectors[norm > 0, :] /= norm[norm > 0][:, None]
|
|
150
|
-
norm = norm[norm > 0] / norm[norm > 0].max()
|
|
151
|
-
vectors *= norm[
|
|
150
|
+
norm[norm > 0] = norm[norm > 0] / norm[norm > 0].max()
|
|
151
|
+
vectors[norm > 0, :] *= norm[norm > 0, None]
|
|
152
152
|
if scale_function is not None:
|
|
153
153
|
# vectors /= np.linalg.norm(vectors, axis=1)[:, None]
|
|
154
154
|
vectors *= scale_function(self.locations)[:, None]
|
|
@@ -12,7 +12,6 @@ class Surface:
|
|
|
12
12
|
vertices: np.ndarray = field(default_factory=lambda: np.array([[0, 0, 0]]))
|
|
13
13
|
triangles: np.ndarray = field(default_factory=lambda: np.array([[0, 0, 0]]))
|
|
14
14
|
colour: Optional[Union[str, np.ndarray]] = field(default_factory=lambda: None)
|
|
15
|
-
|
|
16
15
|
normals: Optional[np.ndarray] = None
|
|
17
16
|
name: str = 'surface'
|
|
18
17
|
values: Optional[np.ndarray] = None
|
|
@@ -272,7 +272,12 @@ class FiniteDifferenceInterpolator(DiscreteInterpolator):
|
|
|
272
272
|
idc[inside, :] = gi[node_idx[inside, :]]
|
|
273
273
|
inside = np.logical_and(~np.any(idc == -1, axis=1), inside)
|
|
274
274
|
|
|
275
|
-
(
|
|
275
|
+
(
|
|
276
|
+
vertices,
|
|
277
|
+
T,
|
|
278
|
+
elements,
|
|
279
|
+
inside_,
|
|
280
|
+
) = self.support.get_element_gradient_for_location(
|
|
276
281
|
points[inside, : self.support.dimension]
|
|
277
282
|
)
|
|
278
283
|
# normalise constraint vector and scale element matrix by this
|
|
@@ -335,7 +340,12 @@ class FiniteDifferenceInterpolator(DiscreteInterpolator):
|
|
|
335
340
|
# calculate unit vector for node gradients
|
|
336
341
|
# this means we are only constraining direction of grad not the
|
|
337
342
|
# magnitude
|
|
338
|
-
(
|
|
343
|
+
(
|
|
344
|
+
vertices,
|
|
345
|
+
T,
|
|
346
|
+
elements,
|
|
347
|
+
inside_,
|
|
348
|
+
) = self.support.get_element_gradient_for_location(
|
|
339
349
|
points[inside, : self.support.dimension]
|
|
340
350
|
)
|
|
341
351
|
# T*=np.product(self.support.step_vector)
|
|
@@ -422,7 +432,12 @@ class FiniteDifferenceInterpolator(DiscreteInterpolator):
|
|
|
422
432
|
vectors[norm > 0, :] /= norm[norm > 0, None]
|
|
423
433
|
|
|
424
434
|
# normalise element vector to unit vector for dot product
|
|
425
|
-
(
|
|
435
|
+
(
|
|
436
|
+
vertices,
|
|
437
|
+
T,
|
|
438
|
+
elements,
|
|
439
|
+
inside_,
|
|
440
|
+
) = self.support.get_element_gradient_for_location(
|
|
426
441
|
points[inside, : self.support.dimension]
|
|
427
442
|
)
|
|
428
443
|
T[norm > 0, :, :] /= norm[norm > 0, None, None]
|
|
@@ -162,9 +162,9 @@ class BaseStructuredSupport(BaseSupport):
|
|
|
162
162
|
length = self.maximum - origin
|
|
163
163
|
length /= self.step_vector
|
|
164
164
|
self._nsteps = np.ceil(length).astype(np.int64)
|
|
165
|
-
self._nsteps[
|
|
166
|
-
|
|
167
|
-
|
|
165
|
+
self._nsteps[self._nsteps == 0] = (
|
|
166
|
+
3 # need to have a minimum of 3 elements to apply the finite difference mask
|
|
167
|
+
)
|
|
168
168
|
if np.any(~(self._nsteps > 0)):
|
|
169
169
|
logger.error(
|
|
170
170
|
f"Cannot resize the interpolation support. The proposed number of steps is {self._nsteps}, these must be all > 0"
|
|
@@ -166,9 +166,9 @@ class TetMesh(BaseStructuredSupport):
|
|
|
166
166
|
shared_face_index[:] = -1
|
|
167
167
|
shared_face_index[row.reshape(-1, 3)[:, 0], :] = col.reshape(-1, 3)
|
|
168
168
|
|
|
169
|
-
self.shared_elements[
|
|
170
|
-
|
|
171
|
-
|
|
169
|
+
self.shared_elements[np.arange(self.shared_element_relationships.shape[0]), :] = (
|
|
170
|
+
shared_face_index
|
|
171
|
+
)
|
|
172
172
|
# resize
|
|
173
173
|
self.shared_elements = self.shared_elements[: len(self.shared_element_relationships), :]
|
|
174
174
|
|
|
@@ -173,9 +173,9 @@ class UnStructuredTetMesh(BaseSupport):
|
|
|
173
173
|
shared_face_index[:] = -1
|
|
174
174
|
shared_face_index[row.reshape(-1, 3)[:, 0], :] = col.reshape(-1, 3)
|
|
175
175
|
|
|
176
|
-
self.shared_elements[
|
|
177
|
-
|
|
178
|
-
|
|
176
|
+
self.shared_elements[np.arange(self.shared_element_relationships.shape[0]), :] = (
|
|
177
|
+
shared_face_index
|
|
178
|
+
)
|
|
179
179
|
# resize
|
|
180
180
|
self.shared_elements = self.shared_elements[: len(self.shared_element_relationships), :]
|
|
181
181
|
# flag = np.zeros(self.elements.shape[0])
|
|
@@ -63,8 +63,8 @@ def _init_face_table(grid):
|
|
|
63
63
|
shared_face_index = np.zeros((shared_faces.shape[0], grid.dimension), dtype=int)
|
|
64
64
|
shared_face_index[:] = -1
|
|
65
65
|
shared_face_index[row.reshape(-1, grid.dimension)[:, 0], :] = col.reshape(-1, grid.dimension)
|
|
66
|
-
grid._shared_elements[
|
|
67
|
-
|
|
68
|
-
|
|
66
|
+
grid._shared_elements[np.arange(grid.shared_element_relationships.shape[0]), :] = (
|
|
67
|
+
shared_face_index
|
|
68
|
+
)
|
|
69
69
|
# resize
|
|
70
70
|
grid._shared_elements = grid.shared_elements[: len(grid.shared_element_relationships), :]
|
|
@@ -598,12 +598,10 @@ class GeologicalModel:
|
|
|
598
598
|
* self._data.loc[mask, "polarity"].to_numpy()[:, None]
|
|
599
599
|
)
|
|
600
600
|
self._data.drop(["strike", "dip"], axis=1, inplace=True)
|
|
601
|
-
self._data[
|
|
602
|
-
[
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
].astype(
|
|
606
|
-
float
|
|
601
|
+
self._data[['X', 'Y', 'Z', 'val', 'nx', 'ny', 'nz', 'gx', 'gy', 'gz', 'tx', 'ty', 'tz']] = (
|
|
602
|
+
self._data[
|
|
603
|
+
['X', 'Y', 'Z', 'val', 'nx', 'ny', 'nz', 'gx', 'gy', 'gz', 'tx', 'ty', 'tz']
|
|
604
|
+
].astype(float)
|
|
607
605
|
)
|
|
608
606
|
|
|
609
607
|
def set_model_data(self, data):
|
|
@@ -1382,7 +1380,6 @@ class GeologicalModel:
|
|
|
1382
1380
|
major_axis = major_axis / self.scale_factor
|
|
1383
1381
|
if intermediate_axis:
|
|
1384
1382
|
intermediate_axis = intermediate_axis / self.scale_factor
|
|
1385
|
-
print(fault_dip, fault_normal_vector)
|
|
1386
1383
|
fault_frame_builder.create_data_from_geometry(
|
|
1387
1384
|
fault_frame_data=fault_frame_data,
|
|
1388
1385
|
fault_center=fault_center,
|
|
@@ -1806,7 +1803,9 @@ class GeologicalModel:
|
|
|
1806
1803
|
values.to_list(),
|
|
1807
1804
|
self.bounding_box,
|
|
1808
1805
|
name=names.loc[values.index].to_list(),
|
|
1809
|
-
colours=unit_table.loc[unit_table['feature_name'] == u, 'colour'].tolist()
|
|
1806
|
+
colours=unit_table.loc[unit_table['feature_name'] == u, 'colour'].tolist()[
|
|
1807
|
+
1:
|
|
1808
|
+
], # we don't isosurface basement, no value
|
|
1810
1809
|
)
|
|
1811
1810
|
)
|
|
1812
1811
|
|
|
@@ -9,6 +9,10 @@ from ....utils import getLogger
|
|
|
9
9
|
logger = getLogger(__name__)
|
|
10
10
|
|
|
11
11
|
|
|
12
|
+
def smooth_peak(x):
|
|
13
|
+
return 0.25 * x**6 + 0.5 * x**4 - 1.75 * x**2 + 1
|
|
14
|
+
|
|
15
|
+
|
|
12
16
|
class FaultProfileFunction(metaclass=ABCMeta):
|
|
13
17
|
def __init__(self):
|
|
14
18
|
self.lim = [-1, 1]
|
|
@@ -412,14 +416,7 @@ class BaseFault(object):
|
|
|
412
416
|
# gyf.add_min(-1)
|
|
413
417
|
# gyf.add_max(1)
|
|
414
418
|
gyf = Ones()
|
|
415
|
-
gzf =
|
|
416
|
-
gzf.add_cstr(-1, 0)
|
|
417
|
-
gzf.add_cstr(1, 0)
|
|
418
|
-
gzf.add_cstr(-0.2, 1)
|
|
419
|
-
gzf.add_cstr(0.2, 1)
|
|
420
|
-
gzf.add_grad(0, 0)
|
|
421
|
-
gzf.add_min(-1)
|
|
422
|
-
gzf.add_max(1)
|
|
419
|
+
gzf = smooth_peak
|
|
423
420
|
gxf = Composite(hw, fw)
|
|
424
421
|
fault_displacement = FaultDisplacement(gx=gxf, gy=gyf, gz=gzf)
|
|
425
422
|
|
|
@@ -441,22 +438,17 @@ class BaseFault3D(object):
|
|
|
441
438
|
fw.add_cstr(-1, 0)
|
|
442
439
|
fw.add_grad(-1, 0)
|
|
443
440
|
fw.add_min(-1)
|
|
444
|
-
|
|
445
|
-
gyf
|
|
446
|
-
|
|
447
|
-
gyf.add_cstr(-
|
|
448
|
-
gyf.add_cstr(
|
|
449
|
-
gyf.
|
|
450
|
-
gyf.
|
|
451
|
-
gyf.
|
|
441
|
+
|
|
442
|
+
gyf = smooth_peak
|
|
443
|
+
# CubicFunction()
|
|
444
|
+
# gyf.add_cstr(-1, 0)
|
|
445
|
+
# gyf.add_cstr(1, 0)
|
|
446
|
+
# gyf.add_cstr(-0.2, 1)
|
|
447
|
+
# gyf.add_cstr(0.2, 1)
|
|
448
|
+
# gyf.add_grad(0, 0)
|
|
449
|
+
# gyf.add_min(-1)
|
|
450
|
+
# gyf.add_max(1)
|
|
452
451
|
# gyf = Ones()
|
|
453
|
-
gzf =
|
|
454
|
-
gzf.add_cstr(-1, 0)
|
|
455
|
-
gzf.add_cstr(1, 0)
|
|
456
|
-
gzf.add_cstr(-0.2, 1)
|
|
457
|
-
gzf.add_cstr(0.2, 1)
|
|
458
|
-
gzf.add_grad(0, 0)
|
|
459
|
-
gzf.add_min(-1)
|
|
460
|
-
gzf.add_max(1)
|
|
452
|
+
gzf = smooth_peak
|
|
461
453
|
gxf = Composite(hw, fw)
|
|
462
454
|
fault_displacement = FaultDisplacement(gx=gxf, gy=gyf, gz=gzf)
|
|
@@ -125,11 +125,17 @@ class FaultSegment(StructuralFrame):
|
|
|
125
125
|
try:
|
|
126
126
|
import pyvista as pv
|
|
127
127
|
|
|
128
|
-
|
|
129
|
-
self.
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
128
|
+
if self.model is None:
|
|
129
|
+
pts = self.fault_centre[None, :]
|
|
130
|
+
else:
|
|
131
|
+
pts = self.model.rescale(self.fault_centre[None, :], inplace=False)
|
|
132
|
+
# pts = self.fault_centre[None, :]
|
|
133
|
+
fault_ellipsoid = pv.PolyData(pts)
|
|
134
|
+
# fault_ellipsoid = pv.PolyData(
|
|
135
|
+
# self.model.rescale(self.fault_centre[None, :], inplace=False)
|
|
136
|
+
# )
|
|
137
|
+
fault_ellipsoid["norm"] = self.fault_normal_vector[None, :]
|
|
138
|
+
fault_ellipsoid['norm'] /= np.linalg.norm(fault_ellipsoid['norm'], axis=1)[:, None]
|
|
133
139
|
geom = pv.ParametricEllipsoid(
|
|
134
140
|
self.fault_minor_axis,
|
|
135
141
|
self.fault_major_axis,
|
|
@@ -299,9 +299,9 @@ class ProcessInputData:
|
|
|
299
299
|
pts = self.fault_locations.loc[
|
|
300
300
|
self.fault_locations["feature_name"] == fname, ["X", "Y", "Z"]
|
|
301
301
|
]
|
|
302
|
-
fault_properties.loc[
|
|
303
|
-
|
|
304
|
-
|
|
302
|
+
fault_properties.loc[fname, ["centreEasting", "centreNorthing", "centreAltitude"]] = (
|
|
303
|
+
np.nanmean(pts, axis=0)
|
|
304
|
+
)
|
|
305
305
|
if (
|
|
306
306
|
"avgNormalEasting" not in fault_properties.columns
|
|
307
307
|
or "avgNormalNorthing" not in fault_properties.columns
|
|
@@ -449,9 +449,9 @@ class ProcessInputData:
|
|
|
449
449
|
for _name, sg in self.stratigraphic_order:
|
|
450
450
|
value = 0.0 # reset for each supergroup
|
|
451
451
|
if sg[0] not in self.thicknesses or self.thicknesses[sg[0]] <= 0:
|
|
452
|
-
self.thicknesses[
|
|
453
|
-
|
|
454
|
-
|
|
452
|
+
self.thicknesses[sg[0]] = (
|
|
453
|
+
np.inf
|
|
454
|
+
) # make the top unit infinite as it should extend to the top of the model
|
|
455
455
|
for g in reversed(
|
|
456
456
|
sg[:-1]
|
|
457
457
|
): # don't add the last unit as we never see the base of this unit.
|
LoopStructural/version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "1.6.
|
|
1
|
+
__version__ = "1.6.12"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
LoopStructural/__init__.py,sha256=fg_Vm1aMDYIf_CffTFopLsTx21u6deLaI7JMVpRYdOI,1378
|
|
2
|
-
LoopStructural/version.py,sha256=
|
|
2
|
+
LoopStructural/version.py,sha256=1ThuVeMS5KlxvVTyorbbzJi1pftu6GNdFZ7WRJWlGVc,23
|
|
3
3
|
LoopStructural/datasets/__init__.py,sha256=ylb7fzJU_DyQ73LlwQos7VamqkDSGITbbnoKg7KAOmE,677
|
|
4
4
|
LoopStructural/datasets/_base.py,sha256=FB_D5ybBYHoaNbycdkpZcRffzjrrL1xp9X0k-pyob9Y,7618
|
|
5
5
|
LoopStructural/datasets/_example_models.py,sha256=Zg33IeUyh4C-lC0DRMLqCDP2IrX8L-gNV1WxJwBGjzM,113
|
|
@@ -29,10 +29,10 @@ LoopStructural/datasets/data/geological_map_data/stratigraphic_order.csv,sha256=
|
|
|
29
29
|
LoopStructural/datasets/data/geological_map_data/stratigraphic_orientations.csv,sha256=RysyqUAIjY6iIDUfTh11n9QUQWXB_qxKnZeN_DqNzlY,26745
|
|
30
30
|
LoopStructural/datasets/data/geological_map_data/stratigraphic_thickness.csv,sha256=pnSmG-wL8-kxuoHo_pgpJrfTmsZOzc8L0vxpBRh3r8A,355
|
|
31
31
|
LoopStructural/datatypes/__init__.py,sha256=lVg64DnynMm58qvYTjLrcyWH7vk2ngr9JGMo5FaiALI,160
|
|
32
|
-
LoopStructural/datatypes/_bounding_box.py,sha256=
|
|
33
|
-
LoopStructural/datatypes/_point.py,sha256=
|
|
32
|
+
LoopStructural/datatypes/_bounding_box.py,sha256=gXNKwhM3tCNuw_2PY92EoKJjJTI93fN-QQzlUl5Wjd0,18353
|
|
33
|
+
LoopStructural/datatypes/_point.py,sha256=qg3lXUA1rnu1N1cEWG0WvhvJuENfDgpEDIeYldWBaG8,7740
|
|
34
34
|
LoopStructural/datatypes/_structured_grid.py,sha256=mc-UM1Gh_BjHFItuPE4FF5wvGzJnSqF2MTx_xvrwcTk,5088
|
|
35
|
-
LoopStructural/datatypes/_surface.py,sha256=
|
|
35
|
+
LoopStructural/datatypes/_surface.py,sha256=5BpPKVS4X3Kq1k3YxxAofKMgxdXhnOIcDi6NzKn2p2Q,6652
|
|
36
36
|
LoopStructural/export/exporters.py,sha256=BniZu-PqQvHqCU6GIuJQ5FPzI9Dx_T6rI8EW1pykois,17209
|
|
37
37
|
LoopStructural/export/file_formats.py,sha256=0xKyYSW4Jv_4jsXwusg-WO6PNUhZKd6HdWSqGSaPve8,232
|
|
38
38
|
LoopStructural/export/geoh5.py,sha256=jLFKC5EB0azT3PgJPtkJzi3_CG28RLgP2FuENAGCQMI,4313
|
|
@@ -43,7 +43,7 @@ LoopStructural/interpolators/_api.py,sha256=EC4ogG2uPq-z_pgNGd_eTieTl92eaZ-rjyoF
|
|
|
43
43
|
LoopStructural/interpolators/_builders.py,sha256=B49KsxB8RRN6IHDfGT43nXWe_Av1SVVT8vm2Nh1oEiQ,6758
|
|
44
44
|
LoopStructural/interpolators/_discrete_fold_interpolator.py,sha256=eDe0R1lcQ0AuMcv7zlpu5c-soCv7AybIqQAuN2vFE3M,6542
|
|
45
45
|
LoopStructural/interpolators/_discrete_interpolator.py,sha256=i_joZ8HOf_s6Q2L8gHFnhkdtgyED1SjATxRsRd1HxRU,26038
|
|
46
|
-
LoopStructural/interpolators/_finite_difference_interpolator.py,sha256=
|
|
46
|
+
LoopStructural/interpolators/_finite_difference_interpolator.py,sha256=mZ89FWQZ5RbzhL9UYH8VzWME-28dy331KXtYtpqepHo,18351
|
|
47
47
|
LoopStructural/interpolators/_geological_interpolator.py,sha256=hcQuyv1zYakJ7mcDFlLj-YarjnMQvlP6pVbK1KuxBWs,11195
|
|
48
48
|
LoopStructural/interpolators/_interpolator_builder.py,sha256=Z8bhmco5aSQX19A8It2SB_rG61wnlyshWfp3ivm8rU0,4586
|
|
49
49
|
LoopStructural/interpolators/_interpolator_factory.py,sha256=fbjebXSe5IgTol1tnBlnsw9gD426v-TGkX3gquIg7LI,2782
|
|
@@ -57,19 +57,19 @@ LoopStructural/interpolators/supports/_2d_p1_unstructured.py,sha256=okcy56nyjued
|
|
|
57
57
|
LoopStructural/interpolators/supports/_2d_p2_unstructured.py,sha256=TeBVtT1PMV7CKzmnFZke37acMoFxouer20cskS7pVoE,10422
|
|
58
58
|
LoopStructural/interpolators/supports/_2d_structured_grid.py,sha256=Pt9fiXyTS-RTd3mxXr3EUQfB6DhKChHQ5zbWub54nW0,16347
|
|
59
59
|
LoopStructural/interpolators/supports/_2d_structured_tetra.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
60
|
-
LoopStructural/interpolators/supports/_3d_base_structured.py,sha256=
|
|
60
|
+
LoopStructural/interpolators/supports/_3d_base_structured.py,sha256=PYIkgWCTHk0OHn-T9wpF4ZFYnKyvXNZgUyqO7YcoFjU,16481
|
|
61
61
|
LoopStructural/interpolators/supports/_3d_p2_tetra.py,sha256=CqGVJRUMxbPQZDhhopNt_s9gVhMqh4YbjQyDZonoyxc,11574
|
|
62
62
|
LoopStructural/interpolators/supports/_3d_structured_grid.py,sha256=x9NoZRsl58iowcObavgb0nY_C335BmcIYgec9REsFpU,17366
|
|
63
|
-
LoopStructural/interpolators/supports/_3d_structured_tetra.py,sha256=
|
|
64
|
-
LoopStructural/interpolators/supports/_3d_unstructured_tetra.py,sha256=
|
|
63
|
+
LoopStructural/interpolators/supports/_3d_structured_tetra.py,sha256=5zUNtvEXDvbCHZCu6Fz9WjGbnrMaq-sYJqNUufyLcq8,26505
|
|
64
|
+
LoopStructural/interpolators/supports/_3d_unstructured_tetra.py,sha256=_peXMTMxctuWNOL74AHxzw0b_1sP5glvbJigIvIkK9I,23867
|
|
65
65
|
LoopStructural/interpolators/supports/__init__.py,sha256=V0JjixoBIUZVAo5MmqARR67xDOoQwnb4G3SXeOMRSyQ,1603
|
|
66
66
|
LoopStructural/interpolators/supports/_aabb.py,sha256=Z-kH_u6c6izak0aHG3Uo14PEKQeZmYlevLDC32Q06xk,3208
|
|
67
67
|
LoopStructural/interpolators/supports/_base_support.py,sha256=pYzsmeBu4kLaD9ZKsz_dfjVpfuAd00xENqOQC9Xw5QY,2501
|
|
68
|
-
LoopStructural/interpolators/supports/_face_table.py,sha256=
|
|
68
|
+
LoopStructural/interpolators/supports/_face_table.py,sha256=Hyj4Io63NkPRN8ab9uDHyec-2Kb8BLY_xBF6STNlvBw,3095
|
|
69
69
|
LoopStructural/interpolators/supports/_support_factory.py,sha256=XNAxnr-JS3KEhdsoZeJ-VaLTJwlvxgBuRMCqYrCDW18,1485
|
|
70
70
|
LoopStructural/modelling/__init__.py,sha256=oW7dz6c8K1A0VcW7-mVcyqcENUrtybCb3eVUNXFvMfA,656
|
|
71
71
|
LoopStructural/modelling/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
72
|
-
LoopStructural/modelling/core/geological_model.py,sha256=
|
|
72
|
+
LoopStructural/modelling/core/geological_model.py,sha256=okbEwjL8-wGKeWhvYE-1XSOE2C1nHX7M2AR__42pyAk,66464
|
|
73
73
|
LoopStructural/modelling/features/__init__.py,sha256=Vf-qd5EDBtJ1DpuXXyCcw2-wf6LWPRW5wzxDEO3vOc8,939
|
|
74
74
|
LoopStructural/modelling/features/_analytical_feature.py,sha256=U_g86LgQhYY2359rdsDqpvziYwqrWkc5EdvhJARiUWo,3597
|
|
75
75
|
LoopStructural/modelling/features/_base_geological_feature.py,sha256=985aHq8z5riS7uS04mGBPd8UcPXFv0l_fPAdlE6Ydcc,12175
|
|
@@ -87,9 +87,9 @@ LoopStructural/modelling/features/builders/_folded_feature_builder.py,sha256=1_0
|
|
|
87
87
|
LoopStructural/modelling/features/builders/_geological_feature_builder.py,sha256=jn2BiZlzXyWl0_TrsajpFR2wegGOpbuO5yFu2FamuYA,22014
|
|
88
88
|
LoopStructural/modelling/features/builders/_structural_frame_builder.py,sha256=ms3-fuFpDEarjzYU5W499TquOIlTwHPUibVxIypfmWY,8019
|
|
89
89
|
LoopStructural/modelling/features/fault/__init__.py,sha256=4u0KfYzmoO-ddFGo9qd9ov0gBoLqBiPAUsaw5zhEOAQ,189
|
|
90
|
-
LoopStructural/modelling/features/fault/_fault_function.py,sha256=
|
|
90
|
+
LoopStructural/modelling/features/fault/_fault_function.py,sha256=Zr54uScKshNBalOFC2cZc1Lxh3dldTPZA-zOdMC0HkM,12578
|
|
91
91
|
LoopStructural/modelling/features/fault/_fault_function_feature.py,sha256=4m0jVNx7ewrVI0pECI1wNciv8Cy8FzhZrYDjKJ_e2GU,2558
|
|
92
|
-
LoopStructural/modelling/features/fault/_fault_segment.py,sha256=
|
|
92
|
+
LoopStructural/modelling/features/fault/_fault_segment.py,sha256=f3zohJsQ3h5KnlSPYL4eulRZN_Wl6e7IeVASfXE7lWA,18275
|
|
93
93
|
LoopStructural/modelling/features/fold/__init__.py,sha256=pOv20yQvshZozvmO_YFw2E7Prp9DExlm855N-0SnxbQ,175
|
|
94
94
|
LoopStructural/modelling/features/fold/_fold.py,sha256=bPnnLUSiF4uoMRg8aHoOSTPRgaM0JyLoRQPu5_A-J3w,5448
|
|
95
95
|
LoopStructural/modelling/features/fold/_fold_rotation_angle_feature.py,sha256=CXLbFRQ3CrTMAcHmfdbKcmSvvLs9_6TLe0Wqi1pK2tg,892
|
|
@@ -103,7 +103,7 @@ LoopStructural/modelling/features/fold/fold_function/_trigo_fold_rotation_angle.
|
|
|
103
103
|
LoopStructural/modelling/input/__init__.py,sha256=HhJM3V5b-8_64LiRbF3Bd1pjWhJlcknxMSMPRrqZ0-I,153
|
|
104
104
|
LoopStructural/modelling/input/fault_network.py,sha256=0uxl7lOySdhMhNXoiOkuiHIXqAz1Ls0j-W65cmdQoP8,2348
|
|
105
105
|
LoopStructural/modelling/input/map2loop_processor.py,sha256=T7Fgqd7FNJWylLKvfIniRZBMRMeAoP8iU330-WYU8Fg,7031
|
|
106
|
-
LoopStructural/modelling/input/process_data.py,sha256=
|
|
106
|
+
LoopStructural/modelling/input/process_data.py,sha256=9xWZtFWbE5NjJzULSZDJt-qccV0GuZ-oNMi3nfxPT-M,26293
|
|
107
107
|
LoopStructural/modelling/input/project_file.py,sha256=WhJkMfDK9uE7MK7HK-YK6ZOBAdwLX5P7ThZgXj444Eg,4604
|
|
108
108
|
LoopStructural/modelling/intrusions/__init__.py,sha256=EpZK3cHJwGQhPUYIwKCKu8vkNdt_nOgWF0zfhiqDYDA,712
|
|
109
109
|
LoopStructural/modelling/intrusions/geom_conceptual_models.py,sha256=jwTlhYySUj7z4DEnJoi4AINZB_N3-SW6ONRFL66OsW0,3665
|
|
@@ -129,8 +129,8 @@ LoopStructural/utils/regions.py,sha256=LvcOCPudF4u95-GKBOZqXVxOEcR3cOFgFpcs5x43s
|
|
|
129
129
|
LoopStructural/utils/typing.py,sha256=29uVSTZdzXXH-jdlaYyBWZ1gQ2-nlZ2-XoVgG_PXNFY,157
|
|
130
130
|
LoopStructural/utils/utils.py,sha256=2Z4zVE6G752-SPmM29zebk82bROJxEwi_YiiJjcVED4,2438
|
|
131
131
|
LoopStructural/visualisation/__init__.py,sha256=5BDgKor8-ae6DrS7IZybJ3Wq_pTnCchxuY4EgzA7v1M,318
|
|
132
|
-
loopstructural-1.6.
|
|
133
|
-
loopstructural-1.6.
|
|
134
|
-
loopstructural-1.6.
|
|
135
|
-
loopstructural-1.6.
|
|
136
|
-
loopstructural-1.6.
|
|
132
|
+
loopstructural-1.6.12.dist-info/licenses/LICENSE,sha256=ZqGeNFOgmYevj7Ld7Q-kR4lAxWXuBRUdUmPC6XM_py8,1071
|
|
133
|
+
loopstructural-1.6.12.dist-info/METADATA,sha256=6zcpH_9vavQAKqe0iOdCrDLy4eFLdFy8m9kK6xTunvs,6454
|
|
134
|
+
loopstructural-1.6.12.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
|
|
135
|
+
loopstructural-1.6.12.dist-info/top_level.txt,sha256=QtQErKzYHfg6ddxTQ1NyaTxXBVM6qAqrM_vxEPyXZLg,15
|
|
136
|
+
loopstructural-1.6.12.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|