Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
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
6 changes: 1 addition & 5 deletions map2loop/__init__.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
import logging
from map2loop.logging import loggers, ch

loggers = {}
ch = logging.StreamHandler()
formatter = logging.Formatter("%(levelname)s: %(asctime)s: %(filename)s:%(lineno)d -- %(message)s")
ch.setFormatter(formatter)
ch.setLevel(logging.WARNING)
from .project import Project
from .version import __version__

Expand Down
18 changes: 11 additions & 7 deletions map2loop/logging.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
import logging
import map2loop

loggers = {}

ch = ch = logging.StreamHandler()
formatter = logging.Formatter("%(levelname)s: %(asctime)s: %(filename)s:%(lineno)d -- %(message)s")
ch.setFormatter(formatter)
ch.setLevel(logging.WARNING)
def get_levels():
"""dict for converting to logger levels from string

Expand Down Expand Up @@ -33,12 +37,12 @@ def getLogger(name: str):
logging.Logger
logger object
"""
if name in map2loop.loggers:
return map2loop.loggers[name]
if name in loggers:
return loggers[name]
logger = logging.getLogger(name)
logger.addHandler(map2loop.ch)
logger.addHandler(ch)
logger.propagate = False
map2loop.loggers[name] = logger
loggers[name] = logger
return logger


Expand All @@ -56,9 +60,9 @@ def set_level(level: str):
"""
levels = get_levels()
level = levels.get(level, logging.WARNING)
map2loop.ch.setLevel(level)
ch.setLevel(level)

for name in map2loop.loggers:
for name in loggers:
logger = logging.getLogger(name)
logger.setLevel(level)
logger.info(f"Logging level set to {level}")
33 changes: 21 additions & 12 deletions map2loop/project.py
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ def __init__(
self.set_default_samplers()
self.bounding_box = bounding_box
self.contact_extractor = None
self.sorter = SorterUseHint()
self.sorter = SorterUseHint
self.throw_calculator = ThrowCalculatorAlpha()
self.fault_orientation = FaultOrientationNearest()
self.map_data = MapData(verbose_level=verbose_level)
Expand Down Expand Up @@ -560,19 +560,22 @@ def calculate_stratigraphic_order(self, take_best=False):
)
self.contact_extractor.extract_all_contacts()
if take_best:
sorters = [SorterUseHint(), SorterAgeBased(), SorterAlpha(), SorterUseNetworkX()]
sorters = [
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 +603,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