Opened 6 months ago

Last modified 3 months ago

#5735 new defect

ST_TRANSFORM uses Helmert transformation instead of NTV2 grid (SRID's : 3812 <->31370)

Reported by: martinvdb Owned by: rouault
Priority: medium Milestone: PostGIS 3.4.4
Component: postgis Version: 3.4.x
Keywords: ST_TRANSFORM Belgium NTV2 Cc: martinvdb

Description

When I want to transform coordinates of objects stored in Lambert72 (SRID : 31370) to Lambert2008 SRID : 3812), the ST_TRANSFORM function uses the Helmert transformation. However there is a more precise trasformation using the NTV2 grid. I managed to create that transformation using the new ST_TRANSFORMPIPELINE. However, when I try this transformation in PROJ, the default transformation is the most precise one using the NTV2 grid. My questions are :

Why ST_TRANSFORM still use this old unprecise method? Can I change the behavior of the ST_TRANSFORM to perform the transformation using the NTV2 grid?

Change History (4)

comment:1 by martinvdb, 6 months ago

Owner: changed from pramsey to rouault

comment:2 by rouault, 6 months ago

@martinvdb Can you post an example (using for example just a point) of the ST_Transform() invokation you tried, what you got and what you expected as result?

comment:3 by martinvdb, 5 months ago

@rouault

Sorry it took me so long to reply. Yes of course, here is an example of the problem : We have our reference dataset which is : Coordinates in EPSG 31370 : X = 156681.404 ; Y = 238403.825 Coordinates IS EPSG 3812 : X = 656673.068 ; Y = 738404.595

When I use "ST_AsText(ST_Transform(ST_SetSRID(ST_MakePoint(156681.404,238403.825), 31370), 3812));" I get, on postgreSQL/postGIS : POINT(656672.8903371155 738404.4813479027)

When I use "echo 156681.404 238403.825 | cs2cs epsg:31370 +to epsg:3812 -d 3 —only-best=yes" I get on PROJ : 656673.067 738404.595 Proj_info returns that the best transformation is the one using the NTV2 grid

comment:4 by pramsey, 3 months ago

Milestone: PostGIS 3.4.3PostGIS 3.4.4
Note: See TracTickets for help on using tickets.