Skip to content

Commit

Permalink
fix: faults interpolation mesh was not being adjusted
Browse files Browse the repository at this point in the history
When fixing another bug I accidently made the interpolation
geometry for all faults the model geometry.
Changed so that it only does this if the distance along the fault trace is
= 0.
I
  • Loading branch information
Lachlan Grose committed Dec 8, 2021
1 parent e6f7e1f commit 33722f6
Showing 1 changed file with 9 additions and 23 deletions.
32 changes: 9 additions & 23 deletions LoopStructural/modelling/fault/fault_builder.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,8 @@ def __init__(

StructuralFrameBuilder.__init__(self, interpolator, interpolators, **kwargs)
self.model = model
self.origin = self.model.bounding_box[0, :]
self.maximum = self.model.bounding_box[1, :]

self.origin = np.zeros(3)#self.model.bounding_box[0, :]
self.maximum = np.zeros(3)#self.model.bounding_box[1, :]
# define a maximum area to mesh adding buffer to model
# buffer = .2
self.minimum_origin = self.model.bounding_box[
Expand Down Expand Up @@ -101,13 +100,15 @@ def create_data_from_geometry(
distance = np.linalg.norm(
fault_trace[:, None, :] - fault_trace[None, :, :], axis=2
)
if len(distance) == 0:
if len(distance) == 0 or np.sum(distance) == 0:
logger.error("There is no fault trace for {}".format(self.name))
# add any data anyway - usually just orientation data
self.add_data_from_data_frame(data)
self.origin = self.model.bounding_box[0, :]
self.maximum = self.model.bounding_box[1, :]
return
major_axis = np.max(distance)
logger.warning("Fault major axis using map length: {}".format(major_axis))
logger.warning(f"Fault major axis using map length: {major_axis}")

if minor_axis is None:
minor_axis = major_axis / 2.0
Expand Down Expand Up @@ -216,13 +217,10 @@ def create_data_from_geometry(
1,
w,
]
# data.loc[len(data),['X','Y','Z','feature_name','val','coord']] = \
# [fault_depth[1,0],fault_depth[1,1],fault_depth[1,2],self.name,-1,1]

self.update_geometry(fault_depth)
# TODO need to add data here
# print(np.linalg.norm(slip_vector))
# slip_vector /= intermediate_axis
# print(np.linalg.norm(slip_vector))

data.loc[
len(data),
[
Expand All @@ -249,9 +247,6 @@ def create_data_from_geometry(
1,
w,
]
# add strike vector to constraint fault extent
# data.loc[len(data),['X','Y','Z','feature_name','nx','ny','nz','coord']] = [fault_center[0],fault_center[1],fault_center[2],\
# self.name, strike_vector[0], strike_vector[1], strike_vector[2], 2]
self.add_data_from_data_frame(data)
self.update_geometry(data[["X", "Y", "Z"]].to_numpy())

Expand All @@ -264,13 +259,6 @@ def set_mesh_geometry(self, buffer, rotation):
percentage of length to add to edges
"""
length = np.max(self.maximum - self.origin)
# origin = self.builders[0].interpolator.support.origin
# maximum = self.builders[0].interpolator.support.maximum#set_interpolation_geometry
# if origin[2]>self.origin[2]:
# origin[2]=self.origin[2]
# if maximum[2]<self.maximum[2]:
# maximum[2]=self.maximum[2]
# self.builders[0].set_interpolation_geometry(origin,maximum)
# for builder in self.builders:
# all three coordinates share the same support
self.builders[0].set_interpolation_geometry(
Expand Down Expand Up @@ -301,9 +289,7 @@ def splayregion(xyz):
return mask
else:
logger.warning(
"Not adding splay, cannot identify splay overlap region for {} and {}".format(
self.name, splay.name
)
f"Not adding splay, cannot identify splay overlap region for {self.name} and {splay.name}"
)
return mask

Expand Down

0 comments on commit 33722f6

Please sign in to comment.