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