[PROJ] Proposal for a geodetic deformation model format
Even Rouault
even.rouault at spatialys.com
Thu Dec 5 16:17:41 PST 2019
Chris,
> I hadn't realised PROJ would be working in a geocentric space.
I just pointed at the particular working of the +proj=deformation
transformation. Other transformations such as the +proj=hgridshift operate in
the geographic coordinate space directly.
> What I was thinking when I suggested degrees would be more efficient was
> that had converted coordinates to geographic lon/lat/ellipsoidal height (as
> you need lat/lon to interpolate), then applying a correction to the lon/lat
> coordiantes in metres requires (a little) more calculation than applying
> corrections in degrees. This could make more difference for an inverse
> calculation, as if you are iterating you could end up converting multiple
> times between geocentric and geographic (and geocentric to geographic is
> itself iterative).
>
> However if we are applying the correction to geocentric coordinates then
> this doesn't apply.
That's probably mostly a matter of taste to decide if the input/output of an
operator is geographic or geocentric coordinates. Actually, this is also
related on how that operator relates to others you might want to chain with
it. Looking at the examples of
https://proj.org/operations/transformations/deformation.html , the
proj=deformation operation is surrounded by 2 proj=helmert, which do operate
in the geocentric coordinate space, so that makes a lot of sense to have
proj=deformation also operate on it (even if as an implementation detail it
needs to do an internal geocentric->geographic conversion to retrieve grid
values)
(I'm guessing in Kristian's mind. Hopefully correctly !)
> No - I've tried to make this clearer in the document. The proposal is to
> use the same approach as eg NTv2. A single component (eg deformation due
> to an earthquake) may be defined by multiple grids. At any location only
> one of those grids will apply.
>
> However the deformation model as a whole has multiple components (eg
> secular velocity, earthquake 1, earthquake 2, ...) and these are evaluated
> separately and summed together.
OK, so a line in your CSV file can be a file with potentially nested grids and
when using that line, you use the "best" grid.
But you may find another grid in another line of the CSV file for the point
considered, and you'll also apply it (depending on time criteria)
Am I correct ?
> > - I'm still having issues to grasp the practical implications of the
> > "reverse step". Is my understanding correct that a coordinate computed
> > for example for
> > NZGD2000 @ 2010.0 with a deformation model of 2019 might potentially
> > change with a deformation model of 2020 ? Should the deformation model
> > used be also captured in the metadata associated with a coordinate? If so,
> > it looks like a change in the deformation model would be better handled
> > by defining a revised version of the datum (but I know you don't want to
> > publish a new NZGD datum every 6 month). I'm super confused... I'm pretty
> > sure we
Looking quickly at
https://www.linz.govt.nz/data/geodetic-system/datums-projections-and-heights/
geodetic-datums/new-zealand-geodetic-datum-2000-nzgd2000/nzgd2000-deformation-
model
and
https://github.com/linz/nzgd2000-deformation-model ,
I now realize that the deformation model is for transformaing between a ITRF
realization and NZGD2000. So the @ epoch qualifier applies to the ITRF
realization, and in principle not to NZGD2000 which, for the sake of its use
in ISO-19111 based modelizations (PROJ for example), is a non-dynamic datum.
Am I correct ?
> > had that discussion already, but I've forgotten the outcome. I'd be very
> > interested in having a concrete example of a workflow of how users are
> > supposed to use such deformation models, and which metadata they are
> > supposed to store to be able to later reprocess their coordinates.
Let me try to come with an hypothetical workflow of a user "playing" with
coordinates.
Let's imagine they captured coordinates in an area that is going to be later
affected by a earthquake. They get their input coordinates in
ITRF96 @ 2018.0 .
Because they need to mix this data in a dataset referenced to NZGD2000, they
use the following transformation:
ITRF96 @ 2018.0 --> NZGD2000 using deformation model 20171201.
Now an earthquake happens at 2018.1 and the 20180701 deformation model is
released to take it into account. They have 2 options to get the updated
NZGD2000 coordinates:
- either they kept their initial coordinates in ITRF96 @ 2018.0 and use the
new deformation model to transform them to the updated NZGD2000
- or they didn't... In that case they must remember they used model 20171201,
to convert back to ITRF96 @ 2018.0 and apply model 20180701. So this means
storing alongside to the NZGD2000 coordinates: the initial ITRF realization +
the coordinate epoch + the deformation model used.
(- or they might also just apply the patch correction if they are clever
enough and use the appropriate tooling )
Right ?
Even
--
Spatialys - Geospatial professional services
http://www.spatialys.com
More information about the PROJ
mailing list