aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorKristian Evers <kristianevers@gmail.com>2017-12-14 09:19:37 +0100
committerKristian Evers <kristianevers@gmail.com>2017-12-14 09:19:37 +0100
commit8ed970e6856ed3d61ab8cc827899a8cced0591d0 (patch)
tree1a24465ff7d23db71b221b919ace981d099fb876 /test
parent39186c234bd9e61c880fc6f2e9bc484a12de57ff (diff)
downloadPROJ-8ed970e6856ed3d61ab8cc827899a8cced0591d0.tar.gz
PROJ-8ed970e6856ed3d61ab8cc827899a8cced0591d0.zip
Updates to deformation operation.
The initial approach taken in the deformation operation was not geodetically sound. The deformation model grids were required to be indexed in lat/long space with the velocities in the grids being in cartesian space. This is quite confusing and it is not a normal way of making deformation models. The usual approach is to keep everything in the east, north, up, or ENU, space. We adopt that tradition in this commit. The velocities are still applied in cartesian space which requires that the grid-velocities are converted from ENU space to cartesian space. As a consequence of this change the operation is changed so that it only works in full 3D mode. That is, both horizontal and vertical grids need to be applied. The inverse operation is changed slightly to accommodate the now fully 3D transformation. In it's present form it is a modification to the original algorithm that also includes the vertical component in the iteration. This is necessary to get a proper mapping from ENU to cartesian space in the loop. The vertical component is overwritten with the initial z-correction at the end of the loop. This approach is not completely accurate and will introduce errors, especially when doing many roundtrip calculations, but it seems to be good enough for a few roundtrips. The PJ_ENU data type is re-introduced to better communicate the what state the grid corrections are in throughout the code.
Diffstat (limited to 'test')
-rw-r--r--test/gie/deformation.gie54
1 files changed, 7 insertions, 47 deletions
diff --git a/test/gie/deformation.gie b/test/gie/deformation.gie
index ce9aca75..07a8b45e 100644
--- a/test/gie/deformation.gie
+++ b/test/gie/deformation.gie
@@ -12,64 +12,24 @@ The input coordinate is located at lon=60, lam=-160 - somewhere in Alaska.
BEGIN
-------------------------------------------------------------------------------
-Test using only horizontal grid and +tobs parameter
--------------------------------------------------------------------------------
-OPERATION +proj=deformation +xy_grids=alaska +t_epoch=2016.0 +t_obs=2000.0
--------------------------------------------------------------------------------
-TOLERANCE 1 um
-ACCEPT -3004295.5882503074 -1093474.1690603832 5500477.1338251457
-EXPECT -3004295.5888766116 -1093474.1688513425 5500477.1338251457
-# ROUNDTRIP 1000
-
--------------------------------------------------------------------------------
-Test using only vertical grid and +tobs parameter
--------------------------------------------------------------------------------
-OPERATION +proj=deformation +z_grids=egm96_15.gtx +t_epoch=2016.0 +t_obs=2000.0
--------------------------------------------------------------------------------
-TOLERANCE 1 um
-ACCEPT -3004295.5882503074 -1093474.1690603832 5500477.1338251457
-EXPECT -3004295.5882503074 -1093474.1690603832 5500234.008855661
-# ROUNDTRIP 1000
-
--------------------------------------------------------------------------------
Test using both horizontal and vertical grids as well as the +tobs parameter
-------------------------------------------------------------------------------
-OPERATION +proj=deformation +xy_grids=alaska +z_grids=egm96_15.gtx +t_epoch=2016.0 +t_obs=2000.0
+OPERATION +proj=deformation +xy_grids=alaska +z_grids=egm96_15.gtx +t_epoch=2016.0 +t_obs=2000.0 +ellps=GRS80
-------------------------------------------------------------------------------
-TOLERANCE 0.000001 m
+TOLERANCE 0.1 mm
ACCEPT -3004295.5882503074 -1093474.1690603832 5500477.1338251457
-EXPECT -3004295.5888766116 -1093474.1688513425 5500234.008855661
-# ROUNDTRIP 1000
-
--------------------------------------------------------------------------------
-Test using only horizontal grid
--------------------------------------------------------------------------------
-OPERATION +proj=deformation +xy_grids=alaska +t_epoch=2016.0
--------------------------------------------------------------------------------
-TOLERANCE 1 um
-ACCEPT -3004295.5882503074 -1093474.1690603832 5500477.1338251457 2000.0
-EXPECT -3004295.5888766116 -1093474.1688513425 5500477.1338251457 2000.0
-# ROUNDTRIP 1000
-
--------------------------------------------------------------------------------
-Test using only vertical grid
--------------------------------------------------------------------------------
-OPERATION +proj=deformation +z_grids=egm96_15.gtx +t_epoch=2016.0
--------------------------------------------------------------------------------
-TOLERANCE 1 um
-ACCEPT -3004295.5882503074 -1093474.1690603832 5500477.1338251457 2000.0
-EXPECT -3004295.5882503074 -1093474.1690603832 5500234.008855661 2000.0
-# ROUNDTRIP 1000
+EXPECT -3004295.7025 -1093474.2106 5500477.3444
+ROUNDTRIP 5
-------------------------------------------------------------------------------
Test using both horizontal and vertical grids
-------------------------------------------------------------------------------
OPERATION +proj=deformation +xy_grids=alaska +z_grids=egm96_15.gtx +t_epoch=2016.0 +ellps=GRS80
-------------------------------------------------------------------------------
-TOLERANCE 1 um
+TOLERANCE 0.1 mm
ACCEPT -3004295.5882503074 -1093474.1690603832 5500477.1338251457 2000.0
-EXPECT -3004295.5888766116 -1093474.1688513425 5500234.008855661 2000.0
-# ROUNDTRIP 1000
+EXPECT -3004295.7025 -1093474.2106 5500477.3444 2000.0
+ROUNDTRIP 5
END