Skip to content

Commit 9b4a719

Browse files
committed
fix: speed up model eval by collecting all conformable units
1 parent 65d2819 commit 9b4a719

1 file changed

Lines changed: 11 additions & 3 deletions

File tree

LoopStructural/modelling/core/geological_model.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1751,14 +1751,22 @@ def get_stratigraphic_surfaces(self, units: List[str] = [], bottoms: bool = True
17511751
if self.stratigraphic_column is None:
17521752
return []
17531753
units = self.stratigraphic_column.get_isovalues()
1754+
units_for_group = {}
17541755
for name, u in units.items():
17551756
if u['group'] not in self:
17561757
logger.warning(f"Group {u['group']} not found in model")
17571758
continue
1758-
feature = self.get_feature_by_name(u['group'])
1759-
1759+
if u['group'] not in units_for_group:
1760+
units_for_group[u['group']] = []
1761+
u['name'] = name
1762+
units_for_group[u['group']].append(u)
1763+
for group, us in units_for_group.items():
1764+
feature = self.get_feature_by_name(group)
1765+
values = [u['value'] for u in us]
1766+
colours = [u['colour'] for u in us]
1767+
names = [u['name'] for u in us]
17601768
surfaces.extend(
1761-
feature.surfaces([u['value']], self.bounding_box, name=name, colours=[u['colour']])
1769+
feature.surfaces(values, self.bounding_box, name=names, colours=colours)
17621770
)
17631771

17641772
return surfaces

0 commit comments

Comments
 (0)