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.

@@ -326,9 +326,7 @@ class BoundingBox:
326
326
  if iy == -1:
327
327
  return self.origin[ix]
328
328
 
329
- return self.bb[
330
- ix,
331
- ]
329
+ return self.bb[ix,]
332
330
 
333
331
  def __getitem__(self, name):
334
332
  if isinstance(name, str):
@@ -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[:, None]
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
- (vertices, T, elements, inside_,) = self.support.get_element_gradient_for_location(
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
- (vertices, T, elements, inside_,) = self.support.get_element_gradient_for_location(
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
- (vertices, T, elements, inside_,) = self.support.get_element_gradient_for_location(
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
- self._nsteps == 0
167
- ] = 3 # need to have a minimum of 3 elements to apply the finite difference mask
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
- np.arange(self.shared_element_relationships.shape[0]), :
171
- ] = shared_face_index
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
- np.arange(self.shared_element_relationships.shape[0]), :
178
- ] = shared_face_index
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
- np.arange(grid.shared_element_relationships.shape[0]), :
68
- ] = shared_face_index
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
- ['X', 'Y', 'Z', 'val', 'nx', 'ny', 'nz', 'gx', 'gy', 'gz', 'tx', 'ty', 'tz']
603
- ] = self._data[
604
- ['X', 'Y', 'Z', 'val', 'nx', 'ny', 'nz', 'gx', 'gy', 'gz', 'tx', 'ty', 'tz']
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 = CubicFunction()
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
- gyf = CubicFunction()
445
- gyf.add_cstr(-1, 0)
446
- gyf.add_cstr(1, 0)
447
- gyf.add_cstr(-0.2, 1)
448
- gyf.add_cstr(0.2, 1)
449
- gyf.add_grad(0, 0)
450
- gyf.add_min(-1)
451
- gyf.add_max(1)
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 = CubicFunction()
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
- fault_ellipsoid = pv.PolyData(
129
- self.model.rescale(self.fault_centre[None, :], inplace=False)
130
- )
131
- fault_ellipsoid["norm"] = self.builder.fault_normal_vector[None, :]
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
- fname, ["centreEasting", "centreNorthing", "centreAltitude"]
304
- ] = np.nanmean(pts, axis=0)
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
- sg[0]
454
- ] = np.inf # make the top unit infinite as it should extend to the top of the model
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.10"
1
+ __version__ = "1.6.12"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: LoopStructural
3
- Version: 1.6.10
3
+ Version: 1.6.12
4
4
  Summary: 3D geological modelling
5
5
  Author-email: Lachlan Grose <lachlan.grose@monash.edu>
6
6
  License: MIT
@@ -1,5 +1,5 @@
1
1
  LoopStructural/__init__.py,sha256=fg_Vm1aMDYIf_CffTFopLsTx21u6deLaI7JMVpRYdOI,1378
2
- LoopStructural/version.py,sha256=sWIpFBcO73DLgomFrOsnrVoNZ_1WQXvqT1hgrs4ja8E,23
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=NwERtFHvrlQqsUNFZm4JgPEjCrxs31GlaDC7DRG6bO4,18375
33
- LoopStructural/datatypes/_point.py,sha256=sCZiWRdnbIH_P9b52btNrotrttWlE-e4Mr2BBwfAAZY,7710
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=V3HSvPO-awPMlIG22A1ttUCn1BUcdN-29CiDj6CtF-w,6653
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=SUU_7dmfhKFh3xfwG_w-yCAzWDMoVNC0qHxDW17ajgc,18117
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=XsIGQcv0u43ld90lL7K8f3kwmMJuiSnHem-0LrrJZlY,16479
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=8poHH0UIMWLpDPHZZG39dSSYiu7vBz-GBHqRpGovFCU,26503
64
- LoopStructural/interpolators/supports/_3d_unstructured_tetra.py,sha256=TjPuvmm51Ct2zxNeeYr2LjBT90PC1CW5rDV1CIBvBpg,23865
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=CjBcGeIdIwPo0IV_-uT6SK-Re0qSeSzPAtuoztmvQGg,3093
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=bhzdOIbFAHVCnUwJe32GEN2nf1D1cT4KH-JXirZpDfY,66430
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=5IzVyvv1tS5Z6geMB8FdTZpGrBYbyu38cOH03NACm0o,12797
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=k7q23RB2ev9Q9aJBSScZqqa4LuW89eFeW899GrFwTwo,17902
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=iEq5bj4xqhYUfTd8cBIr03_PIeKBYb4mmKTpRqEbmpU,26289
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.10.dist-info/licenses/LICENSE,sha256=ZqGeNFOgmYevj7Ld7Q-kR4lAxWXuBRUdUmPC6XM_py8,1071
133
- loopstructural-1.6.10.dist-info/METADATA,sha256=SwyCi3Rxn8nYQVe4GcIwYo6LkYXQyxDRjH6a_idDpow,6454
134
- loopstructural-1.6.10.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
135
- loopstructural-1.6.10.dist-info/top_level.txt,sha256=QtQErKzYHfg6ddxTQ1NyaTxXBVM6qAqrM_vxEPyXZLg,15
136
- loopstructural-1.6.10.dist-info/RECORD,,
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,,