Skip to content

Commit 9f595a4

Browse files
committed
updating imports and adding faults loop up table
1 parent 271ca04 commit 9f595a4

5 files changed

Lines changed: 37 additions & 19 deletions

File tree

loopstructural/gui/modelling/model_definition/dem.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from qgis.core import QgsMapLayerProxyModel
55
from qgis.PyQt import uic
66

7-
from ...main.helpers import ColumnMatcher, get_layer_names
7+
from ....main.helpers import ColumnMatcher, get_layer_names
88

99

1010
class DEMWidget(QWidget):
@@ -31,7 +31,6 @@ def set_dem_layer(self, layer):
3131
self.useDEMCheckBox.setChecked(False)
3232
self._persist_selection()
3333

34-
3534
def onUseDEMClicked(self):
3635
if self.useDEMCheckBox.isChecked():
3736
self.demLayerQgsMapLayerComboBox.setEnabled(True)
@@ -67,6 +66,7 @@ def _guess_layer(self):
6766
layer_names = get_layer_names(self.demLayerQgsMapLayerComboBox)
6867
matcher = ColumnMatcher(layer_names)
6968
match = matcher.find_match('DEM') or matcher.find_match('DTM')
69+
print("DEMWidget: guessed layer match:", match)
7070
if match:
7171
layer = self.data_manager.find_layer_by_name(match)
7272
if layer:

loopstructural/gui/modelling/model_definition/fault_layers.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from qgis.core import QgsFieldProxyModel, QgsMapLayerProxyModel, QgsWkbTypes
55
from qgis.PyQt import uic
66

7-
from ...main.helpers import ColumnMatcher, get_layer_names
7+
from ....main.helpers import ColumnMatcher, get_layer_names
88

99

1010
class FaultLayersWidget(QWidget):
@@ -108,13 +108,15 @@ def _guess_layer_and_fields(self):
108108
self.faultTraceLayer.setLayer(layer)
109109
fields = [field.name() for field in layer.fields()]
110110
field_matcher = ColumnMatcher(fields)
111-
if name_match := field_matcher.find_match('FAULT_NAME') or field_matcher.find_match('NAME'):
111+
if name_match := field_matcher.find_match('FAULT_NAME') or field_matcher.find_match(
112+
'NAME'
113+
):
112114
self.faultNameField.setField(name_match)
113115
if dip_match := field_matcher.find_match('DIP'):
114116
self.faultDipField.setField(dip_match)
115-
if disp_match := field_matcher.find_match('DISPLACEMENT') or field_matcher.find_match(
116-
'SLIP'
117-
):
117+
if disp_match := field_matcher.find_match(
118+
'DISPLACEMENT'
119+
) or field_matcher.find_match('SLIP'):
118120
self.faultDisplacementField.setField(disp_match)
119121

120122
def _persist_selection(self):

loopstructural/gui/modelling/model_definition/stratigraphic_layers.py

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from qgis.core import QgsMapLayerProxyModel, QgsWkbTypes
66
from qgis.PyQt import uic
77

8-
from ...main.helpers import ColumnMatcher, get_layer_names
8+
from ....main.helpers import ColumnMatcher, get_layer_names
99

1010

1111
class StratigraphicLayersWidget(QWidget):
@@ -189,9 +189,9 @@ def _guess_layers_and_fields(self):
189189
# Structural data
190190
structural_names = get_layer_names(self.structuralDataLayer)
191191
structural_matcher = ColumnMatcher(structural_names)
192-
structural_match = structural_matcher.find_match('STRUCTURE') or structural_matcher.find_match(
193-
'ORIENTATION'
194-
)
192+
structural_match = structural_matcher.find_match(
193+
'STRUCTURE'
194+
) or structural_matcher.find_match('ORIENTATION')
195195
if structural_match:
196196
layer = self.data_manager.find_layer_by_name(structural_match)
197197
if layer:
@@ -209,12 +209,16 @@ def _persist_selection(self):
209209
if not self.data_manager:
210210
return
211211
settings = {
212-
'basal_layer': self.basalContactsLayer.currentLayer().name()
213-
if self.basalContactsLayer.currentLayer()
214-
else None,
215-
'structural_layer': self.structuralDataLayer.currentLayer().name()
216-
if self.structuralDataLayer.currentLayer()
217-
else None,
212+
'basal_layer': (
213+
self.basalContactsLayer.currentLayer().name()
214+
if self.basalContactsLayer.currentLayer()
215+
else None
216+
),
217+
'structural_layer': (
218+
self.structuralDataLayer.currentLayer().name()
219+
if self.structuralDataLayer.currentLayer()
220+
else None
221+
),
218222
'unit_name_field': self.unitNameField.currentField(),
219223
'orientation_field': self.orientationField.currentField(),
220224
'dip_field': self.dipField.currentField(),

loopstructural/main/data_manager.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22
from collections import defaultdict
33

44
import numpy as np
5-
from LoopStructural.datatypes import BoundingBox
65
from qgis.core import QgsPointXY, QgsProject, QgsVectorLayer
76

87
from LoopStructural import FaultTopology, StratigraphicColumn
8+
from LoopStructural.datatypes import BoundingBox
99
from LoopStructural.modelling.core.stratigraphic_column import StratigraphicColumnElementType
1010

1111
from .vectorLayerWrapper import qgsLayerToGeoDataFrame
@@ -596,10 +596,13 @@ def find_layer_by_name(self, layer_name, layer_type=QgsVectorLayer):
596596
log_level=2,
597597
)
598598
i = 0
599+
599600
while i < len(layers) and not issubclass(type(layers[i]), layer_type):
600601

601602
i += 1
602-
603+
if i >= len(layers):
604+
self.logger(message=f"Layer '{layer_name}' is not a vector layer.", log_level=2)
605+
return None
603606
if issubclass(type(layers[i]), layer_type):
604607
return layers[i]
605608
else:

loopstructural/main/helpers.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,15 @@ class ColumnMatcher:
6565
'MIN_AGE': ['min_age', 'minage', 'age_min', 'younger', 'min_age_ma', 'age_low'],
6666
'MAX_AGE': ['max_age', 'maxage', 'age_max', 'older', 'max_age_ma', 'age_high'],
6767
'GROUP': ['group', 'group_name', 'groupname', 'series', 'supergroup'],
68+
'FAULT': [
69+
'fault',
70+
'faults',
71+
'fault_layer',
72+
'faults_layer',
73+
'faultid',
74+
'fault_id',
75+
'fault_name',
76+
],
6877
'X': ['x', 'easting', 'longitude', 'lon', 'long', 'x_coord'],
6978
'Y': ['y', 'northing', 'latitude', 'lat', 'y_coord'],
7079
'Z': ['z', 'elevation', 'altitude', 'height', 'elev', 'z_coord'],

0 commit comments

Comments
 (0)