[PROJ] Transformations in ITRF2020

Even Rouault even.rouault at spatialys.com
Tue Sep 3 08:04:03 PDT 2024


Javier,

Inspecting with "projinfo -k operation PROJ:ITRF2020_TO_ETRS89", you got 
the extent code wrong, it should be EPSG:4755 (using the same one as ETRS89)

The magic in the instantiation of concatenated operations also takes 
care of inserting the appropriate geographic<-->geocentric conversion 
steps. Cf 
https://github.com/OSGeo/PROJ/blob/master/src/iso19111/operation/concatenatedoperation.cpp#L554-L571

Once fixed, "projinfo ETRS89 ITRF2020" (only) reports that transformation.

Even

Le 03/09/2024 à 16:35, Javier Jimenez Shaw a écrit :
> Well. I tried it... and something does not work (probably a silly mistake)
>
> at the end of data/sql/other_transformation_custom.sql I added this:
>
> INSERT INTO "concatenated_operation" 
> VALUES('PROJ','ITRF2020_TO_ETRS89','ITRF2020 to 
> ETRS89','Time-dependent transformation from ITRF2020 to ETRS89 based 
> on EPSG:10573','EPSG','9990','EPSG','4258',0.1,NULL,0);
> INSERT INTO "concatenated_operation_step" 
> VALUES('PROJ','ITRF2020_TO_ETRS89',1,'EPSG','10573');
> INSERT INTO "concatenated_operation_step" 
> VALUES('PROJ','ITRF2020_TO_ETRS89',2,'PROJ','ETRS89_TO_ETRF2020');
> INSERT INTO "usage" VALUES(
>     'PROJ',
>     'ITRF2020_TO_ETRS89_USAGE',
>     'concatenated_operation',
>     'PROJ',
>     'ITRF2020_TO_ETRS89',
>     'EPSG','1289', -- extent
>     'EPSG','1024'  -- unknown
> );
>
> And the transformation is this ballpark:
>
> PROJ_DATA=../data/ ./projinfo EPSG:9990 EPSG:4258 --spatial-test 
> intersects --bbox 7,42,8,43 -o proj
> Candidate operations found: 1
> -------------------------------------
> Operation No. 1:
>
> unknown id, Ballpark geographic offset from ITRF2020 to ETRS89, 
> unknown accuracy, World, has ballpark transformation
>
> PROJ string:
> +proj=noop
>
> While without that change it is this (just showing the first 
> transformation)
>
> PROJ_DATA=../data/ ./projinfo EPSG:9990 EPSG:4258 --spatial-test 
> intersects --bbox 7,42,8,43 -o proj
> Candidate operations found: 4
> -------------------------------------
> Operation No. 1:
>
> unknown id, Conversion from ITRF2020 (geog2D) to ITRF2020 (geocentric) 
> + ITRF2020 to ETRF2020 (2) + Conversion from ETRF2020 (geocentric) to 
> ETRF2020 (geog2D) + Inverse of ETRS89 to ETRF2020, 0.1 m, Europe - 
> onshore and offshore - ETRF extent - approximately 16°W to 33°E and 
> 33°N to 84°N.
>
> PROJ string:
> +proj=pipeline
>   +step +proj=axisswap +order=2,1
>   +step +proj=unitconvert +xy_in=deg +xy_out=rad
>   +step +proj=cart +ellps=GRS80
>   +step +proj=helmert +x=0 +y=0 +z=0 +rx=0.002236 +ry=0.013494 
> +rz=-0.019578 +s=0
>         +dx=0 +dy=0 +dz=0 +drx=8.6e-05 +dry=0.000519 +drz=-0.000753 +ds=0
>         +t_epoch=2015 +convention=position_vector
>   +step +inv +proj=cart +ellps=GRS80
>   +step +proj=unitconvert +xy_in=rad +xy_out=deg
>   +step +proj=axisswap +order=2,1
> ...
>
> Am I doing anything wrong?
> I guessed that EPSG:10573 is a transformation between geocentric 
> systems, while PROJ:ETRS89_TO_ETRF2020 is between geographic 2D. So 
> there could be a missing geocentric->geographic2D in between. But I 
> don't know how to set it.
> It is also surprising that not only it is not finding this 
> concatenated operation, but not finding anyone!
>
> Thanks,
> Javier
>
> On Tue, 3 Sept 2024 at 13:21, Even Rouault 
> <even.rouault at spatialys.com> wrote:
>
>     Javier,
>>
>>     In the DB, the operation registered is ETRS89_TO_ETRF2020, so it
>>     has to be "inverted". However, I do not see any way to indicate
>>     that in the concatenated operation.
>>
>>     For instance, this concatenated operation does not mention that
>>     the second step should be "inverted" (if I understood correctly)
>>         ('NKG', 'ITRF2014_TO_DK', 1, 'EPSG', '8366'), -- ITRF2014 ->
>>     ETRF2014
>>         ('NKG', 'ITRF2014_TO_DK', 2, 'NKG', 'NKG_ETRF14_TO_ETRF2014'),
>>         ('NKG', 'ITRF2014_TO_DK', 3, 'NKG', 'PAR_2020_DK'),
>>         ('NKG', 'ITRF2014_TO_DK', 4, 'NKG', 'DK_2020_INTRAPLATE')
>>
>>     Does it mean that PROJ is finding it automatically?
>     Unfortunately yes, PROJ has to figure out the direction of
>     operations, and it is an awful and error prone job, especially
>     when one of the step is a conversion which lacks explicit source
>     and target CRS. I complained about that to IOGP to ask to add a
>     direction (forward/inverse) column in the coordinate_step table,
>     but I wasn't apparently sufficiently convincing.
>>
>>     Thanks.
>>
>>     PS Should I add the concatenated operation (ITRF2020->ETRS89) to
>>     PROJ in a PR? There are different "paths" from ITRF2020 to
>>     ETRS89. All apparently equivalent, but probably not exactly the same.
>
>     Maybe try first to see if EPSG wants to add it?
>
>
>     -- 
>     http://www.spatialys.com
>     My software is free, but my time generally not.
>
-- 
http://www.spatialys.com
My software is free, but my time generally not.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/proj/attachments/20240903/151bf15a/attachment.htm>


More information about the PROJ mailing list