LoopStructural 1.6.20__py3-none-any.whl → 1.6.21__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.

@@ -222,8 +222,8 @@ class StratigraphicColumn(Observable['StratigraphicColumn']):
222
222
  if basement:
223
223
  self.add_basement()
224
224
 
225
- else:
226
- self.order = []
225
+
226
+ self.order = []
227
227
  self.group_mapping = {}
228
228
  self.notify('column_cleared')
229
229
  def add_unit(self, name,*, colour=None, thickness=None, where='top',id=None):
@@ -460,7 +460,7 @@ class StratigraphicColumn(Observable['StratigraphicColumn']):
460
460
  with self.freeze_notifications():
461
461
  self.clear(basement=False)
462
462
  elements_data = data.get("elements", [])
463
- for element_data in elements_data:
463
+ for element_data in reversed(elements_data):
464
464
  if "unconformity_type" in element_data:
465
465
  element = StratigraphicUnconformity.from_dict(element_data)
466
466
  else:
@@ -1,6 +1,9 @@
1
- from LoopStructural.modelling.features.fold import FoldEvent
1
+ from LoopStructural.modelling.features.fold import FoldEvent, FoldFrame
2
2
  from LoopStructural.modelling.features.builders import FoldedFeatureBuilder, StructuralFrameBuilder
3
3
  def add_fold_to_feature(feature, fold_frame,**kwargs):
4
+ if not isinstance(fold_frame, FoldFrame):
5
+ raise ValueError("fold_frame must be a FoldFrame instance")
6
+
4
7
  fold = FoldEvent(fold_frame, name=f"Fold_{feature.name}", invert_norm=kwargs.get('invert_fold_norm', False))
5
8
 
6
9
  builder = FoldedFeatureBuilder.from_feature_builder(
@@ -226,7 +226,7 @@ class FaultBuilder(StructuralFrameBuilder):
226
226
  self.maximum = self.model.bounding_box.maximum
227
227
  return
228
228
  major_axis = np.max(distance)
229
- logger.warning(f"Fault major axis using map length: {major_axis}")
229
+ logger.info(f"Fault major axis using map length: {major_axis}")
230
230
 
231
231
  if minor_axis is None:
232
232
  logger.info(f"Fault minor axis not set, using half major axis: {major_axis/2}")
@@ -148,6 +148,7 @@ class StructuralFrameBuilder:
148
148
  bounding_box=feature_builder.model.bounding_box,
149
149
  nelements=[feature_builder.interpolator.n_elements]*3,
150
150
  name=feature_builder.name,
151
+ model=feature_builder.model,
151
152
  **kwargs
152
153
  )
153
154
  builder.add_data_from_data_frame(feature_builder.data)
@@ -19,7 +19,24 @@ class FoldFrame(StructuralFrame):
19
19
  features
20
20
  """
21
21
  super().__init__(name, features, fold, model)
22
+ @classmethod
23
+ def from_structural_frame(cls, frame, fold=None):
24
+ """
25
+ Create a FoldFrame from an existing StructuralFrame
26
+
27
+ Parameters
28
+ ----------
29
+ frame - StructuralFrame
30
+ the structural frame to convert to a fold frame
31
+ fold - FoldEvent, optional
32
+ the fold event to associate with the fold frame
22
33
 
34
+ Returns
35
+ -------
36
+ FoldFrame
37
+ the new fold frame
38
+ """
39
+ return cls(frame.name, frame.features, fold, frame.model)
23
40
  def calculate_fold_axis_rotation(self, feature_builder, fold_axis=None):
24
41
  """
25
42
  Calculate the fold axis rotation angle by finding the angle between the
LoopStructural/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = "1.6.20"
1
+ __version__ = "1.6.21"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: LoopStructural
3
- Version: 1.6.20
3
+ Version: 1.6.21
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=9tewNqv_9i7vUYMb1srpOWpf65W-moA2HvrQa9gyafA,2241
2
- LoopStructural/version.py,sha256=d5oU8Ps6zEkGrR04CFBTRON1Yn4q4FgfElf4dVF75XY,23
2
+ LoopStructural/version.py,sha256=SMNrOuGQWqBEDM6imwLjH1fN6hSGQv7a9BZsa78ky8I,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
@@ -73,12 +73,12 @@ LoopStructural/modelling/__init__.py,sha256=a-bq2gDhyUlcky5l9kl_IP3ExMdohkgYjQz2
73
73
  LoopStructural/modelling/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
74
74
  LoopStructural/modelling/core/fault_topology.py,sha256=bChp5dnfc-4GJRENWxB14mEW_13uBMh5ZYRKbLdjweE,11195
75
75
  LoopStructural/modelling/core/geological_model.py,sha256=65iLvmBH4YzRkaa2IUX1nrJ5Ebp_RWrgSMwY0CI63No,67171
76
- LoopStructural/modelling/core/stratigraphic_column.py,sha256=lOQb3zWS6EEqSzCMZsy9Q9ncFFkIku_lNjgpHtD7zCs,21860
76
+ LoopStructural/modelling/core/stratigraphic_column.py,sha256=2UjurUC9ZTACH57fxsHMmMoXKjrWbJrDwIXFceyX5ok,21861
77
77
  LoopStructural/modelling/features/__init__.py,sha256=Vf-qd5EDBtJ1DpuXXyCcw2-wf6LWPRW5wzxDEO3vOc8,939
78
78
  LoopStructural/modelling/features/_analytical_feature.py,sha256=U_g86LgQhYY2359rdsDqpvziYwqrWkc5EdvhJARiUWo,3597
79
79
  LoopStructural/modelling/features/_base_geological_feature.py,sha256=otphU5IrJ5ES3b_r0m2bszj7urOvzaIoVPwKjNqJAI0,13509
80
80
  LoopStructural/modelling/features/_cross_product_geological_feature.py,sha256=GIyCHUdE6F-bse2e4puG9V2f7qRtDVfby5PRe2BboD4,3021
81
- LoopStructural/modelling/features/_feature_converters.py,sha256=UPpmElg8K4CY4_9t72aXpLNK0Qt2nY5ABvTdWYcsX5o,1071
81
+ LoopStructural/modelling/features/_feature_converters.py,sha256=gxcCEuUlWmkxXeiBSFMUVRZN6zg94AC1gEZ3YHE95qo,1205
82
82
  LoopStructural/modelling/features/_geological_feature.py,sha256=V5Ars8utx-AsEPVgMsoMzHFREeIByodzPPdEwblPGbo,11283
83
83
  LoopStructural/modelling/features/_lambda_geological_feature.py,sha256=GiB19l6v5WvvR8CitATZvCwaOfRyLuzchoXzpNupsfM,5743
84
84
  LoopStructural/modelling/features/_projected_vector_feature.py,sha256=aifVLgn2spmK7GGlO0iHDewf1pFL-QoRzZEePTZwX1s,3017
@@ -87,10 +87,10 @@ LoopStructural/modelling/features/_structural_frame.py,sha256=0FA_HxOFnxmEuU9fwv
87
87
  LoopStructural/modelling/features/_unconformity_feature.py,sha256=2Bx0BI38YLdcNvDWuP9E1pKFN4orEUq9aC8b5xG1UVk,2362
88
88
  LoopStructural/modelling/features/builders/__init__.py,sha256=Gqld1C-PcaXfJ8vpkWMDCmehmd3hZNYQk1knPtl59Bk,266
89
89
  LoopStructural/modelling/features/builders/_base_builder.py,sha256=N3txGC98V08A8-k2TLdoIWgWLfblZ91kaTvciPq_QVM,3750
90
- LoopStructural/modelling/features/builders/_fault_builder.py,sha256=_DZ0Hy_-jjm2fFU-5lY60zGisixdUWbAjsOQzMFKigY,25359
90
+ LoopStructural/modelling/features/builders/_fault_builder.py,sha256=aygkXjyeZEBNl8EjRtXbB3fqelo8A5cIIQmVS30gsDQ,25356
91
91
  LoopStructural/modelling/features/builders/_folded_feature_builder.py,sha256=sbyTI3McT1UBgTc1TPOrU4ggwcGYBGlCEzVk4stlGbs,7536
92
92
  LoopStructural/modelling/features/builders/_geological_feature_builder.py,sha256=7XhgwPXQZkky4Gnr4Q3t95YlDdtJ6mjBk7dsjzXB2QI,22236
93
- LoopStructural/modelling/features/builders/_structural_frame_builder.py,sha256=xWlCybV3Av2JBEk6Y-HRKbSggxUKlUsmfiULaUEBICo,9153
93
+ LoopStructural/modelling/features/builders/_structural_frame_builder.py,sha256=nPZWrN7D5hpVYWZpxpqe5F9Qzxj7zuLjefyU8pzrcb8,9194
94
94
  LoopStructural/modelling/features/fault/__init__.py,sha256=4u0KfYzmoO-ddFGo9qd9ov0gBoLqBiPAUsaw5zhEOAQ,189
95
95
  LoopStructural/modelling/features/fault/_fault_function.py,sha256=QEPh2jIvgD68hEJc5SM5xuMzZw-93V1me1ZbK9G2TB0,12655
96
96
  LoopStructural/modelling/features/fault/_fault_function_feature.py,sha256=4m0jVNx7ewrVI0pECI1wNciv8Cy8FzhZrYDjKJ_e2GU,2558
@@ -98,7 +98,7 @@ LoopStructural/modelling/features/fault/_fault_segment.py,sha256=BEIVAY_-iQYYuoy
98
98
  LoopStructural/modelling/features/fold/__init__.py,sha256=hQNj267TyFTJD1_Pu6XyjogSTrcJ-TSPQdWnMCDbSLo,175
99
99
  LoopStructural/modelling/features/fold/_fold.py,sha256=bPnnLUSiF4uoMRg8aHoOSTPRgaM0JyLoRQPu5_A-J3w,5448
100
100
  LoopStructural/modelling/features/fold/_fold_rotation_angle_feature.py,sha256=CXLbFRQ3CrTMAcHmfdbKcmSvvLs9_6TLe0Wqi1pK2tg,892
101
- LoopStructural/modelling/features/fold/_foldframe.py,sha256=Rgf5aofN0OVDTZ2pzqLzAGlJUO2rnNm3aFvLSnH77yo,7669
101
+ LoopStructural/modelling/features/fold/_foldframe.py,sha256=-Z9wowx3-7MqbIwxgIr8u1QdgV465FShKIen089lJfY,8197
102
102
  LoopStructural/modelling/features/fold/_svariogram.py,sha256=uLeBWZahEmystf8mpPJH_zKxp7hPyPJh0H5ROZO0pZs,7933
103
103
  LoopStructural/modelling/features/fold/fold_function/__init__.py,sha256=VqMjabsBd5GnPnDMXeKwXqtd0te2iXnvHxpf6jCC9YU,830
104
104
  LoopStructural/modelling/features/fold/fold_function/_base_fold_rotation_angle.py,sha256=5Bu_5xjyu4KL7thZ4fsh938Ep3Oyh5TL7_rfz_13Qng,8047
@@ -135,8 +135,8 @@ LoopStructural/utils/regions.py,sha256=SjCC40GI7_n03G4mlcmvyrBgJFbxnvB3leBzXWco3
135
135
  LoopStructural/utils/typing.py,sha256=29uVSTZdzXXH-jdlaYyBWZ1gQ2-nlZ2-XoVgG_PXNFY,157
136
136
  LoopStructural/utils/utils.py,sha256=2Z4zVE6G752-SPmM29zebk82bROJxEwi_YiiJjcVED4,2438
137
137
  LoopStructural/visualisation/__init__.py,sha256=5BDgKor8-ae6DrS7IZybJ3Wq_pTnCchxuY4EgzA7v1M,318
138
- loopstructural-1.6.20.dist-info/licenses/LICENSE,sha256=ZqGeNFOgmYevj7Ld7Q-kR4lAxWXuBRUdUmPC6XM_py8,1071
139
- loopstructural-1.6.20.dist-info/METADATA,sha256=WsPEAJMDXd0FITuc_laYIGCvPmBR6vZVvPT2X6pLhRA,6453
140
- loopstructural-1.6.20.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
141
- loopstructural-1.6.20.dist-info/top_level.txt,sha256=QtQErKzYHfg6ddxTQ1NyaTxXBVM6qAqrM_vxEPyXZLg,15
142
- loopstructural-1.6.20.dist-info/RECORD,,
138
+ loopstructural-1.6.21.dist-info/licenses/LICENSE,sha256=ZqGeNFOgmYevj7Ld7Q-kR4lAxWXuBRUdUmPC6XM_py8,1071
139
+ loopstructural-1.6.21.dist-info/METADATA,sha256=1-dlE7k1Zl_Aie2yGmkGAs1gGA26jOjkqL-s0klj7kU,6453
140
+ loopstructural-1.6.21.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
141
+ loopstructural-1.6.21.dist-info/top_level.txt,sha256=QtQErKzYHfg6ddxTQ1NyaTxXBVM6qAqrM_vxEPyXZLg,15
142
+ loopstructural-1.6.21.dist-info/RECORD,,