qgis-tem-loader

qgis plugin for loading TEM geophysical inversion XYZ files as 3D objects
git clone git://src.adamsgaard.dk/qgis-tem-loader # fast
git clone https://src.adamsgaard.dk/qgis-tem-loader.git # slow
Log | Files | Refs | README | LICENSE Back to index

commit a4111ccf9b8799ef37c438a4a7d57e47eac04420
parent 5c136f753c74a0f1955700cceef87720d3222374
Author: Anders Damsgaard <anders@adamsgaard.dk>
Date:   Wed,  8 Apr 2026 17:00:56 +0200

fix(qgis): render doi above layers

Diffstat:
MREADME.md | 2+-
Mtem_loader/tem_loader.py | 15++++++++++++---
2 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/README.md b/README.md @@ -28,7 +28,7 @@ Each file gets its own layer group. Layers are styled with pre-built QML styles 1. Open a QGIS project and set the project CRS (falls back to EPSG:4326 if unset). 2. Go to **Plugins > TEM Loader > Load TEM XYZ files…**. 3. Select one or more `.xyz` inversion files. -4. Three CSV files (`.points.csv`, `.doi.csv`, `.layers.csv`) are written beside each source file, and the corresponding layers are added to the project. +4. Three CSV files (`.points.csv`, `.doi.csv`, `.layers.csv`) are written beside each source file, and the corresponding layers are added to the project with `points` above `doi` above `layers`. ## XYZ File Format diff --git a/tem_loader/tem_loader.py b/tem_loader/tem_loader.py @@ -55,12 +55,13 @@ class TEMLoaderPlugin: group = root.insertGroup(0, group_name) failed = [] - load_order = [ + loaded_layers = {} + source_layers = [ ('layers', lyr_csv, 'LineString'), ('doi', doi_csv, 'Point'), ('points', pts_csv, 'Point'), ] - for name, csv_path, geom_type in load_order: + for name, csv_path, geom_type in source_layers: uri = ( f'file://{csv_path.as_posix()}' f'?type={geom_type}' @@ -79,7 +80,15 @@ class TEMLoaderPlugin: layer.loadNamedStyle(str(qml)) project.addMapLayer(layer, False) - group.addLayer(layer) + loaded_layers[name] = layer + + insert_index = 0 + for name in ('points', 'doi', 'layers'): + layer = loaded_layers.get(name) + if layer is None: + continue + group.insertLayer(insert_index, layer) + insert_index += 1 if failed: QMessageBox.warning(