<html><body><div style="font-family: 'verdana'; font-size: 12px; color: #000;"><span style="background-color: #ffffff;">Hi Andrea,</span></div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000;"><span style="background-color: #ffffff;">thanks a lot!</span></div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000;"><span style="background-color: #ffffff;"><br>I did as you told me - imported the data without geometry, created a custom function and used <geometry by expression> (one of my all time favourites, I use it a lot!).</span></div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000;"><span style="background-color: #ffffff;">However, QGIS crashes when firing the command.</span></div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000;"><span style="background-color: #ffffff;">I therefore installed the latest 3.44.7, but it crashes again:</span></div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000;"><span style="background-color: #ffffff;"> </span></div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000;">
<div style="font-family: 'verdana'; font-size: 12px; color: #000;"><span style="font-family: 'courier new', courier;">##################</span></div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000;"><span style="font-family: 'courier new', courier;">## Report Details</span></div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000;"><span style="font-family: 'courier new', courier;">**Python Stack Trace**</span><br><span style="font-family: 'courier new', courier;">```</span><br><span style="font-family: 'courier new', courier;">Windows fatal exception: access violation</span></div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000;"><span style="font-family: 'courier new', courier;">Current thread 0x00003d14 (most recent call first):</span><br><span style="font-family: 'courier new', courier;"> File "C:\PROGRA~1\QGIS34~1.7\apps\Python312\Lib\site-packages\pyproj\crs\crs.py", line 350 in __init__</span><br><span style="font-family: 'courier new', courier;"> self._local.crs = _CRS(self.srs)</span><br><span style="font-family: 'courier new', courier;"> File "C:\PROGRA~1\QGIS34~1.7\apps\Python312\Lib\site-packages\pyproj\crs\crs.py", line 503 in from_user_input</span><br><span style="font-family: 'courier new', courier;"> return cls(value, **kwargs)</span><br><span style="font-family: 'courier new', courier;"> File "C:\PROGRA~1\QGIS34~1.7\apps\Python312\Lib\site-packages\pyproj\transformer.py", line 627 in from_crs</span><br><span style="font-family: 'courier new', courier;"> cstrencode(CRS.from_user_input(crs_from).srs),</span><br><span style="font-family: 'courier new', courier;"> File "C:\Users/RSpielhofer/AppData/Roaming/QGIS/QGIS3\profiles\default/python\expressions\transform_xyz_pyproj.py", line 6 in transform_xyz_pyproj</span><br><span style="font-family: 'courier new', courier;"> transformer = Transformer.from_crs(CRS_from, CRS_to, always_xy=True)</span><br><span style="font-family: 'courier new', courier;"> File "C:\PROGRA~1/QGIS34~1.7/apps/qgis/./python\qgis\core\additions\qgsfunction.py", line 79 in func</span><br><span style="font-family: 'courier new', courier;"> return self.function(*values, **kwvalues)</span></div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000;"><span style="font-family: 'courier new', courier;">Thread 0x000055e8 (most recent call first):</span><br><span style="font-family: 'courier new', courier;"> File "C:\PROGRA~1/QGIS34~1.7/apps/qgis/./python/plugins\processing\ProcessingPlugin.py", line 498 in executeAlgorithm</span><br><span style="font-family: 'courier new', courier;"> dlg.exec()</span><br><span style="font-family: 'courier new', courier;"> File "C:\PROGRA~1/QGIS34~1.7/apps/qgis/./python/plugins\processing\gui\ProcessingToolbox.py", line 272 in executeAlgorithm</span><br><span style="font-family: 'courier new', courier;"> self.executeWithGui.emit(alg.id(), self, self.in_place_mode, False)</span><br><span style="font-family: 'courier new', courier;">```</span></div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000;"><br><span style="font-family: 'courier new', courier;">**Stack Trace**</span></div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000;"><span style="font-family: 'courier new', courier;">```</span></div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000;"><span style="font-family: 'courier new', courier;">osgeo::proj::io::AuthorityFactory::createCoordinateReferenceSystem :</span><br><span style="font-family: 'courier new', courier;">osgeo::proj::io::AuthorityFactory::createCoordinateReferenceSystem :</span><br><span style="font-family: 'courier new', courier;">osgeo::proj::io::createFromUserInput :</span><br><span style="font-family: 'courier new', courier;">osgeo::proj::io::createFromUserInput :</span><br><span style="font-family: 'courier new', courier;">proj_create :</span><br><span style="font-family: 'courier new', courier;">PyObject_Vectorcall :</span><br><span style="font-family: 'courier new', courier;">PyObject_Vectorcall :</span><br><span style="font-family: 'courier new', courier;">PyEval_EvalFrameDefault :</span><br><span style="font-family: 'courier new', courier;">PyFunction_Vectorcall :</span><br><span style="font-family: 'courier new', courier;">PyNumber_Long :</span><br><span style="font-family: 'courier new', courier;">PyNumber_Negative :</span><br><span style="font-family: 'courier new', courier;">PyObject_Call :</span><br><span style="font-family: 'courier new', courier;">PyEval_EvalFrameDefault :</span><br><span style="font-family: 'courier new', courier;">PyFunction_Vectorcall :</span><br><span style="font-family: 'courier new', courier;">PyArg_CheckPositional :</span><br><span style="font-family: 'courier new', courier;">PyObject_Call :</span><br><span style="font-family: 'courier new', courier;">PyObject_Call :</span><br><span style="font-family: 'courier new', courier;">PyInit_sip :</span><br><span style="font-family: 'courier new', courier;">PyInit_sip :</span><br><span style="font-family: 'courier new', courier;">pdal::StreamPointTable::reset :</span><br><span style="font-family: 'courier new', courier;">QgsPresetSchemeColorRamp::clone :</span><br><span style="font-family: 'courier new', courier;">QgsExpressionFunction::run :</span><br><span style="font-family: 'courier new', courier;">QgsPresetSchemeColorRamp::clone :</span><br><span style="font-family: 'courier new', courier;">QgsExpressionNodeFunction::evalNode :</span><br><span style="font-family: 'courier new', courier;">QgsExpressionNode::eval :</span><br><span style="font-family: 'courier new', courier;">QgsExpression::evaluate :</span><br><span style="font-family: 'courier new', courier;">QgsExtractBinaryFieldAlgorithm::tags :</span><br><span style="font-family: 'courier new', courier;">QgsProcessingFeatureBasedAlgorithm::processAlgorithm :</span><br><span style="font-family: 'courier new', courier;">QgsProcessingAlgorithm::runPrepared :</span><br><span style="font-family: 'courier new', courier;">QgsProcessingAlgRunnerTask::run :</span><br><span style="font-family: 'courier new', courier;">pdal::PointView::layout :</span><br><span style="font-family: 'courier new', courier;">QgsTask::start :</span><br><span style="font-family: 'courier new', courier;">QThreadPoolPrivate::reset :</span><br><span style="font-family: 'courier new', courier;">QThread::start :</span><br><span style="font-family: 'courier new', courier;">BaseThreadInitThunk :</span><br><span style="font-family: 'courier new', courier;">RtlUserThreadStart :</span><br><span style="font-family: 'courier new', courier;">```</span></div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000;"><span style="font-family: 'courier new', courier;"> </span></div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000;"><span style="font-family: 'courier new', courier;">**QGIS Info**</span><br><span style="font-family: 'courier new', courier;">QGIS Version: 3.44.7-Solothurn</span><br><span style="font-family: 'courier new', courier;">QGIS code revision: ea262bc5ed8</span><br><span style="font-family: 'courier new', courier;">Compiled against Qt: 5.15.13</span><br><span style="font-family: 'courier new', courier;">Running against Qt: 5.15.13</span><br><span style="font-family: 'courier new', courier;">Compiled against GDAL: 3.12.1</span><br><span style="font-family: 'courier new', courier;">Running against GDAL: 3.12.1</span></div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000;"><span style="font-family: 'courier new', courier;"> </span></div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000;"><span style="font-family: 'courier new', courier;">**System Info**</span><br><span style="font-family: 'courier new', courier;">CPU Type: x86_64</span><br><span style="font-family: 'courier new', courier;">Kernel Type: winnt</span><br><span style="font-family: 'courier new', courier;">Kernel Version: 10.0.26100</span></div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000;"><span style="font-family: 'courier new', courier;"> </span></div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000;"><span style="font-family: 'courier new', courier;"> </span></div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000;"><span style="font-family: verdana, geneva;">I am unsure what causes the crash.</span></div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000;"><span style="font-family: verdana, geneva;"> </span></div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000;"><span style="font-family: verdana, geneva;">Thanks & best regards,</span></div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000;"><span style="font-family: verdana, geneva;">Roland</span></div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000;"><span style="font-family: verdana, geneva;"> </span></div>
</div>
<div id="sub-body-container" style="margin: 10px 5px 5px 10px; padding: 10px 0px 10px 10px; border-left: 2px solid rgb(195, 217, 229);">
<div style="margin: 0px 0px 10px;">
<div><strong>Gesendet: </strong>Samstag, 28. Februar 2026 um 09:43</div>
<div><strong>Von: </strong>"Andrea Giudiceandrea" <andreaerdna@libero.it></div>
<div><strong>An: </strong>qgis-user@lists.osgeo.org</div>
<div><strong>CC: </strong>rspiel@gmx.net</div>
<div><strong>Betreff: </strong>Re: [Qgis-user] Convert geocentric x, y, z to projected coordinates</div>
</div>
> Roland Spielhofer rspiel at gmx.net<br>> Fri Feb 27 04:33:10 PST 2026<br>> I have a set of coordinates as geocentric x, y, z 3D-coordinates in ETRF89 (located in Austria), which should be, if I am not wrong, EPSG:7194.<br>> x y z<br>> 4080019.8005 1202964.0971 4736921.5758<br><br>Hi Roland,<br>according to some issue reports [1] [2], it looks like geocentric <br>to/from geographic transformations are not well handled in QGIS either <br>by the on-the-fly reprojection functionality and by the Reproject layer <br>processing algorithm.<br><br>Anyway, you could perform the transformation directly in QGIS using the <br>pyproj Python module and creating a custom function.<br><br>I suggest you to proceed in the following way:<br><br>- import the delimited text file as an attribute only table ("No geometry")<br>- open the Field Calculator, go to Function Editor<br>- create a new function file named transform_xyz_pyproj and replace the <br>default Python script with the following one [3]:<br><br><br>from qgis.core import *<br>from pyproj import Transformer<br><br>@qgsfunction(group='Custom', referenced_columns=[])<br>def transform_xyz_pyproj(x, y, z, CRS_from, CRS_to):<br>transformer = Transformer.from_crs(CRS_from, CRS_to, always_xy=True)<br>x2, y2, z2 = transformer.transform(x, y, z)<br>return QgsGeometry.fromPoint(QgsPoint(x2, y2, z2))<br><br><br>Now you can use the transform_xyz_pyproj custom function to perform the <br>transformation:<br><br>- open the "Geometry by expression" processing algorithm<br>- set the imported delimited text layer as the Input layer<br>- set Point as geometry output type and "output geometry has z dimension"<br>- set the Geometry expression:<br>transform_xyz_pyproj("x", "y", "z", 'EPSG:7914', 'EPSG:25833')<br>- execute the algorithm<br>- assign the CRS EPSG:25833 to the output layer.<br><br>Regards.<br><br>Andrea Giudiceandrea<br><br><br>[1] <a href="https://github.com/qgis/QGIS/issues/34845" target="_blank" rel="noopener noreferrer">https://github.com/qgis/QGIS/issues/34845</a><br>[2] <a href="https://github.com/qgis/QGIS/issues/53439" target="_blank" rel="noopener noreferrer">https://github.com/qgis/QGIS/issues/53439</a><br>[3] <a href="https://gist.github.com/agiudiceandrea/1d16762512f9d2a214bdbb4ac9666e60" target="_blank" rel="noopener noreferrer">https://gist.github.com/agiudiceandrea/1d16762512f9d2a214bdbb4ac9666e60</a></div></body></html>