018-tem-loader.txt (3623B)
1 Install via the QGIS Plugin Manager: 2 https://plugins.qgis.org/plugins/tem_loader/ 3 4 If you run into problems installing or using the plugin, please get 5 in touch. 6 7 ## Motivation 8 9 The Transient Electromagnetic Method (TEM) is used for imaging 10 subsurface electrical properties from the ground surface or with 11 airborne instrumentaiton. The method is popular in ground-water 12 surveys, mineral exploration, and other geological applications 13 where differences in electrical resistivity of the subsurface are 14 of interest. 15 16 The subsurface resistivities are calculated through numerical 17 inversion, where the observed decay of an induced magnetic field 18 is matched against subsurface properties. The inverted resistivity 19 models are the end goal for the geological analysis, and are typically 20 exported from the inversion software as XYZ text files. The files 21 contain one row per sounding, with a stack of resistivity layers 22 and a depth of investigation. Reading these data usually requires 23 specialized commercial software. 24 25 TEM Loader is a QGIS plugin that does the import to QGIS. I made 26 it for teaching activities under the Danish Strategic Sector 27 Cooperation program, where we collaborate with geological surveys 28 and water authorities in african countries on geophysics and 29 geological modelling. 30 31 ## What it does 32 33 The plugin reads inversion XYZ files exported from TEMImage and 34 Aarhus Workbench. For each file it creates three layers in a group: 35 36 - Points: surface positions of each sounding. 37 - DOI: depth-of-investigation points, revealing the lower confidence 38 boundary in the model. 39 - Layers: resistivity layers as vertical 3D line segments. 40 41 These layers are styled with bundled QML files. The imported 42 geometries are visible in the QGIS 3D Map viewer and Elevation 43 Profile tool, where it is possible to draw cross-sections along any 44 line. 45 46 If the XYZ header declares an EPSG code, it is used. Otherwise the loader falls 47 back to the project CRS, and then to EPSG:4326. Three CSV files 48 (filename.points.csv, filename.doi.csv, filename.layers.csv) are written next 49 to the source file. 50 51 ## How the data becomes geometry 52 53 The parser is a small core.py module with no QGIS dependency, which 54 keeps it unit-testable. TEMImage and Aarhus Workbench headers are 55 normalised into a common schema. 56 57 Geometry is written as [2]WKT strings into the CSVs and parsed by 58 QGIS on load. For a sounding at (x, y) with surface elevation z 59 and depth of investigation doi: 60 61 z_doi = z - doi 62 point_wkt = f'POINT Z ({x} {y} {z})' 63 doi_wkt = f'POINT Z ({x} {y} {z_doi})' 64 65 Each resistivity layer is emitted as a vertical LINESTRING Z between 66 the top and bottom elevations of that layer: 67 68 z_top = z - depth_top 69 z_bot = z - depth_bottom 70 layer_wkt = f'LINESTRING Z ({x} {y} {z_top}, {x} {y} {z_bot})' 71 72 For TEMImager data the depths are accumulated from the Thick_* 73 columns. For Aarhus Workbench data the explicit DEP_TOP_* and 74 DEP_BOT_* columns are used when present. Rendered side by side along 75 a survey line, the stacked line segments form a fence diagram 76 coloured by resistivity. 77 78 TEM Loader targets QGIS 3.40 or later, and works on Windows, MacOS, 79 and Linux. 80 81 Source and issue tracker: [3]https://gitlab.com/qgeomodel/qgis-tem-loader. 82 83 If something does not work, or the loader rejects a file it should 84 handle, please [4]send me an email. 85 86 Examples: 87 - sTEM data from Kenya: https://andersdamsgaard.dk/img/tem-loader.png 88 - tTEM data from Denmark: https://andersdamsgaard.dk/img/tem-loader2.png 89 90 References: 91 92 [1] mailto:andam@geus.dk 93 [2] https://www.ogc.org/standard/sfa/ 94 [3] https://gitlab.com/qgeomodel/qgis-tem-loader 95 [4] mailto:andam@geus.dk