|
67 | 67 | origin = [df["X"].min() - z, df["Y"].min() - z, -z] |
68 | 68 | maximum = [df["X"].max() + z, df["Y"].max() + z, z] |
69 | 69 |
|
70 | | -############################## |
71 | | -# Setting up the data |
72 | | -# ~~~~~~~~~~~~~~~~~~~ |
73 | | -# The `ProcessInputData` class is used to convert common geological map components to the datastructures required by LoopStructural.# |
74 | | -# To build a fault network we need to provide:# * fault locations - a table of x,y,z, and the fault name |
75 | | -# 1. fault orientations - a table recording the orientation observations of the fault, e.g. strike, dip or normal vector and x,y,z, fault_name |
76 | | -# 2. origin - the origin of the model bounding box |
77 | | -# 3. maximum - the maximum extend of the model bounding box |
78 | | -# 4. fault_edges - list of intersection relationships between faults e.g. [('fault1','fault2')] indicates that there is a intersection between fault1 and fault2 |
79 | | -# 5. fault_edge_properties - list of properties for the fault edges - this can be the type of intersection e.g. 'splay' or 'abut' or just the angle between the faults |
80 | | -# 6. fault_properties (*optional*) - a pandas dataframe with any kwargs for the interpolator where the index is the fault name # |
81 | | -# |
82 | | -# Below is an example of setting the number of interpolation elements for each fault |
83 | | - |
84 | | -############################## |
85 | | -# Modelling splay faults |
86 | | -# ~~~~~~~~~~~~~~~~~~~~~~ |
87 | | -# A splay fault relationship is defined for any fault where the angle between the faults is less than :math:`30^\circ`. |
88 | | -# In this example we specify the angle between the faults as :math:`10^\circ`. |
89 | | - |
90 | | -processor = ProcessInputData( |
91 | | - fault_orientations=ori, |
92 | | - fault_locations=df, |
93 | | - origin=origin, |
94 | | - maximum=maximum, |
95 | | - fault_edges=[("fault_2", "fault_1")], |
96 | | - fault_edge_properties=[{"angle": 10}], |
97 | | -) |
98 | 70 |
|
99 | | -model = GeologicalModel.from_processor(processor) |
100 | | -model.update() |
101 | | - |
102 | | -view = Loop3DView(model) |
103 | | -for f in model.faults: |
104 | | - view.plot_surface(f, value=[0]) # |
105 | | -view.rotation = [-50.92916488647461, -30.319700241088867, -20.521053314208984] |
106 | | -view.display() |
107 | 71 |
|
108 | 72 | ############################## |
109 | 73 | # Modelling abutting faults |
|
0 commit comments