Skip to content

Commit

Permalink
fix: added fault stratigraphy relation to processor
Browse files Browse the repository at this point in the history
dictionary stratname: faults that overprint strat. These faults are added
to the stratigraphy feature.
  • Loading branch information
Lachlan Grose committed Nov 23, 2021
1 parent 855a690 commit ac864d8
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 4 deletions.
11 changes: 8 additions & 3 deletions LoopStructural/modelling/core/geological_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -240,7 +240,10 @@ def from_processor(cls, processor):
# model[edge[1]].add_abutting_fault(model[edge[0]])
for s in processor.stratigraphic_column.keys():
if s != 'faults':
f = model.create_and_add_foliation(s,**processor.foliation_properties[s])
faults = None
if processor.fault_stratigraphy is not None:
faults = processor.fault_stratigraphy[s]
f = model.create_and_add_foliation(s,**processor.foliation_properties[s], faults=faults)
model.add_unconformity(f,0)
model.stratigraphic_column = processor.stratigraphic_column
return model
Expand Down Expand Up @@ -667,7 +670,7 @@ def get_interpolator(self, interpolatortype='FDI', nelements=1e4,
logger.warning("No interpolator")
raise InterpolatorError("Could not create interpolator")

def create_and_add_foliation(self, series_surface_data, tol = None, **kwargs):
def create_and_add_foliation(self, series_surface_data, tol = None, faults=None,**kwargs):
"""
Parameters
----------
Expand Down Expand Up @@ -696,7 +699,7 @@ def create_and_add_foliation(self, series_surface_data, tol = None, **kwargs):
logger.warning("No data for %s, skipping" % series_surface_data)
return
series_builder.add_data_from_data_frame(series_data)
self._add_faults(series_builder)
self._add_faults(series_builder,features=faults)

# build feature
# series_feature = series_builder.build(**kwargs)
Expand Down Expand Up @@ -934,6 +937,8 @@ def _add_faults(self, feature_builder, features=None):
if features is None:
features = self.features
for f in reversed(features):
if isinstance(f, str):
f = self.__getitem__(f)
if f.type == 'fault':
feature_builder.add_fault(f)
# if f.type == 'unconformity':
Expand Down
9 changes: 8 additions & 1 deletion LoopStructural/modelling/input/map2loop_processor.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,12 @@ def __init__(self,m2l_directory,use_thickness=None):
fault_displacements = pd.read_csv(m2l_directory + '/output/fault_displacements3.csv')
fault_orientations = pd.read_csv(m2l_directory + '/output/fault_orientations.csv')
fault_locations = pd.read_csv(m2l_directory + '/output/faults.csv')
fault_strat = pd.read_csv(f"{m2l_directory}/output/supergroup-fault-relationships.csv")
fault_dimensions = pd.read_csv(m2l_directory + '/output/fault_dimensions.csv',
index_col='Fault')
fault_graph = networkx.read_gml(m2l_directory + '/tmp/fault_network.gml')
fault_orientations.rename(columns={'formation':'fault_name'},inplace=True)

bb = np.loadtxt(m2l_directory + '/tmp/bbox.csv',skiprows=1,delimiter=',')
fault_dimensions['displacement'] = np.nan
fault_dimensions['downthrow_dir'] = np.nan
Expand Down Expand Up @@ -86,6 +88,11 @@ def __init__(self,m2l_directory,use_thickness=None):
fault_properties['colour'] = 'black'
if np.sum(orientations['polarity']==0) >0 and np.sum(orientations['polarity']==-1)==0:
orientations.loc[orientations['polarity']==0,'polarity']=-1

fault_stratigraphy = {}
for strat in fault_strat['supergroup'].unique():
mask = (fault_strat.loc[fault_strat['supergroup']==strat,:]==1).to_numpy()
fault_stratigraphy[strat] = fault_strat.columns[mask[0,:]].tolist()
ip = super().__init__(
contacts,
orientations,
Expand All @@ -96,7 +103,7 @@ def __init__(self,m2l_directory,use_thickness=None):
fault_properties=fault_properties,
fault_edges=list(fault_graph.edges),
colours=dict(zip(groups['code'],groups['colour'])),
fault_stratigraphy=None,
fault_stratigraphy=fault_stratigraphy,
intrusions=None,
use_thickness=use_thickness,
fault_edge_properties=fault_edge_properties
Expand Down
3 changes: 3 additions & 0 deletions LoopStructural/modelling/input/process_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,9 @@ def stratigraphic_column(self):
stratigraphic_column['faults'] = self.fault_properties.to_dict('index')
return stratigraphic_column

@property
def fault_stratigraphy(self):
return self._fault_stratigraphy

def stratigraphy_cmap(self, supergroup='supergroup_0'):
"""create a colour map for the stratigraphy scalar field
Expand Down

0 comments on commit ac864d8

Please sign in to comment.