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).
_______________________________________________
QGIS-User mailing list
[email protected]
List info: https://lists.osgeo.org/mailman/listinfo/qgis-user
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-user

Reply via email to