[PROJ] PROJ pipeline for ITRF and plate motion transformations

Trey M Stafford Trey.Stafford at Colorado.EDU
Wed Oct 23 09:22:08 PDT 2024


Hey PROJ community!

I'm a software developer at the National Snow and Ice Data Center (NSIDC). I'm working on a software package that eases comparison between various laser altimeter datasets over polar regions. This project is still a work in progress, but you can take a look here if interested: https://github.com/nsidc/iceflow

This new library is based on prior work from several years ago. I actually asked a question about how to do ITRF transformations back in 2019 that helped out ton: https://lists.osgeo.org/pipermail/proj/2019-May/008509.html. I'm now reviewing and updating our prior work for this new library.

One of the things that this library does is provide the ability to perform ITRF transformation and coordinate-propagation using plate-motion-models, so that datasets collected under different ITRFs and epochs can be directly compared.

We use a `proj` pipeline to do this, and I would greatly appreciate the proj community's review to ensure that we are doing the "right thing" here.

Here is an exmaple of a pipeline that we use to convert from ITRF2005 to ITRF2014, and then perform coordinate propagation via a plate motion model for Antarctica to epoch 2020.0:

+proj=pipeline +ellps=WGS84
+step +proj=unitconvert +xy_in=deg +xy_out=rad
+step +proj=latlon
+step +proj=cart
+step +inv +init=ITRF2014:ITRF2005
+step +init=ITRF2014:ANTA +t_epoch=2020.0
+step +inv +proj=cart
+step +proj=unitconvert +xy_in=rad +xy_out=deg

In practice, here is an example of doing a transformation for a single point using this pipeline w/ `cct`:

$ echo "-102.29021699999998 -75.159033 136.42799377441406 2009.8571" | cct -v -d 14 +proj=pipeline +ellps=WGS84 +step +proj=unitconvert +xy_in=deg +xy_out=rad +step +proj=latlon +step +proj=cart +step +inv +init=ITRF2014:ITRF2005 +step +init=ITRF2014:ANTA +t_epoch=2020.0 +step +inv +proj=cart +step +proj=unitconvert +xy_in=rad +xy_out=deg
-102.29022288281413  -75.15903346722915  136.42044201772660     2009.8571

I've been reviewing each of the steps in this pipeline and was unsure about a couple of things, and in particular about how we construct our plate motion model step ("+step +init=ITRF2014:ANTA +t_epoch=2020.0").

* Is the unit conversion from degrees-radians necessary, or a best practice? In my testing, it seems like I can exclude the unitconvert steps and get the same answers. The documentation for the  conversion to cartesian coordinates and the helmert transformation indicate that geodetic coordinates are required (e.g., https://proj.org/en/9.5/operations/transformations/helmert.html), but nothing about the need for the coordinates to be in radians. I'm guessing that any necessary unit conversions are happening under the hood, (I opened this issue the other day that hints at this https://github.com/OSGeo/PROJ/issues/4283#issuecomment-2427639011).

* Does the "+step +init=ITRF2014:ANTA +t_epoch=2020.0" step, which performs the coordinate propagation via plate motion model for Antarctica, look correct? Under what conditions should we apply a `+inv` here? I am asking because, when we originally implemented this step, we had included that operation. I think this was a mistake, but looking back at this thread has me wondering about it: https://lists.osgeo.org/pipermail/proj/2022-February/010530.html. Even says:

apply the ITRF2014:NOAM model using a target epoch of 2010 (hence the +inv, as naturally the transformation would use +t_epoch as the "source") for a point at observation epoch of 2022.1.

Is this just for the case where we go "back in time" from a more recent observation epoch to an earlier target epcoh, in this case 2022.1 -> 2010? If that's the case, the example above would be correct (it omits the `+inv` because we're going from on observation date of 2009.8 to a later target epoch of 2020.0).

I appreciate the community's review and any insights or concerns that you may have! And please let me know if there is any additional context or information I can provide.

Thanks,

Trey Stafford

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/proj/attachments/20241023/3ee9c2e7/attachment.htm>


More information about the PROJ mailing list