[gdal-dev] Dealing with "default" TOWGS84 values
Stephen Woodbridge
stephenwoodbridge37 at gmail.com
Tue Mar 31 08:48:18 PDT 2020
Even,
Would it make sense to add an option to GDAL like -ignore-bound-towgs84
or -use-bound-towgs84 depending on what the default behavior is set to?
This would allow the user to choose which is best for their data.
-Steve W
On 3/31/2020 10:21 AM, Even Rouault wrote:
>
> Hi,
>
> I wanted to get opinions on a topic related to TOWGS84 7-parameter
> transforms. In the GDAL 1.x/2.x & PROJ 4.x/5.x era, having TOWGS84
> values attached to CRS definitions was critical to get correct datum
> transformation.
>
> Now, in the GDAL 3 + PROJ 6.x/7.x era, there are more an annoyance
> than anything else, since they can prevent more accurate
> transformations to be used.
>
> Some data formats such as GeoTIFF files written by GDAL 1.x/2.x encode
> the TOWGS84 value of the CRS definition that was built when importing
> the EPSG dataset. E.g
> TOWGS84[446.448,-125.157,542.06,0.15,0.247,0.842,-20.489] for
> EPSG:27700 OSGB 1936 / British National Grid
>
> In GDAL 3, when such file is read, a BoundCRS object is returned, that
> is a CRS that has a base CRS (potentially with a EPSG code attached.
> e.g EPSG:27700) + the definition of its transformation to WGS84 (which
> corresponds to the transformation with larger area of use). Software
> like QGIS will then use this BoundCRS (since that's what GDAL returns
> for the dataset CRS) when reprojecting to a target CRS, which will
> cause the TOWGS84 parameters from the file to be used (PROJ >= 6 will
> honour the TOWGS84 parameters of a BoundCRS when transforming
> from/into it), rather than potentially more accurate transformations
> (typically grid based transformations) from the base CRS to the target
> CRS.
>
> Whether this behaviour is a bug or a feature, and where this bug
> belongs to, has been a debate in a number of tickets:
>
> https://github.com/OSGeo/gdal/issues/2219
>
> https://github.com/qgis/QGIS/issues/34993
>
> I wanted to have broader opinions regarding if we should do something
> about that, and what.
>
> One possibility would be for GDAL to ignore the TOWGS84 value
> associated with a base CRS if we detect that this TOWGS84 value is the
> default one that was written by GDAL 1.x/2.x for this base CRS, and
> thus to return just the base CRS, letting PROJ figure out all
> potential transformations when transforming to a target CRS. This
> could potentially be the default behaviour, with a configuration
> option that could be set to opt for the current behaviour (that is
> return the BoundCRS). This would have to be implemented per driver
> (logic would be similar). I guess GeoTIFF, GPKG, Spatialite could be
> candidates.
>
> The potential downside of this is if the user relied on those exact
> default TOWGS84 values to be used when reprojecting to WGS84 (or when
> using WGS84 as the pivot)
>
> I'd note that GDAL 3, in the OGRCoordinateTransformation code,
> implements partially this logic, but only in the transformation code
> (not impacting the CRS actually returned by the dataset), and with
> limitations. That is when transforming from/into a BoundCRS whose
> which has a unique Helmert transformation to WGS84 that matches the
> transformation of the BoundCRS, it uses by default only the BaseCRS
> (can be disabled with OSR_CT_USE_DEFAULT_EPSG_TOWGS84=YES). But this
> is for example not sufficient for EPSG:27700, because it has several
> Helmert transformations. So as suggested in
> https://github.com/OSGeo/gdal/issues/2219, a broader fix would be for
> the PROJ database to have a GDAL2 authority that would store the
> TOWGS84 parameters historically used by GDAL 2.
>
> Even
>
> --
>
> Spatialys - Geospatial professional services
>
> http://www.spatialys.com
>
>
> _______________________________________________
> gdal-dev mailing list
> gdal-dev at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/gdal-dev
More information about the gdal-dev
mailing list