Skip to content

Commit 5b34346

Browse files
committed
fix: add convert from feature to structural frame
1 parent cb0af22 commit 5b34346

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

LoopStructural/modelling/features/builders/_structural_frame_builder.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from LoopStructural.utils.exceptions import LoopException
88

99
import numpy as np
10+
import copy
1011

1112
from ....utils import getLogger
1213
from ....datatypes import BoundingBox
@@ -120,6 +121,38 @@ def __init__(
120121
model=self.model,
121122
)
122123
self._frame.builder = self
124+
125+
@classmethod
126+
def from_feature_builder(cls, feature_builder, **kwargs):
127+
"""
128+
Create a structural frame builder from an existing feature builder
129+
130+
Parameters
131+
----------
132+
feature_builder - a geological feature builder
133+
kwargs
134+
135+
Returns
136+
-------
137+
138+
"""
139+
if not isinstance(feature_builder, GeologicalFeatureBuilder):
140+
raise LoopException(
141+
f"feature_builder is {type(feature_builder)} and must be a GeologicalFeatureBuilder"
142+
)
143+
if hasattr(feature_builder, 'fold'):
144+
logger.warning("feature builder has a fold - using this to create a folded frame")
145+
kwargs['fold'] = copy.deepcopy(feature_builder.fold)
146+
builder = cls(
147+
interpolatortype=[feature_builder.interpolator.type]*3,
148+
bounding_box=feature_builder.model.bounding_box,
149+
nelements=[feature_builder.interpolator.n_elements]*3,
150+
name=feature_builder.name,
151+
**kwargs
152+
)
153+
builder.add_data_from_data_frame(feature_builder.data)
154+
return builder
155+
123156
@property
124157
def build_arguments(self):
125158
return self.builders[0].build_arguments

0 commit comments

Comments
 (0)