commit af100bd9257b2d4316f1e553cdb3a0835b16a873
parent 9ef05d0deeffa67eae3205ba62f20c98f5b8d2a1
Author: Anders Damsgaard <anders@adamsgaard.dk>
Date: Wed, 8 Apr 2026 16:34:38 +0200
docs(readme): fix usage and install instructions
Diffstat:
| A | README.md | | | 63 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
1 file changed, 63 insertions(+), 0 deletions(-)
diff --git a/README.md b/README.md
@@ -0,0 +1,63 @@
+# TEM Loader
+
+A QGIS 3.40+ plugin for loading Time-Domain Electromagnetic (TEM) geophysical inversion XYZ files as styled 3D vector layers.
+
+## Overview
+
+TEM Loader parses XYZ inversion model files and loads them into QGIS as three layer types:
+
+- **Points** — surface terrain positions with survey line labels
+- **DOI** — depth-of-investigation points at depth
+- **Layers** — resistivity model layers as vertical 3D line segments
+
+Each file gets its own layer group. Layers are styled with pre-built QML styles and support the QGIS Elevation Profile tool for profile visualization.
+
+## Requirements
+
+- QGIS 3.40.0 or later (up to 4.1.0)
+- Python 3 (bundled with QGIS)
+
+## Installation
+
+1. Download `tem_loader.zip` from the [releases page](https://gitlab.com/qgeomodel/qgis-tem-loader/-/releases) or build it yourself (see below).
+2. In QGIS: **Plugins > Manage and Install Plugins > Install from ZIP**.
+3. Select the zip file and click **Install Plugin**.
+
+## Usage
+
+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.
+
+## XYZ File Format
+
+Input files are whitespace-delimited with optional `/`-prefixed comment header lines. The first non-comment line is the column header row. Required columns:
+
+| Column | Description |
+|---|---|
+| `X`, `Y`, `Z` | Easting, northing, elevation |
+| `Line`, `StationNo` | Survey line and station identifiers |
+| `DOI` | Depth of investigation (metres below surface) |
+| `DataResidual` | Data residual |
+| `NumLayers` | Number of valid resistivity layers |
+| `Res_1` … `Res_N` | Layer resistivities (Ohm·m) |
+| `Thick_1` … `Thick_N` | Layer thicknesses (m) |
+
+Legacy files with an extra leading index column are handled automatically.
+
+## Development
+
+```sh
+make test # run the unittest suite
+make package # build tem_loader.zip for installation
+make clean # remove the zip
+```
+
+`core.py` (XYZ parsing and CSV writing) has no QGIS dependency and is fully unit-testable. `tem_loader.py` (layer loading) requires a running QGIS instance and is verified manually.
+
+## Repository
+
+- Source: <https://gitlab.com/qgeomodel/qgis-tem-loader>
+- Issues: <https://gitlab.com/qgeomodel/qgis-tem-loader/issues>
+- Author: Anders Damsgaard (<andam@geus.dk>)