1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
.. _xyzgridshift:
================================================================================
Geocentric grid shift
================================================================================
.. versionadded:: 7.0.0
Geocentric translation using a grid shift
+-----------------+-------------------------------------------------------------------+
| **Domain** | 3D |
+-----------------+-------------------------------------------------------------------+
| **Input type** | Cartesian coordinates |
+-----------------+-------------------------------------------------------------------+
| **Output type** | Cartesian coordinates |
+-----------------+-------------------------------------------------------------------+
Perform a geocentric translation by bilinear interpolation of dx, dy, dz
translation values from a grid. The grid is referenced against either the
2D geographic CRS corresponding to the input (or sometimes output) CRS.
This method is described (in French) in :cite:`NTF_88`
and as EPSG operation method code 9655 in :cite:`IOGP2018` (§2.4.4.1.1
France geocentric interpolation).
The translation in the grids are added to the input coordinates in the forward direction,
and subtracted in the reverse direction.
By default (if ``grid_ref=input_crs``), in the forward direction, the input coordinates
are converted to their geographic equivalent to directly read and interpolate from
the grid. In the reverse direction, an iterative method is used to be able to find
the grid locations to read.
If ``grid_ref=output_crs`` is used, then the reverse strategy is applied: iterative
method in the forward direction, and direct read in the reverse direction.
Example
-------------------------------------------------------------------------------
NTF to RGF93 transformation using gr3df97a.tif grid
::
+proj=pipeline
+step +proj=push +v_3
+step +proj=cart +ellps=clrk80ign
+step +proj=xyzgridshift +grids=gr3df97a.tif +grid_ref=output_crs +ellps=GRS80
+step +proj=cart +ellps=GRS80 +inv
+step +proj=pop +v_3
Parameters
################################################################################
The ellipsoid parameters should be the ones consistent with ``grid_ref``.
They are used to perform a geocentric to geographic conversion to find the
translation parameters.
Required
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
.. include:: ../options/ellps.rst
.. option:: +grids=<list>
Comma-separated list of grids to load. If a grid is prefixed by an ``@`` the
grid is considered optional and PROJ will the not complain if the grid is
not available.
Grids are expected to be in GeoTIFF format. If no metadata is provided,
the first, second and third samples are assumed to be the geocentric
translation along X, Y and Z axis respectively, in metres.
Optional
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
.. option:: +grid_ref=input_crs/output_crs
Specify in which CRS the grid is referenced to. The default value is
input_crs. That is the grid is referenced in the geographic CRS corresponding
to the input geocentric CRS.
If output_crs is specified, the grid is referenced in the geographic CRS corresponding
to the output geocentric CRS. This is for example the case for the French
gr3df97a.tif grid converting from NTF to RGF93, but referenced against RGF93.
Thus in the forward direction (NTF->RGF93), an iterative method is used to find
the appropriate shift.
.. option:: +multiplier=<value>
Specify the multiplier to apply to the grid values. Defaults to 1.0
|