Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 23 additions & 11 deletions map2loop/project.py
Original file line number Diff line number Diff line change
Expand Up @@ -560,19 +560,25 @@ def calculate_stratigraphic_order(self, take_best=False):
)
self.contact_extractor.extract_all_contacts()
if take_best:
sorters = [SorterUseHint(), SorterAgeBased(), SorterAlpha(), SorterUseNetworkX()]
sorters = [
SorterUseHint(
unit_relationships=self.topology.get_unit_unit_relationships(),
),
SorterAgeBased(),
SorterAlpha(
contacts=self.contact_extractor.contacts,
),
SorterUseNetworkX(
unit_relationships=self.topology.get_unit_unit_relationships(),
),
]
logger.info(
f"Calculating best stratigraphic column from {[sorter.sorter_label for sorter in sorters]}"
)

columns = [
sorter.sort(
self.stratigraphic_column.stratigraphicUnits,
self.topology.get_unit_unit_relationships(),
self.contact_extractor.contacts,
self.map_data.get_map_data(Datatype.GEOLOGY),
self.map_data.get_map_data(Datatype.STRUCTURE),
self.map_data.get_map_data(Datatype.DTM),
)
for sorter in sorters
]
Expand Down Expand Up @@ -600,13 +606,19 @@ def calculate_stratigraphic_order(self, take_best=False):
self.stratigraphic_column.column = column
else:
logger.info(f'Calculating stratigraphic column using sorter {self.sorter.sorter_label}')
# Update sorter with current data based on what it needs
if hasattr(self.sorter, 'unit_relationships') and self.sorter.unit_relationships is None:
self.sorter.unit_relationships = self.topology.get_unit_unit_relationships()
if hasattr(self.sorter, 'contacts') and self.sorter.contacts is None:
self.sorter.contacts = self.contact_extractor.contacts
if hasattr(self.sorter, 'geology_data') and self.sorter.geology_data is None:
self.sorter.geology_data = self.map_data.get_map_data(Datatype.GEOLOGY)
if hasattr(self.sorter, 'structure_data') and self.sorter.structure_data is None:
self.sorter.structure_data = self.map_data.get_map_data(Datatype.STRUCTURE)
if hasattr(self.sorter, 'dtm_data') and self.sorter.dtm_data is None:
self.sorter.dtm_data = self.map_data.get_map_data(Datatype.DTM)
self.stratigraphic_column.column = self.sorter.sort(
self.stratigraphic_column.stratigraphicUnits,
self.topology.get_unit_unit_relationships(),
self.contact_extractor.contacts,
self.map_data.get_map_data(Datatype.GEOLOGY),
self.map_data.get_map_data(Datatype.STRUCTURE),
self.map_data.get_map_data(Datatype.DTM),
)

@beartype.beartype
Expand Down
Loading
Loading