[PROJ] Seeking clarification on PROJ support for temporal transformations

Didier Richard Didier.Richard at ign.fr
Wed Aug 28 08:53:55 PDT 2019


Hi,

I've just checked with ITRF team, the mentioned file (http://itrf.ign.fr/doc_ITRF/Transfo-ITRF2014_ITRFs.txt) is up-to-date and correct !

Regards,
--
RICHARD Didier - Chef du Centre de Compétences Technologies des Systèmes d'Information
http://fr.linkedin.com/pub/didier-richard/98/2a3/a8/ - https://www.osgeo.org/member/didier/
IGN/Direction des Sciences et Technologies de l'Information/ENSG Géomatique
6/8 avenue Blaise Pascal - BP Champs-sur-Marne - 77455 MARNE-LA-VALLÉE CEDEX 2
Tél : +33 (0) 1 43 98 83 23


________________________________________
De : PROJ [proj-bounces at lists.osgeo.org] de la part de Kristian Evers [kreve at sdfe.dk]
Envoyé : mercredi 28 août 2019 14:16
À : Even Rouault
Cc : PROJ
Objet : Re: [PROJ] Seeking clarification on PROJ support for temporal transformations

> I believe there's a small mistake in the ITRF2014 file (or the IGN page might
> have been updated in the meantime) for the ITRF2014:ITRF94 entry. It lacks a
> +drz=0.00002 (the ITRF96 entry as well).

Good catch! Originally I entered the parameters manually so it is not a surprise
that I've gotten a few of them wrong.

> Another detail: the pipeline you mention above is from GR96 to ITRF2014, right
> (due to the 'inv' of ITRF2014:ITRF94) ?
> And the last step which I assume is for the northamerica plate motion doesn't
> seem to have any effect as you forced t_obs in the previous step to the
> t_epoch of that step, so the time difference is 0.

Yes. My example was quite sloppy and without context. I just wanted to give
you an idea of how to do it but I should have used a few more minutes to
give a proper example. You are right about the +t_obs parameter. My example
is outdated, this worked with PROJ 5 but since then the +t_obs parameter has
been removed. The first step works though, as you can see here:

>echo 1109816.3447  -1370509.0484  6108938.7008 2019.5 | cct.exe +proj=pipeline +step +init=ITRF2014:NOAM +t_epoch=1996.623
 1109815.8649  -1370509.0724  6108938.7826     2019.5000

This used to work with my example from the previous mail since the +t_obs
parameter did not change the t component of a coordinate.

A better approach here would be to have an operation than can change
the t component as part of the plate motion step. If I remember correctly
something like that is already present in the EPSG database so it should
just be a matter of implementing that.

/Kristian

-----Original Message-----
From: Even Rouault <even.rouault at spatialys.com>
Sent: 28. august 2019 00:50
To: Kristian Evers <kreve at sdfe.dk>
Cc: Nyall Dawson <nyall.dawson at gmail.com>; PROJ <proj at lists.osgeo.org>
Subject: Re: [PROJ] Seeking clarification on PROJ support for temporal transformations

>
> A global plate motion model is part of ITRF2014 [0]. It comes in the form of
>
 Euler pole rotation parameters. They can be used in a time-dependent
> Helmert Transformation. Some time ago I included all the parameters in the
> ITRF2014 init file [1]. I use them to transform data from ITRF2014 to the
> local Greenlandic frame GR96 (effectively ITRF94 at 1996.623). I've defined a
> pipeline like this:
> proj = pipeline ellps = GRS80
>             step inv init = ITRF2014:ITRF94 t_obs = 1996.623
>             step inv init = ITRF2014:NOAM   t_epoch=1996.623
>

That's interesting !

I believe there's a small mistake in the ITRF2014 file (or the IGN page might
have been updated in the meantime) for the ITRF2014:ITRF94 entry. It lacks a
+drz=0.00002 (the ITRF96 entry as well). I can see it in http://itrf.ign.fr/
doc_ITRF/Transfo-ITRF2014_ITRFs.txt and it is also there in the EPSG dataset:

$ projinfo -s ITRF2014 -t ITRF94 -o PROJ -q
+proj=pipeline +step +proj=axisswap +order=2,1 +step +proj=unitconvert
+xy_in=deg +xy_out=rad +step +proj=cart +ellps=GRS80 +step +inv +proj=helmert
+x=-0.0074 +y=0.0005 +z=0.0628 +rx=0 +ry=0 +rz=-0.00026 +s=-0.0038 +dx=-0.0001
+dy=0.0005 +dz=0.0033 +drx=0 +dry=0 +drz=-2e-05 +ds=-0.00012 +t_epoch=2010
+convention=position_vector +step +inv +proj=cart +ellps=GRS80 +step
+proj=unitconvert +xy_in=rad +xy_out=deg +step +proj=axisswap +order=2,1

(the signs are different due to EPSG having ITRF94 to ITRF2014 natively, and
thus PROJ applying a +inv)

Another detail: the pipeline you mention above is from GR96 to ITRF2014, right
(due to the 'inv' of ITRF2014:ITRF94) ?
And the last step which I assume is for the northamerica plate motion doesn't
seem to have any effect as you forced t_obs in the previous step to the
t_epoch of that step, so the time difference is 0.


$ echo " 2768773.7909  -1598552.2935  5500477.1338" | src/cct +proj=pipeline
+ellps=GRS80 +step +inv +init=ITRF2014:ITRF94 +t_obs=1996.623
 2768773.7710  -1598552.2904  5500477.1757

$ echo " 2768773.7909  -1598552.2935  5500477.1338" | src/cct +proj=pipeline
+ellps=GRS80 +step +inv +init=ITRF2014:ITRF94 +t_obs=1996.623 +step +inv
+init=ITRF2014:NOAM +t_epoch=1996.623
 2768773.7710  -1598552.2904  5500477.1757

Even

--
Spatialys - Geospatial professional services
http://www.spatialys.com
_______________________________________________
PROJ mailing list
PROJ at lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/proj


More information about the PROJ mailing list