Skip to content

Commit d231204

Browse files
committed
fix: add option to use shapefile z values instead of dem when the shapefile has a 3D element
1 parent 377b39a commit d231204

2 files changed

Lines changed: 18 additions & 3 deletions

File tree

loopstructural/gui/modelling/model_definition/fault_layers.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,24 @@ def enableZCheckbox(self, enable):
3737
def onUseZCoordinateClicked(self):
3838
"""Handle changes to the Z coordinate checkbox."""
3939
self.useZCoordinate = self.useZCoordinateCheckBox.isChecked()
40-
def set_fault_trace_layer(self, layer, fault_name_field=None, fault_dip_field=None, fault_displacement_field=None):
40+
def set_fault_trace_layer(self, layer, fault_name_field=None, fault_dip_field=None, fault_displacement_field=None, use_z_coordinate=False):
4141
self.faultTraceLayer.setLayer(layer)
4242
if fault_name_field:
4343
self.faultNameField.setField(fault_name_field)
4444
if fault_dip_field:
4545
self.faultDipField.setField(fault_dip_field)
4646
if fault_displacement_field:
4747
self.faultDisplacementField.setField(fault_displacement_field)
48+
if layer is not None and layer.isValid():
49+
if layer.wkbType() != QgsWkbTypes.Unknown:
50+
has_z = QgsWkbTypes.hasZ(layer.wkbType())
51+
self.data_manager.logger(message=f"Layer {layer.name()} has Z coordinate: {has_z}", log_level=2)
52+
self.enableZCheckbox(has_z)
53+
self.useZCoordinateCheckBox.setChecked(use_z_coordinate)
54+
self.useZCoordinate = use_z_coordinate
55+
else:
56+
self.data_manager.logger(message="Unknown geometry type.", log_level=2)
57+
4858
def onFaultTraceLayerChanged(self, layer):
4959
self.faultNameField.setLayer(layer)
5060
self.faultDipField.setLayer(layer)

loopstructural/gui/modelling/model_definition/stratigraphic_layers.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ def enableStructuralPointsZCheckBox(self, enable):
4949
self.useStructuralPointsZCoordinatesCheckBox.setChecked(self.structural_points_use_z)
5050
else:
5151
self.useStructuralPointsZCoordinatesCheckBox.setChecked(False)
52-
def set_basal_contacts(self, layer, unitname_field=None):
52+
def set_basal_contacts(self, layer, unitname_field=None, use_z_coordinate=False):
5353
self.basalContactsLayer.setLayer(layer)
5454
if layer is not None and layer.isValid():
5555
if layer.wkbType() != QgsWkbTypes.Unknown:
@@ -62,7 +62,9 @@ def set_basal_contacts(self, layer, unitname_field=None):
6262
self.enableBasalContactsZCheckBox(False)
6363
if unitname_field:
6464
self.unitNameField.setField(unitname_field)
65-
def set_orientations_layer(self, layer, strike_field=None, dip_field=None, unitname_field=None, orientation_type=None):
65+
self.basal_contacts_use_z = use_z_coordinate
66+
self.useBasalContactsZCoordinatesCheckBox.setChecked(use_z_coordinate)
67+
def set_orientations_layer(self, layer, strike_field=None, dip_field=None, unitname_field=None, orientation_type=None, use_z_coordinate=False):
6668
self.structuralDataLayer.setLayer(layer)
6769
if layer is not None and layer.isValid():
6870
if layer.wkbType() != QgsWkbTypes.Unknown:
@@ -83,6 +85,9 @@ def set_orientations_layer(self, layer, strike_field=None, dip_field=None, unitn
8385
index = self.orientationType.findText(orientation_type, Qt.MatchFixedString)
8486
if index >= 0:
8587
self.orientationType.setCurrentIndex(index)
88+
if use_z_coordinate:
89+
self.structural_points_use_z = use_z_coordinate
90+
self.useStructuralPointsZCoordinatesCheckBox.setChecked(use_z_coordinate)
8691
def onBasalContactsChanged(self, layer):
8792
self.unitNameField.setLayer(layer)
8893
self.data_manager.set_basal_contacts(layer, self.unitNameField.currentField())

0 commit comments

Comments
 (0)