diff options
Diffstat (limited to 'test/gie/more_builtins.gie')
| -rw-r--r-- | test/gie/more_builtins.gie | 264 |
1 files changed, 264 insertions, 0 deletions
diff --git a/test/gie/more_builtins.gie b/test/gie/more_builtins.gie new file mode 100644 index 00000000..1e3ce185 --- /dev/null +++ b/test/gie/more_builtins.gie @@ -0,0 +1,264 @@ + +=============================================================================== + +Various test material, mostly converted from selftest entries in PJ_xxx.c + +Contrary to the material in builtins.gie, this material is handwritten and +intends to exercise corner cases. + +=============================================================================== + + +BEGIN + +------------------------------------------------------------------------------- +Two ob_tran tests from nad/testvarious +------------------------------------------------------------------------------- +operation +proj=ob_tran +o_proj=moll +R=6378137.0 +o_lon_p=0 +o_lat_p=0 +lon_0=180 +------------------------------------------------------------------------------- +tolerance 1 mm +direction inverse + +accept 300000 400000 0 0 +expect -42.7562158333 85.5911341667 0 0 + +direction forward + +accept 10 20 0 0 +expect -1384841.18787 7581707.88240 0 0 +------------------------------------------------------------------------------- + + + + + +------------------------------------------------------------------------------- +Two tests from PJ_molodensky.c +------------------------------------------------------------------------------- +operation proj=molodensky a=6378160 rf=298.25 \ + da=-23 df=-8.120449e-8 dx=-134 dy=-48 dz=149 \ + abridged +------------------------------------------------------------------------------- +tolerance 2 m + +accept 144.9667 -37.8 50 0 +expect 144.968 -37.79848 46.378 0 + +roundtrip 100 1 m +------------------------------------------------------------------------------- +Same thing once more, but this time unabridged +------------------------------------------------------------------------------- +operation proj=molodensky a=6378160 rf=298.25 \ + da=-23 df=-8.120449e-8 dx=-134 dy=-48 dz=149 +------------------------------------------------------------------------------- +tolerance 2 m + +accept 144.9667 -37.8 50 0 +expect 144.968 -37.79848 46.378 0 + +roundtrip 100 1 m +------------------------------------------------------------------------------- + + + + + +------------------------------------------------------------------------------- +Some tests from PJ_pipeline.c +------------------------------------------------------------------------------- +Forward-reverse geo->utm->geo +------------------------------------------------------------------------------- +operation proj=pipeline zone=32 step \ + proj=utm ellps=GRS80 step \ + proj=utm ellps=GRS80 inv +------------------------------------------------------------------------------- +tolerance 0.1 mm + +accept 12 55 0 0 +expect 12 55 0 0 + +Now the inverse direction (still same result: the pipeline is symmetrical) + +direction inverse +expect 12 55 0 0 +------------------------------------------------------------------------------- +And now the back-to-back situation utm->geo->utm +------------------------------------------------------------------------------- +operation proj=pipeline zone=32 ellps=GRS80 step \ + proj=utm inv step \ + proj=utm +------------------------------------------------------------------------------- +accept 691875.63214 6098907.82501 0 0 +expect 691875.63214 6098907.82501 0 0 +direction inverse +expect 691875.63214 6098907.82501 0 0 +------------------------------------------------------------------------------- +Test a corner case: A rather pointless one-step pipeline geo->utm +------------------------------------------------------------------------------- +operation proj=pipeline step proj=utm zone=32 ellps=GRS80 +------------------------------------------------------------------------------- +accept 12 55 0 0 +expect 691875.63214 6098907.82501 0 0 +direction inverse +accept 691875.63214 6098907.82501 0 0 +expect 12 55 0 0 +------------------------------------------------------------------------------- +Finally test a pipeline with more than one init step +------------------------------------------------------------------------------- +operation proj=pipeline step \ + init=epsg:25832 inv step \ + init=epsg:25833 step \ + init=epsg:25833 inv step \ + init=epsg:25832 +------------------------------------------------------------------------------- +accept 691875.63214 6098907.82501 0 0 +expect 691875.63214 6098907.82501 0 0 +direction inverse +accept 12 55 0 0 +expect 12 55 0 0 + + + + + +------------------------------------------------------------------------------- +Some tests from PJ_vgridshift.c +------------------------------------------------------------------------------- +operation proj=vgridshift grids=egm96_15.gtx ellps=GRS80 +------------------------------------------------------------------------------- +Appears there is a difference between the egm96_15.gtx distributed by OSGeo4W, +and the one from http://download.osgeo.org/proj/vdatum/egm96_15/egm96_15.gtx +N(12.5, 55.5) = -36.021305084228515625 (download.osgeo.org) +N(12.5, 55.5) = -35.880001068115234000 (OSGeo4W) +This is annoying, but must be handled elsewhere. We jump through the hoop by +setting a very lax tolerance. + +tolerance 15 cm +accept 12.5 55.5 0 0 +expect 12.5 55.5 -36.021305084228516 0 + +roundtrip 100 1 nm +------------------------------------------------------------------------------- +Fail on purpose: +grids parameter is mandatory +operation proj=vgridshift +expect failure + +Fail on purpose: open non-existing grid +operation proj=vgridshift grids=nonexistinggrid.gtx +expect failure + + + + + +------------------------------------------------------------------------------- +Some tests from PJ_hgridshift.c +------------------------------------------------------------------------------- +operation proj=hgridshift +grids=nzgd2kgrid0005.gsb ellps=GRS80 +------------------------------------------------------------------------------- +tolerance 1 nm +accept 173 -45 0 0 +roundtrip 100 +------------------------------------------------------------------------------- +expect 172.999892181021551 -45.001620431954613 0 0 +direction inverse +accept 172.999892181021551 -45.001620431954613 0 0 +expect 173 -45 0 0 +------------------------------------------------------------------------------- +Fail on purpose: +grids parameter is mandatory: +operation proj=hgridshift +expect failure + +Fail on purpose: open non-existing grid: +operation proj=hgridshift grids=@nonexistinggrid.gsb,anothernonexistinggrid.gsb +expect failure +------------------------------------------------------------------------------- + + + + +------------------------------------------------------------------------------- +A number of tests from PJ_helmert.c +------------------------------------------------------------------------------- +This example is from Lotti Jivall: "Simplified transformations from +ITRF2008/IGS08 to ETRS89 for maritime applications" +------------------------------------------------------------------------------- +operation proj=helmert ellps=GRS80 \ + x=0.67678 y=0.65495 z=-0.52827 \ + rx=-0.022742 ry=0.012667 rz=0.022704 s=-0.01070 +------------------------------------------------------------------------------- +tolerance 1 um +accept 3565285.00000000 855949.00000000 5201383.00000000 +expect 3565285.41342351 855948.67986759 5201382.72939791 +------------------------------------------------------------------------------- +This example is a random point, transformed from ED50 to ETRS89 using KMStrans2 +------------------------------------------------------------------------------- +operation proj=helmert ellps=GRS80 \ + x=-81.0703 y=-89.3603 z=-115.7526 \ + rx=-0.48488 ry=-0.02436 rz=-0.41321 s=-0.540645 +------------------------------------------------------------------------------- +tolerance 1 um +accept 3494994.30120000 1056601.97250000 5212382.16660000 +expect 3494909.84026368 1056506.78938633 5212265.66699761 +------------------------------------------------------------------------------- +This example is a coordinate from the geodetic observatory in Onsala, +Sweden transformed from ITRF2000 @ 2017.0 to ITRF93 @ 2017.0. + +The test coordinate was transformed using GNSStrans, using transformation +parameters published by ITRF: ftp://itrf.ensg.ign.fr/pub/itrf/ITRF.TP +------------------------------------------------------------------------------- +operation proj=helmert ellps=GRS80 \ + x=0.0127 y=0.0065 z=-0.0209 s=0.00195 \ + dx=-0.0029 dy=-0.0002 dz=-0.0006 ds=0.00001 \ + rx=-0.00039 ry=0.00080 rz=-0.00114 \ + drx=-0.00011 dry=-0.00019 drz=0.00007 \ + epoch=1988.0 tobs=2017.0 transpose +------------------------------------------------------------------------------- +tolerance 0.03 mm +accept 3370658.37800 711877.31400 5349787.08600 2017.0 # ITRF2000@2017.0 +expect 3370658.18890 711877.42370 5349787.12430 2017.0 # ITRF93@2017.0 +------------------------------------------------------------------------------- +This example is from "A mathematical relationship between NAD27 and NAD83 (91) +State Plane coordinates in Southeastern Wisconsin": +http://www.sewrpc.org/SEWRPCFiles/Publications/TechRep/tr-034-Mathematical-Relationship-Between-NAD27-and-NAD83-91-State-Plane-Coordinates-Southeastern-Wisconsin.pdf + +The test data is taken from p. 29. Here we are using point 203 and converting it +from NAD27 (ft) -> NAD83 (m). The paper reports a difference of 0.0014 m from +measured to computed coordinates, hence the test tolerance is set accordingly. +------------------------------------------------------------------------------- +operation proj=helmert ellps=GRS80 \ + x=-9597.3572 y=.6112 \ + s=0.304794780637 theta=-1.244048 +------------------------------------------------------------------------------- +tolerance 1 mm +accept 2546506.957 542256.609 0 +expect 766563.675 165282.277 0 +------------------------------------------------------------------------------- +Finally test the 4D-capabilities of the proj.h API, especially that the +rotation matrix is updated when necessary. + +Test coordinates from GNSStrans. +------------------------------------------------------------------------------- +operation proj=helmert ellps=GRS80 \ + x=0.01270 y=0.00650 z=-0.0209 s=0.00195 \ + dx=-0.0029 dy=-0.0002 dz=-0.0006 ds=0.00001 \ + rx=-0.00039 ry=0.00080 rz=-0.00114 \ + drx=-0.00011 dry=-0.00019 drz=0.00007 \ + epoch=1988.0 transpose +------------------------------------------------------------------------------- +tolerance 0.1 mm +accept 3370658.378 711877.314 5349787.086 2017.0 +expect 3370658.18890 711877.42370 5349787.12430 2017.0 +accept 3370658.378 711877.314 5349787.086 2018.0 +expect 3370658.18087 711877.42750 5349787.12648 2018.0 + + + +------------------------------------------------------------------------------- +builtins +------------------------------------------------------------------------------- + + + +END + |
