{"id":"v001","input":{"lat":90,"lon":0,"height":"100 m"},"expect":{"ok":true,"result.orthometric.value":86.395},"source":"GeographicLib GeoidEval 2.7 with the egm96-15 grid (tools/vectors/gen_geoid_diff.py)","sourceVersion":"egm96-15 (2009-08-29)","tolerance":{"result.orthometric.value":{"abs":5e-05}}}
{"id":"v002","input":{"lat":-90,"lon":0,"height":"100 m"},"expect":{"ok":true,"result.orthometric.value":129.535},"source":"GeographicLib GeoidEval 2.7 with the egm96-15 grid (tools/vectors/gen_geoid_diff.py)","sourceVersion":"egm96-15 (2009-08-29)","tolerance":{"result.orthometric.value":{"abs":5e-05}}}
{"id":"v003","input":{"lat":0,"lon":180,"height":"100 m"},"expect":{"ok":true,"result.orthometric.value":78.8494},"source":"GeographicLib GeoidEval 2.7 with the egm96-15 grid (tools/vectors/gen_geoid_diff.py)","sourceVersion":"egm96-15 (2009-08-29)","tolerance":{"result.orthometric.value":{"abs":5e-05}}}
{"id":"v004","input":{"lat":16.776,"lon":-3.009,"height":"100 m"},"expect":{"ok":true,"result.orthometric.value":71.2921},"source":"GeographicLib GeoidEval 2.7 with the egm96-15 grid (tools/vectors/gen_geoid_diff.py)","sourceVersion":"egm96-15 (2009-08-29)","tolerance":{"result.orthometric.value":{"abs":5e-05}}}
{"id":"v005","input":{"lat":-27.617286627386235,"lon":147.01574368459995,"height":"100 m"},"expect":{"ok":true,"result.orthometric.value":68.4422},"source":"GeographicLib GeoidEval 2.7 with the egm96-15 grid (tools/vectors/gen_geoid_diff.py)","sourceVersion":"egm96-15 (2009-08-29)","tolerance":{"result.orthometric.value":{"abs":5e-05}}}
{"id":"v006","input":{"lat":5.6620454951522845,"lon":-83.09963079350258,"height":"100 m"},"expect":{"ok":true,"result.orthometric.value":90.3328},"source":"GeographicLib GeoidEval 2.7 with the egm96-15 grid (tools/vectors/gen_geoid_diff.py)","sourceVersion":"egm96-15 (2009-08-29)","tolerance":{"result.orthometric.value":{"abs":5e-05}}}
{"id":"v007","input":{"lat":-27.498891972917775,"lon":-151.1376908706491,"height":"100 m"},"expect":{"ok":true,"result.orthometric.value":100.9263},"source":"GeographicLib GeoidEval 2.7 with the egm96-15 grid (tools/vectors/gen_geoid_diff.py)","sourceVersion":"egm96-15 (2009-08-29)","tolerance":{"result.orthometric.value":{"abs":5e-05}}}
{"id":"v008","input":{"lat":-45.72123124623341,"lon":141.89324191680964,"height":"100 m"},"expect":{"ok":true,"result.orthometric.value":116.4002},"source":"GeographicLib GeoidEval 2.7 with the egm96-15 grid (tools/vectors/gen_geoid_diff.py)","sourceVersion":"egm96-15 (2009-08-29)","tolerance":{"result.orthometric.value":{"abs":5e-05}}}
{"id": "v009", "input": {"lat": 90.0, "lon": 0.0, "height": "1000 m"}, "expect": {"ok": true, "result.orthometric.value": 986.395, "result.ellipsoidal.value": 1000.0, "result.geoid_height.value": 13.605}, "source": "h = H + N with N from GeographicLib's GeoidEval on the egm96-15 grid, as captured in core/crates/gp-geodesy/tests/data/egm96_diff.csv", "sourceVersion": "GeographicLib GeoidEval 2.7, egm96-15", "tolerance": {"result.orthometric.value": {"abs": 5e-05}, "result.ellipsoidal.value": {"abs": 1e-09}, "result.geoid_height.value": {"abs": 5e-05}}}
{"id": "v010", "input": {"lat": 16.722641316986, "lon": 71.1186580743059, "height": "-50 m"}, "expect": {"ok": true, "result.orthometric.value": 28.491200000000006, "result.ellipsoidal.value": -50.0, "result.geoid_height.value": -78.4912}, "source": "h = H + N with N from GeographicLib's GeoidEval on the egm96-15 grid, as captured in core/crates/gp-geodesy/tests/data/egm96_diff.csv", "sourceVersion": "GeographicLib GeoidEval 2.7, egm96-15", "tolerance": {"result.orthometric.value": {"abs": 5e-05}, "result.ellipsoidal.value": {"abs": 1e-09}, "result.geoid_height.value": {"abs": 5e-05}}}
{"id": "v011", "input": {"lat": 39.008305677830634, "lon": -96.54616474996511, "height": "3000 m"}, "expect": {"ok": true, "result.orthometric.value": 3030.7252, "result.ellipsoidal.value": 3000.0, "result.geoid_height.value": -30.7252}, "source": "h = H + N with N from GeographicLib's GeoidEval on the egm96-15 grid, as captured in core/crates/gp-geodesy/tests/data/egm96_diff.csv", "sourceVersion": "GeographicLib GeoidEval 2.7, egm96-15", "tolerance": {"result.orthometric.value": {"abs": 5e-05}, "result.ellipsoidal.value": {"abs": 1e-09}, "result.geoid_height.value": {"abs": 5e-05}}}
{"id": "v012", "input": {"lat": -86.29331852942845, "lon": 82.85894634591796, "height": "0 m"}, "expect": {"ok": true, "result.orthometric.value": 21.0196, "result.ellipsoidal.value": 0.0, "result.geoid_height.value": -21.0196}, "source": "h = H + N with N from GeographicLib's GeoidEval on the egm96-15 grid, as captured in core/crates/gp-geodesy/tests/data/egm96_diff.csv", "sourceVersion": "GeographicLib GeoidEval 2.7, egm96-15", "tolerance": {"result.orthometric.value": {"abs": 5e-05}, "result.ellipsoidal.value": {"abs": 1e-09}, "result.geoid_height.value": {"abs": 5e-05}}}
{"id": "v013", "input": {"lat": -79.29797394441202, "lon": -89.71920650610377, "height": "100 m"}, "expect": {"ok": true, "result.orthometric.value": 119.6617, "result.ellipsoidal.value": 100.0, "result.geoid_height.value": -19.6617}, "source": "h = H + N with N from GeographicLib's GeoidEval on the egm96-15 grid, as captured in core/crates/gp-geodesy/tests/data/egm96_diff.csv", "sourceVersion": "GeographicLib GeoidEval 2.7, egm96-15", "tolerance": {"result.orthometric.value": {"abs": 5e-05}, "result.ellipsoidal.value": {"abs": 1e-09}, "result.geoid_height.value": {"abs": 5e-05}}}
{"id": "v014", "input": {"lat": 41.35531383211796, "lon": 101.45088674141721, "height": "250.5 m"}, "expect": {"ok": true, "result.orthometric.value": 304.6263, "result.ellipsoidal.value": 250.5, "result.geoid_height.value": -54.1263}, "source": "h = H + N with N from GeographicLib's GeoidEval on the egm96-15 grid, as captured in core/crates/gp-geodesy/tests/data/egm96_diff.csv", "sourceVersion": "GeographicLib GeoidEval 2.7, egm96-15", "tolerance": {"result.orthometric.value": {"abs": 5e-05}, "result.ellipsoidal.value": {"abs": 1e-09}, "result.geoid_height.value": {"abs": 5e-05}}}
{"id": "v015", "input": {"lat": 27.52968840820955, "lon": 161.85817186848243, "height": "1000 m"}, "expect": {"ok": true, "result.orthometric.value": 996.4219, "result.ellipsoidal.value": 1000.0, "result.geoid_height.value": 3.5781}, "source": "h = H + N with N from GeographicLib's GeoidEval on the egm96-15 grid, as captured in core/crates/gp-geodesy/tests/data/egm96_diff.csv", "sourceVersion": "GeographicLib GeoidEval 2.7, egm96-15", "tolerance": {"result.orthometric.value": {"abs": 5e-05}, "result.ellipsoidal.value": {"abs": 1e-09}, "result.geoid_height.value": {"abs": 5e-05}}}
{"id": "v016", "input": {"lat": 69.85805091046018, "lon": 76.49621781020801, "height": "-50 m"}, "expect": {"ok": true, "result.orthometric.value": -38.9135, "result.ellipsoidal.value": -50.0, "result.geoid_height.value": -11.0865}, "source": "h = H + N with N from GeographicLib's GeoidEval on the egm96-15 grid, as captured in core/crates/gp-geodesy/tests/data/egm96_diff.csv", "sourceVersion": "GeographicLib GeoidEval 2.7, egm96-15", "tolerance": {"result.orthometric.value": {"abs": 5e-05}, "result.ellipsoidal.value": {"abs": 1e-09}, "result.geoid_height.value": {"abs": 5e-05}}}
{"id": "v017", "input": {"lat": 56.83980215430668, "lon": 37.400914207895, "height": "3000 m"}, "expect": {"ok": true, "result.orthometric.value": 2986.2245, "result.ellipsoidal.value": 3000.0, "result.geoid_height.value": 13.7755}, "source": "h = H + N with N from GeographicLib's GeoidEval on the egm96-15 grid, as captured in core/crates/gp-geodesy/tests/data/egm96_diff.csv", "sourceVersion": "GeographicLib GeoidEval 2.7, egm96-15", "tolerance": {"result.orthometric.value": {"abs": 5e-05}, "result.ellipsoidal.value": {"abs": 1e-09}, "result.geoid_height.value": {"abs": 5e-05}}}
{"id": "v018", "input": {"lat": -50.25963715595258, "lon": -18.80037854583847, "height": "0 m"}, "expect": {"ok": true, "result.orthometric.value": -21.209, "result.ellipsoidal.value": 0.0, "result.geoid_height.value": 21.209}, "source": "h = H + N with N from GeographicLib's GeoidEval on the egm96-15 grid, as captured in core/crates/gp-geodesy/tests/data/egm96_diff.csv", "sourceVersion": "GeographicLib GeoidEval 2.7, egm96-15", "tolerance": {"result.orthometric.value": {"abs": 5e-05}, "result.ellipsoidal.value": {"abs": 1e-09}, "result.geoid_height.value": {"abs": 5e-05}}}
{"id": "v019", "input": {"lat": -57.47877646449871, "lon": 132.83182036548567, "height": "100 m"}, "expect": {"ok": true, "result.orthometric.value": 127.9202, "result.ellipsoidal.value": 100.0, "result.geoid_height.value": -27.9202}, "source": "h = H + N with N from GeographicLib's GeoidEval on the egm96-15 grid, as captured in core/crates/gp-geodesy/tests/data/egm96_diff.csv", "sourceVersion": "GeographicLib GeoidEval 2.7, egm96-15", "tolerance": {"result.orthometric.value": {"abs": 5e-05}, "result.ellipsoidal.value": {"abs": 1e-09}, "result.geoid_height.value": {"abs": 5e-05}}}
{"id": "v020", "input": {"lat": -8.404877214934189, "lon": -173.24429083745736, "height": "250.5 m"}, "expect": {"ok": true, "result.orthometric.value": 228.4173, "result.ellipsoidal.value": 250.5, "result.geoid_height.value": 22.0827}, "source": "h = H + N with N from GeographicLib's GeoidEval on the egm96-15 grid, as captured in core/crates/gp-geodesy/tests/data/egm96_diff.csv", "sourceVersion": "GeographicLib GeoidEval 2.7, egm96-15", "tolerance": {"result.orthometric.value": {"abs": 5e-05}, "result.ellipsoidal.value": {"abs": 1e-09}, "result.geoid_height.value": {"abs": 5e-05}}}
{"id": "v021", "input": {"lat": 55.32412953280226, "lon": 172.81694900795333, "height": "1000 m"}, "expect": {"ok": true, "result.orthometric.value": 997.5347, "result.ellipsoidal.value": 1000.0, "result.geoid_height.value": 2.4653}, "source": "h = H + N with N from GeographicLib's GeoidEval on the egm96-15 grid, as captured in core/crates/gp-geodesy/tests/data/egm96_diff.csv", "sourceVersion": "GeographicLib GeoidEval 2.7, egm96-15", "tolerance": {"result.orthometric.value": {"abs": 5e-05}, "result.ellipsoidal.value": {"abs": 1e-09}, "result.geoid_height.value": {"abs": 5e-05}}}
{"id": "v022", "input": {"lat": -65.45100392341882, "lon": 93.21201504375796, "height": "-50 m"}, "expect": {"ok": true, "result.orthometric.value": -53.6125, "result.ellipsoidal.value": -50.0, "result.geoid_height.value": 3.6125}, "source": "h = H + N with N from GeographicLib's GeoidEval on the egm96-15 grid, as captured in core/crates/gp-geodesy/tests/data/egm96_diff.csv", "sourceVersion": "GeographicLib GeoidEval 2.7, egm96-15", "tolerance": {"result.orthometric.value": {"abs": 5e-05}, "result.ellipsoidal.value": {"abs": 1e-09}, "result.geoid_height.value": {"abs": 5e-05}}}
{"id": "v023", "input": {"lat": 50.931557588252815, "lon": 38.384857542838716, "height": "3000 m"}, "expect": {"ok": true, "result.orthometric.value": 2988.5913, "result.ellipsoidal.value": 3000.0, "result.geoid_height.value": 11.4087}, "source": "h = H + N with N from GeographicLib's GeoidEval on the egm96-15 grid, as captured in core/crates/gp-geodesy/tests/data/egm96_diff.csv", "sourceVersion": "GeographicLib GeoidEval 2.7, egm96-15", "tolerance": {"result.orthometric.value": {"abs": 5e-05}, "result.ellipsoidal.value": {"abs": 1e-09}, "result.geoid_height.value": {"abs": 5e-05}}}
{"id": "v024", "input": {"lat": -25.084929396777184, "lon": 12.735652331292357, "height": "0 m"}, "expect": {"ok": true, "result.orthometric.value": -26.8499, "result.ellipsoidal.value": 0.0, "result.geoid_height.value": 26.8499}, "source": "h = H + N with N from GeographicLib's GeoidEval on the egm96-15 grid, as captured in core/crates/gp-geodesy/tests/data/egm96_diff.csv", "sourceVersion": "GeographicLib GeoidEval 2.7, egm96-15", "tolerance": {"result.orthometric.value": {"abs": 5e-05}, "result.ellipsoidal.value": {"abs": 1e-09}, "result.geoid_height.value": {"abs": 5e-05}}}
{"id": "v025", "input": {"lat": 87.38508747589336, "lon": 45.42400351381221, "height": "100 m"}, "expect": {"ok": true, "result.orthometric.value": 82.2546, "result.ellipsoidal.value": 100.0, "result.geoid_height.value": 17.7454}, "source": "h = H + N with N from GeographicLib's GeoidEval on the egm96-15 grid, as captured in core/crates/gp-geodesy/tests/data/egm96_diff.csv", "sourceVersion": "GeographicLib GeoidEval 2.7, egm96-15", "tolerance": {"result.orthometric.value": {"abs": 5e-05}, "result.ellipsoidal.value": {"abs": 1e-09}, "result.geoid_height.value": {"abs": 5e-05}}}
{"id": "v026", "input": {"lat": -6.274241035441236, "lon": -43.08343083903864, "height": "250.5 m"}, "expect": {"ok": true, "result.orthometric.value": 272.1578, "result.ellipsoidal.value": 250.5, "result.geoid_height.value": -21.6578}, "source": "h = H + N with N from GeographicLib's GeoidEval on the egm96-15 grid, as captured in core/crates/gp-geodesy/tests/data/egm96_diff.csv", "sourceVersion": "GeographicLib GeoidEval 2.7, egm96-15", "tolerance": {"result.orthometric.value": {"abs": 5e-05}, "result.ellipsoidal.value": {"abs": 1e-09}, "result.geoid_height.value": {"abs": 5e-05}}}
{"id":"v027","input":{"lat":40,"lon":-105,"height":"100 m"},"expect":{"ok":true,"summary":"The converted height is 117.21 m. The geoid is 17.21 m below the ellipsoid here."},"source":"Regression for a reported defect (2026-09-23 fix-geodesy-indexing): A negative geoid height reads as below the ellipsoid (was -17.21 m above).","sourceVersion":"core 0.1.0"}
{"id":"v028","input":{"lat":-33.8688,"lon":151.2093,"height":"120 m","terrain":"250 m"},"expect":{"ok":true,"meta.warnings.*.code":"BELOW_TERRAIN","summary":"The converted height is 97.539 m. The geoid is 22.461 m above the ellipsoid here. That is 152.461 m below the ground."},"source":"Regression for a reported defect (2026-09-23 fix-geodesy-indexing): A negative height above ground reads as below the ground (was -152.461 m above the ground).","sourceVersion":"core 0.1.0"}
