<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>qgis-tem-loader, branch HEAD</title>
<subtitle>qgis plugin for loading TEM geophysical inversion XYZ files as 3D objects
</subtitle>
<entry>
<id>c8183a0efe82a168156f724f4f53fb63a43849e0</id>
<published>2026-04-10T07:31:04Z</published>
<updated>2026-04-10T07:31:04Z</updated>
<title type="text">fix(qgis): correct Windows layer file URIs</title>
<link rel="alternate" type="text/html" href="commit/c8183a0efe82a168156f724f4f53fb63a43849e0.html" />
<author>
<name>Anders Damsgaard</name>
<email>anders@adamsgaard.dk</email>
</author>
<content type="text">commit c8183a0efe82a168156f724f4f53fb63a43849e0
parent ca9ee470f4174e301c1d2f2e61c13dd149cc99f2
Author: Anders Damsgaard &lt;anders@adamsgaard.dk&gt;
Date:   Fri, 10 Apr 2026 09:31:04 +0200

fix(qgis): correct Windows layer file URIs

</content>
</entry>
<entry>
<id>ca9ee470f4174e301c1d2f2e61c13dd149cc99f2</id>
<published>2026-04-09T16:48:36Z</published>
<updated>2026-04-09T16:48:36Z</updated>
<title type="text">fix(parser): validate xyz rows and continue batch imports</title>
<link rel="alternate" type="text/html" href="commit/ca9ee470f4174e301c1d2f2e61c13dd149cc99f2.html" />
<author>
<name>Anders Damsgaard</name>
<email>anders@adamsgaard.dk</email>
</author>
<content type="text">commit ca9ee470f4174e301c1d2f2e61c13dd149cc99f2
parent 2f5345071c0eb8d8a91ecec66fbbc7abaf8cda65
Author: Anders Damsgaard &lt;anders@adamsgaard.dk&gt;
Date:   Thu,  9 Apr 2026 18:48:36 +0200

fix(parser): validate xyz rows and continue batch imports

</content>
</entry>
<entry>
<id>2f5345071c0eb8d8a91ecec66fbbc7abaf8cda65</id>
<published>2026-04-09T16:31:24Z</published>
<updated>2026-04-09T16:31:24Z</updated>
<title type="text">feat(parser): support newer workbench xyz exports</title>
<link rel="alternate" type="text/html" href="commit/2f5345071c0eb8d8a91ecec66fbbc7abaf8cda65.html" />
<author>
<name>Anders Damsgaard</name>
<email>anders@adamsgaard.dk</email>
</author>
<content type="text">commit 2f5345071c0eb8d8a91ecec66fbbc7abaf8cda65
parent 6e06b0672898a2cdb99ad95fbdc87d7ebda16054
Author: Anders Damsgaard &lt;anders@adamsgaard.dk&gt;
Date:   Thu,  9 Apr 2026 18:31:24 +0200

feat(parser): support newer workbench xyz exports

</content>
</entry>
<entry>
<id>6e06b0672898a2cdb99ad95fbdc87d7ebda16054</id>
<published>2026-04-09T12:38:47Z</published>
<updated>2026-04-09T12:38:47Z</updated>
<title type="text">fix(crs): create detected EPSG auth ids explicitly during import</title>
<link rel="alternate" type="text/html" href="commit/6e06b0672898a2cdb99ad95fbdc87d7ebda16054.html" />
<author>
<name>Anders Damsgaard</name>
<email>anders@adamsgaard.dk</email>
</author>
<content type="text">commit 6e06b0672898a2cdb99ad95fbdc87d7ebda16054
parent 1d74ee7c867dad73ae16506f0e53cf4422ca21b1
Author: Anders Damsgaard &lt;anders@adamsgaard.dk&gt;
Date:   Thu,  9 Apr 2026 14:38:47 +0200

fix(crs): create detected EPSG auth ids explicitly during import

</content>
</entry>
<entry>
<id>1d74ee7c867dad73ae16506f0e53cf4422ca21b1</id>
<published>2026-04-09T08:56:43Z</published>
<updated>2026-04-09T08:56:43Z</updated>
<title type="text">feat(loader): add Aarhus Workbench xyz support</title>
<link rel="alternate" type="text/html" href="commit/1d74ee7c867dad73ae16506f0e53cf4422ca21b1.html" />
<author>
<name>Anders Damsgaard</name>
<email>anders@adamsgaard.dk</email>
</author>
<content type="text">commit 1d74ee7c867dad73ae16506f0e53cf4422ca21b1
parent 30e7f041787c8d7fc4ef12ae7bc5db151fb5e37f
Author: Anders Damsgaard &lt;anders@adamsgaard.dk&gt;
Date:   Thu,  9 Apr 2026 10:56:43 +0200

feat(loader): add Aarhus Workbench xyz support

</content>
</entry>
<entry>
<id>30e7f041787c8d7fc4ef12ae7bc5db151fb5e37f</id>
<published>2026-04-08T15:24:36Z</published>
<updated>2026-04-08T15:24:36Z</updated>
<title type="text">fix(styles): expand DOI color range</title>
<link rel="alternate" type="text/html" href="commit/30e7f041787c8d7fc4ef12ae7bc5db151fb5e37f.html" />
<author>
<name>Anders Damsgaard</name>
<email>anders@adamsgaard.dk</email>
</author>
<content type="text">commit 30e7f041787c8d7fc4ef12ae7bc5db151fb5e37f
parent a4111ccf9b8799ef37c438a4a7d57e47eac04420
Author: Anders Damsgaard &lt;anders@adamsgaard.dk&gt;
Date:   Wed,  8 Apr 2026 17:24:36 +0200

fix(styles): expand DOI color range

</content>
</entry>
<entry>
<id>a4111ccf9b8799ef37c438a4a7d57e47eac04420</id>
<published>2026-04-08T15:00:56Z</published>
<updated>2026-04-08T15:00:56Z</updated>
<title type="text">fix(qgis): render doi above layers</title>
<link rel="alternate" type="text/html" href="commit/a4111ccf9b8799ef37c438a4a7d57e47eac04420.html" />
<author>
<name>Anders Damsgaard</name>
<email>anders@adamsgaard.dk</email>
</author>
<content type="text">commit a4111ccf9b8799ef37c438a4a7d57e47eac04420
parent 5c136f753c74a0f1955700cceef87720d3222374
Author: Anders Damsgaard &lt;anders@adamsgaard.dk&gt;
Date:   Wed,  8 Apr 2026 17:00:56 +0200

fix(qgis): render doi above layers

</content>
</entry>
<entry>
<id>5c136f753c74a0f1955700cceef87720d3222374</id>
<published>2026-04-08T14:52:51Z</published>
<updated>2026-04-08T14:52:51Z</updated>
<title type="text">fix(parser): support combined stem TEMImage headers</title>
<link rel="alternate" type="text/html" href="commit/5c136f753c74a0f1955700cceef87720d3222374.html" />
<author>
<name>Anders Damsgaard</name>
<email>anders@adamsgaard.dk</email>
</author>
<content type="text">commit 5c136f753c74a0f1955700cceef87720d3222374
parent af100bd9257b2d4316f1e553cdb3a0835b16a873
Author: Anders Damsgaard &lt;anders@adamsgaard.dk&gt;
Date:   Wed,  8 Apr 2026 16:52:51 +0200

fix(parser): support combined stem TEMImage headers

</content>
</entry>
<entry>
<id>af100bd9257b2d4316f1e553cdb3a0835b16a873</id>
<published>2026-04-08T14:34:38Z</published>
<updated>2026-04-08T14:34:38Z</updated>
<title type="text">docs(readme): fix usage and install instructions</title>
<link rel="alternate" type="text/html" href="commit/af100bd9257b2d4316f1e553cdb3a0835b16a873.html" />
<author>
<name>Anders Damsgaard</name>
<email>anders@adamsgaard.dk</email>
</author>
<content type="text">commit af100bd9257b2d4316f1e553cdb3a0835b16a873
parent 9ef05d0deeffa67eae3205ba62f20c98f5b8d2a1
Author: Anders Damsgaard &lt;anders@adamsgaard.dk&gt;
Date:   Wed,  8 Apr 2026 16:34:38 +0200

docs(readme): fix usage and install instructions

</content>
</entry>
<entry>
<id>9ef05d0deeffa67eae3205ba62f20c98f5b8d2a1</id>
<published>2026-04-08T14:30:50Z</published>
<updated>2026-04-08T14:30:50Z</updated>
<title type="text">fix(build): exclude __pycache__ from plugin zip</title>
<link rel="alternate" type="text/html" href="commit/9ef05d0deeffa67eae3205ba62f20c98f5b8d2a1.html" />
<author>
<name>Anders Damsgaard</name>
<email>anders@adamsgaard.dk</email>
</author>
<content type="text">commit 9ef05d0deeffa67eae3205ba62f20c98f5b8d2a1
parent c47ddd78cd3c00298b792c8eb00bff0cd94dbeef
Author: Anders Damsgaard &lt;anders@adamsgaard.dk&gt;
Date:   Wed,  8 Apr 2026 16:30:50 +0200

fix(build): exclude __pycache__ from plugin zip

</content>
</entry>
<entry>
<id>c47ddd78cd3c00298b792c8eb00bff0cd94dbeef</id>
<published>2026-04-08T14:27:39Z</published>
<updated>2026-04-08T14:27:39Z</updated>
<title type="text">ci(gitlab): add test and package pipeline</title>
<link rel="alternate" type="text/html" href="commit/c47ddd78cd3c00298b792c8eb00bff0cd94dbeef.html" />
<author>
<name>Anders Damsgaard</name>
<email>anders@adamsgaard.dk</email>
</author>
<content type="text">commit c47ddd78cd3c00298b792c8eb00bff0cd94dbeef
parent 834aa0808a7905defd0387c9536f14664b3054e0
Author: Anders Damsgaard &lt;anders@adamsgaard.dk&gt;
Date:   Wed,  8 Apr 2026 16:27:39 +0200

ci(gitlab): add test and package pipeline

</content>
</entry>
<entry>
<id>834aa0808a7905defd0387c9536f14664b3054e0</id>
<published>2026-04-08T14:19:28Z</published>
<updated>2026-04-08T14:19:28Z</updated>
<title type="text">test(makefile): add parser test target and rename xyz fixtures</title>
<link rel="alternate" type="text/html" href="commit/834aa0808a7905defd0387c9536f14664b3054e0.html" />
<author>
<name>Anders Damsgaard</name>
<email>anders@adamsgaard.dk</email>
</author>
<content type="text">commit 834aa0808a7905defd0387c9536f14664b3054e0
parent 03eef3d25f81186987a105c11fb8a802578281df
Author: Anders Damsgaard &lt;anders@adamsgaard.dk&gt;
Date:   Wed,  8 Apr 2026 16:19:28 +0200

test(makefile): add parser test target and rename xyz fixtures

</content>
</entry>
<entry>
<id>03eef3d25f81186987a105c11fb8a802578281df</id>
<published>2026-04-08T14:14:03Z</published>
<updated>2026-04-08T14:14:03Z</updated>
<title type="text">chore: remove unpivot-xyz.py from version control</title>
<link rel="alternate" type="text/html" href="commit/03eef3d25f81186987a105c11fb8a802578281df.html" />
<author>
<name>Anders Damsgaard</name>
<email>anders@adamsgaard.dk</email>
</author>
<content type="text">commit 03eef3d25f81186987a105c11fb8a802578281df
parent 1cce419f9b08be2de097acf09b8135c902f3fd92
Author: Anders Damsgaard &lt;anders@adamsgaard.dk&gt;
Date:   Wed,  8 Apr 2026 16:14:03 +0200

chore: remove unpivot-xyz.py from version control

</content>
</entry>
<entry>
<id>1cce419f9b08be2de097acf09b8135c902f3fd92</id>
<published>2026-04-08T14:11:59Z</published>
<updated>2026-04-08T14:11:59Z</updated>
<title type="text">fix(unpivot-xyz): replace pandas parsing with str.split() for format compatibility</title>
<link rel="alternate" type="text/html" href="commit/1cce419f9b08be2de097acf09b8135c902f3fd92.html" />
<author>
<name>Anders Damsgaard</name>
<email>anders@adamsgaard.dk</email>
</author>
<content type="text">commit 1cce419f9b08be2de097acf09b8135c902f3fd92
parent 37d553aaef65e263863fa798ea6666735ec2849d
Author: Anders Damsgaard &lt;anders@adamsgaard.dk&gt;
Date:   Wed,  8 Apr 2026 16:11:59 +0200

fix(unpivot-xyz): replace pandas parsing with str.split() for format compatibility

The pandas sep=&#39;\s+&#39; heuristic for detecting row indices relies on data
rows having one more field than the header. The newer TEMImage format
(v4.0.7.8) omits the project-name prefix in data rows, so data and header
have equal field counts, breaking column detection.

Replace pd.read_csv with the same str.split() approach used in core.py,
which handles both formats via an explicit len(values)==len(headers)+1
check. Also removes the pandas dependency from the standalone script.

</content>
</entry>
<entry>
<id>37d553aaef65e263863fa798ea6666735ec2849d</id>
<published>2026-04-08T13:57:59Z</published>
<updated>2026-04-08T13:57:59Z</updated>
<title type="text">docs(metadata): add additional fields</title>
<link rel="alternate" type="text/html" href="commit/37d553aaef65e263863fa798ea6666735ec2849d.html" />
<author>
<name>Anders Damsgaard</name>
<email>anders@adamsgaard.dk</email>
</author>
<content type="text">commit 37d553aaef65e263863fa798ea6666735ec2849d
parent b89c87f0b053bd9eede7d4049c12f68f35eb6434
Author: Anders Damsgaard &lt;anders@adamsgaard.dk&gt;
Date:   Wed,  8 Apr 2026 15:57:59 +0200

docs(metadata): add additional fields

</content>
</entry>
<entry>
<id>b89c87f0b053bd9eede7d4049c12f68f35eb6434</id>
<published>2026-04-08T13:48:27Z</published>
<updated>2026-04-08T13:48:27Z</updated>
<title type="text">chore(python): remove original conversion script</title>
<link rel="alternate" type="text/html" href="commit/b89c87f0b053bd9eede7d4049c12f68f35eb6434.html" />
<author>
<name>Anders Damsgaard</name>
<email>anders@adamsgaard.dk</email>
</author>
<content type="text">commit b89c87f0b053bd9eede7d4049c12f68f35eb6434
parent eea620f476dc695a1f9180003d6611110ea2c5ab
Author: Anders Damsgaard &lt;anders@adamsgaard.dk&gt;
Date:   Wed,  8 Apr 2026 15:48:27 +0200

chore(python): remove original conversion script

</content>
</entry>
<entry>
<id>eea620f476dc695a1f9180003d6611110ea2c5ab</id>
<published>2026-04-08T13:43:32Z</published>
<updated>2026-04-08T13:43:32Z</updated>
<title type="text">feat: add QGIS plugin wrapping xyz conversion logic</title>
<link rel="alternate" type="text/html" href="commit/eea620f476dc695a1f9180003d6611110ea2c5ab.html" />
<author>
<name>Anders Damsgaard</name>
<email>anders@adamsgaard.dk</email>
</author>
<content type="text">commit eea620f476dc695a1f9180003d6611110ea2c5ab
parent 62608b901a7b342cf11b2258fc67d423b4f0f778
Author: Anders Damsgaard &lt;anders@adamsgaard.dk&gt;
Date:   Wed,  8 Apr 2026 15:43:32 +0200

feat: add QGIS plugin wrapping xyz conversion logic

Introduces the tem_loader QGIS plugin:
- core.py: pandas-free rewrite of unpivot-xyz.py (stdlib csv + pathlib)
- tem_loader.py: plugin class with menu action, file dialog, and
  styled layer loading into a named layer tree group
- metadata.txt, __init__.py: QGIS plugin registry boilerplate
- styles/ moved into the plugin package for bundled distribution
- Makefile: package/clean targets for zip-based install

</content>
</entry>
<entry>
<id>62608b901a7b342cf11b2258fc67d423b4f0f778</id>
<published>2026-04-08T13:17:00Z</published>
<updated>2026-04-08T13:17:00Z</updated>
<title type="text">LICENSE: add LICENSE</title>
<link rel="alternate" type="text/html" href="commit/62608b901a7b342cf11b2258fc67d423b4f0f778.html" />
<author>
<name>Anders Damsgaard</name>
<email>anders@adamsgaard.dk</email>
</author>
<content type="text">commit 62608b901a7b342cf11b2258fc67d423b4f0f778
parent a71c7c4a3a159889faac1cbaa1f2017bad11da1b
Author: Anders Damsgaard &lt;anders@adamsgaard.dk&gt;
Date:   Wed,  8 Apr 2026 15:17:00 +0200

LICENSE: add LICENSE

</content>
</entry>
<entry>
<id>a71c7c4a3a159889faac1cbaa1f2017bad11da1b</id>
<published>2026-04-08T13:16:33Z</published>
<updated>2026-04-08T13:16:33Z</updated>
<title type="text">add style definitions and xyz conversion script</title>
<link rel="alternate" type="text/html" href="commit/a71c7c4a3a159889faac1cbaa1f2017bad11da1b.html" />
<author>
<name>Anders Damsgaard</name>
<email>anders@adamsgaard.dk</email>
</author>
<content type="text">commit a71c7c4a3a159889faac1cbaa1f2017bad11da1b
Author: Anders Damsgaard &lt;anders@adamsgaard.dk&gt;
Date:   Wed,  8 Apr 2026 15:16:33 +0200

add style definitions and xyz conversion script

</content>
</entry>
</feed>
