Skip to content

Commit ec520fa

Browse files
author
Lachlan Grose
committed
fix: faults were not faulting unconformities
1 parent b98397b commit ec520fa

File tree

5 files changed

+14
-22
lines changed

5 files changed

+14
-22
lines changed

LoopStructural/modelling/core/geological_model.py

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -434,7 +434,8 @@ def feature_names(self):
434434
return self.feature_name_index.keys()
435435

436436
def fault_names(self):
437-
pass
437+
438+
return [f.name for f in self.faults]
438439

439440
def check_inialisation(self):
440441
if self.data is None:
@@ -485,7 +486,8 @@ def _add_feature(self, feature):
485486
f"Adding {feature.name} to model at location {len(self.features)}"
486487
)
487488
self._add_domain_fault_above(feature)
488-
self._add_unconformity_above(feature)
489+
if feature.type == FeatureType.INTERPOLATED:
490+
self._add_unconformity_above(feature)
489491
feature.model = self
490492

491493
def data_for_feature(self, feature_name):
@@ -882,8 +884,6 @@ def create_and_add_dtm(self, series_surface_data, **kwargs):
882884
series_feature = series_builder.feature
883885
series_builder.build_arguments = kwargs
884886
series_feature.type = "dtm"
885-
# see if any unconformities are above this feature if so add region
886-
# self._add_unconformity_above(series_feature)self._add_feature(series_feature)
887887
self._add_feature(series_feature)
888888
return series_feature
889889

@@ -921,8 +921,7 @@ def create_and_add_fold_frame(self, foldframe_data, tol=None, **kwargs):
921921
kwargs["tol"] = tol
922922
fold_frame_builder.setup(**kwargs)
923923
fold_frame = fold_frame_builder.frame
924-
# for i in range(3):
925-
# self._add_unconformity_above(fold_frame[i])
924+
926925
fold_frame.type = FeatureType.STRUCTURALFRAME
927926
fold_frame.builder = fold_frame_builder
928927
self._add_feature(fold_frame)
@@ -983,9 +982,7 @@ def create_and_add_folded_foliation(
983982
series_builder.build_arguments = kwargs
984983
series_feature.type = FeatureType.INTERPOLATED
985984
series_feature.fold = fold
986-
# see if any unconformities are above this feature if so add region
987-
# self._add_unconformity_above(series_feature)self._add_feature(series_feature)
988-
# result['support'] = series_feature.get_interpolator().support
985+
989986
self._add_feature(series_feature)
990987
return series_feature
991988

@@ -1049,9 +1046,6 @@ def create_and_add_folded_fold_frame(
10491046
folded_fold_frame.builder = fold_frame_builder
10501047

10511048
folded_fold_frame.type = "structuralframe"
1052-
# see if any unconformities are above this feature if so add region
1053-
# for i in range(3):
1054-
# self._add_unconformity_above(fold_frame[i])
10551049

10561050
self._add_feature(folded_fold_frame)
10571051

@@ -1255,6 +1249,7 @@ def _add_unconformity_above(self, feature):
12551249
-------
12561250
12571251
"""
1252+
12581253
for f in reversed(self.features):
12591254
if f.type == FeatureType.UNCONFORMITY and f.name != feature.name:
12601255
feature.add_region(lambda pos: f.evaluate(pos))
@@ -1330,6 +1325,8 @@ def add_unconformity(
13301325
logger.debug(f"Reached unconformity {f.name}")
13311326
break
13321327
logger.debug(f"Adding {uc_feature.name} as unconformity to {f.name}")
1328+
if f.type == FeatureType.FAULT:
1329+
continue
13331330
f.add_region(lambda pos: ~uc_feature.evaluate(pos))
13341331
# now add the unconformity to the feature list
13351332
self._add_feature(uc_feature)
@@ -1362,12 +1359,6 @@ def add_onlap_unconformity(
13621359
break
13631360
if f != feature:
13641361
f.add_region(lambda pos: uc_feature.evaluate(pos))
1365-
# for f in self.features:
1366-
# f.add_region(lambda pos: uc_feature.evaluate(pos))
1367-
1368-
# see if any unconformities are above this feature if so add region
1369-
# self._add_unconformity_above(uc_feature)
1370-
# self._add_unconformity_below(uc_feature) # , uc_feature)
13711362
self._add_feature(uc_feature)
13721363

13731364
return uc_feature

LoopStructural/modelling/features/_base_geological_feature.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class BaseFeature:
1212
Base class for geological features.
1313
"""
1414

15-
def __init__(self, name, model, faults, regions, builder):
15+
def __init__(self, name, model=None, faults=[], regions=[], builder=None):
1616
self.name = name
1717
self.type = FeatureType.BASE
1818
self.regions = regions

LoopStructural/modelling/features/_cross_product_geological_feature.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ def __init__(self, name, geological_feature_a, geological_feature_b):
2323
geological_feature_a: first feature
2424
geological_feature_b: second feature
2525
"""
26-
super().__init__(name, None, None, None, None)
26+
super().__init__(name)
2727
self.geological_feature_a = geological_feature_a
2828
self.geological_feature_b = geological_feature_b
2929
self.value_feature = None

LoopStructural/modelling/features/_structural_frame.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,9 @@ def model(self, model):
8181
f.model = model
8282

8383
def add_region(self, region):
84+
self.regions.append(region)
8485
for i in range(3):
85-
self.features[i].add_region(region)
86+
self.features[i].regions = self.regions
8687

8788
def get_feature(self, i):
8889
"""

LoopStructural/modelling/features/builders/_structural_frame_builder.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ def setup(self, w1=1.0, w2=1.0, w3=1.0, **kwargs):
189189

190190
logger.debug("Creating analytical structural frame coordinate 2")
191191
c3 = CrossProductGeologicalFeature(
192-
self.name + "_2", self._frame[0], self._frame[1]
192+
self.name + "__2", self._frame[0], self._frame[1]
193193
)
194194
self._frame[2] = c3
195195

0 commit comments

Comments
 (0)