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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
|
===============================================================================
Test the 4D API handling of cs2cs style transformation options.
These tests are mostly based on the same material as those in
more_builtins.gie, since we are testing the same kinds of things,
but provided through a different interface.
===============================================================================
<gie>
-------------------------------------------------------------------------------
Test the handling of the +towgs84 parameter
-------------------------------------------------------------------------------
This example is from Lotti Jivall: "Simplified transformations from
ITRF2008/IGS08 to ETRS89 for maritime applications". The original
XYZ data (cf. more_builtins.gie) have been transformed to LPZ using
this command: echo x_val y_val z_val | cct -It0 proj=cart ellps=GRS80 --
NOTE: Here, the ellipsoid has been swapped to WGS84, to align with
the WGS84 ellipsoid used in the cs2cs emulation introduced by
pj_cs2cs_emulation_setup()
-------------------------------------------------------------------------------
operation proj=latlong ellps=WGS84
towgs84 = 0.676780, 0.654950, -0.528270,
-0.022742, 0.012667, 0.022704, -0.010700
-------------------------------------------------------------------------------
tolerance 0.05 mm
direction forward
accept 13.4999969828397 54.9999995493206 -0.6034
expect 13.4999906103972 54.9999957469562 -0.6374
direction inverse
accept 13.4999906103972 54.9999957469562 -0.6374
expect 13.4999969828397 54.9999995493206 -0.6034
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
This example is a random point, transformed from ED50 to ETRS89 using KMStrans2.
NOTE: Signs swapped wrt. KMStrans2, which apparently uses frame rotation.
-------------------------------------------------------------------------------
operation proj=latlong ellps=intl
towgs84 = 081.07030, 089.36030, 115.75260,
000.48488, 000.02436, 000.41321, 0.540645
-------------------------------------------------------------------------------
tolerance 0.1 mm
# echo SWAPPED and trimmed - expect succcess
# accept 16.819999997 55.170000002 61.0
accept 16.82 55.17 61.0
expect 16.8210462130 55.1705688946 29.0317
-------------------------------------------------------------------------------
This commented-out version of the example above was used to detect the sign
discrepancy between KMSTrans2 and PROJ.
-------------------------------------------------------------------------------
operation proj=latlong ellps=intl
towgs84 = -081.07030, -089.36030, -115.75260,
-000.48488, -000.02436, -000.41321, -0.540645
-------------------------------------------------------------------------------
# echo NOT SWAPPED - Expect failure
# accept 16.8210462130 55.1705688946 29.0317
# expect 16.819999997 55.170000002 61.0
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
operation proj=latlong nadgrids=nzgd2kgrid0005.gsb ellps=GRS80
-------------------------------------------------------------------------------
tolerance 1 nm
ignore pjd_err_failed_to_load_grid
accept 173 -45 0 0
expect 172.999892181021551 -45.001620431954613 0 0
direction inverse
accept 172.999892181021551 -45.001620431954613 0 0
expect 173 -45 0 0
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
operation proj=latlong geoidgrids=egm96_15.gtx ellps=GRS80
-------------------------------------------------------------------------------
tolerance 15 cm # lax tolerance due to widespread bad egm96 file
ignore pjd_err_failed_to_load_grid
accept 12.5 55.5 0
expect 12.5 55.5 -36.0213
direction inverse
accept 12.5 55.5 -36.0213
expect 12.5 55.5 0
-------------------------------------------------------------------------------
operation proj=merc geoidgrids=egm96_15.gtx ellps=GRS80
-------------------------------------------------------------------------------
tolerance 0.1 mm
ignore pjd_err_failed_to_load_grid
accept 12.5 55.5 0
expect 1391493.63492 7424275.19462 -36.0213
direction inverse
accept 1391493.63492 7424275.19462 -36.0213
expect 12.5 55.5 0
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Same as the two above, but also do axis swapping.
-------------------------------------------------------------------------------
operation proj=latlong geoidgrids=egm96_15.gtx axis=neu ellps=GRS80
-------------------------------------------------------------------------------
tolerance 15 cm # lax tolerance due to widely distributed, bad egm96 file
ignore pjd_err_failed_to_load_grid
accept 12.5 55.5 0
expect 55.5 12.5 -36.0213
direction inverse
accept 55.5 12.5 -36.0213
expect 12.5 55.5 0
-------------------------------------------------------------------------------
operation proj=latlong geoidgrids=egm96_15.gtx axis=dne ellps=GRS80
-------------------------------------------------------------------------------
tolerance 15 cm # lax tolerance due to widely distributed, bad egm96 file
ignore pjd_err_failed_to_load_grid
accept 12.5 55.5 0
expect 36.0213 55.5 12.5
direction inverse
accept 36.0213 55.5 12.5
expect 12.5 55.5 0
-------------------------------------------------------------------------------
operation proj=merc geoidgrids=egm96_15.gtx ellps=GRS80
-------------------------------------------------------------------------------
tolerance 0.1 mm
ignore pjd_err_failed_to_load_grid
accept 12.5 55.5 0
expect 1391493.63492 7424275.19462 -36.0213
direction inverse
accept 1391493.63492 7424275.19462 -36.0213
expect 12.5 55.5 0
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Some more complex axis swapping.
-------------------------------------------------------------------------------
operation proj=latlong geoidgrids=egm96_15.gtx axis=nue ellps=GRS80
-------------------------------------------------------------------------------
tolerance 15 cm # lax tolerance due to widely distributed, bad egm96 file
ignore pjd_err_failed_to_load_grid
accept 12.5 55.5 0
expect 55.5 -36.0213 12.5
direction inverse
accept 55.5 -36.0213 12.5
expect 12.5 55.5 0
-------------------------------------------------------------------------------
operation proj=merc geoidgrids=egm96_15.gtx axis=sue ellps=GRS80
-------------------------------------------------------------------------------
tolerance 15 cm
ignore pjd_err_failed_to_load_grid
accept 12.5 55.5 0
expect -7424275.1946 -36.0213 1391493.6349 0.0000
direction inverse
accept -7424275.1946 -36.0213 1391493.6349 0.0000
expect 12.5 55.5 0
-------------------------------------------------------------------------------
</gie>
|