[Qgis-user] Coordinate transformations

Andrea Giudiceandrea andreaerdna at libero.it
Sun Feb 22 09:47:52 PST 2026


Hi Antonio,
first of all I suggest you to read the chapter 6 of the QGIS Desktop 
User Guide, and in particular chapter 6.6 [1].

Generally speaking, QGIS uses a database of possible datum 
transformation parameters that is taken from the EPSG.org registry with 
some customisation added.
When CRSs with different datums are involved and they have multiple 
possible transformation parameters available in such database, then a 
dialog window is displayed so that the user can choose the preferred 
transformation operations between the two CRSs. Otherwise the user can 
autonomously choose to set a preferred transformation between two CRSs

Such preferred transformation can be stored in 
Project->Properties->Transformation-Datum Transformations (only for the 
current project) or in Settings->Options->Coordinate Transforms->Default 
Datum Transformations (for the current QGIS user profile).

If no choice is made by the user, the first preferred one (displayed in 
green in the Select Datum Transformation dialog window) is used.

Such default/preferred transformation is used by QGIS for both the 
on-the-fly reprojection and the Export -> Save Layer as...

If you use the Reproject layer processing algorithm you can reproject 
the layer selecting on the available transformation available.

Now... the CRSs with e.g. EPSG:23033 and EPSG:25833 (or EPSG:6708 or 
EPSG:3065) have different datums.

For example, for EPSG:23033 to EPSG:25833 there are 3 different 
transformation available: two have a datum conversion operation of type 
Helmert with 7 parameters, the third is a "ballpark" transformation 
which doesn't account for the datum shift and only account for the 
different ellipsoid parameters.

In your case, QGIS has used the first one, either because you have 
explicitly chosen it or because you haven't chosen any particular 
operation, in order to transform the point point (541000, 4516000) from 
EPSG:23033 to EPSG:25833.

It looks like when you used SpatiaLite and PostGIS to perform the same 
transformation they used the "ballpark" transformation which doesn't 
account for the datum shift and only account for the different ellipsoid 
parameters, instead. Not sure if that is the correct behaviour for such 
tools.

Using QGIS (on-the-fly reprojection, Export -> Save Layer as... and 
Reproject Layer alg) you will obtain the same result you have obtained 
by SpatiaLite and PostGIS just choosing the "ballpark" transformation 
(the third one) between the two CRSs.

For EPSG:23033 to EPSG:3065 or to EPSG:6708, there are 2 different 
transformation available: the preferred one involves the use of an NTv2 
grid shift file which is not publicly available, the second one is the 
"ballpark" transformation.

In your case, QGIS used the "ballpark" transformation as fallback 
because the NTv2 grid shift file is very likely not available in your 
system.

Not sure which kind of transformation used PostGIS and SpatiaLite in 
such case...

Anyway, that said - hoping I've been clear about how QGIS works - I 
would point out that none of the operation available for the EPSG:23033 
to EPSG:25833 (please also read [2] about the CRSs to use for Italy) 
transformations is correct for the Italian territory.

To perform an officially correct transformation between the datums 
ROMA40, ED50, IGM95 = ETRS89/ETRF89 and RDN2008 = ETRS89/ETRF2000 2008.0 
for the Italian territory with the maximum precision, you need to use 
specific NTv2 grid shift files provided by IGMI [3].

Alternatively, you could use (only for transformations between ROMA40, 
ED50 and IGM95 = ETRS89/ETRF89) unofficial NTv2 grid shift files 
provided by a local administration [4] without any guarantee of correctness.

Another alternative is to use the Verto Online tool [5] provided by IGMI.

For example, the officially correct coordinates corresponding to point 
541000, 4516000 EPSG:23033 are:
- 540932.206, 4515807.111 EPSG:3065 (which is considered the same as 
ESPG:25833 in Italy)
- 540932.232, 4515807.180 EPSG:6708

[1] 
https://docs.qgis.org/3.40/en/docs/user_manual/working_with_projections/working_with_projections.html#datum-transformations
[2] https://www.igmi.org/++theme++igm/pdf/nuova_nota_EPSG.pdf
[3] https://www.igmi.org/
[4] 
https://www.provincia.agrigento.it/flex/cm/pages/ServeBLOB.php/L/IT/IDPagina/309
[5] 
https://www.igmi.org/it/descrizione-prodotti/elementi-geodetici-1/verto-on-line

> Antonio Valanzano anvalanz at gmail.com
> Sat Feb 21 07:43:21 PST 2026

> I have tried to transform the coordinates of a single point (541000,
> 4516000) with epsg:23033 into 2 other coordinate systems (epsg:25833 e
> 6708).
> 
> I have done these transformations using 2 different methods: DB Manager
> (with an sql script)  and export layer.
> 
> However the results of these transformations are different.
> I know that DB Manager uses the Spatialite engine for processing the sql
> script and the results are the same as those obtained using Spatialite or
> PostGIS (both based on Proj lib).


More information about the QGIS-User mailing list