{"id":"v001","input":{"lat":90,"lon":0},"expect":{"ok":true,"result.geoid_height.value":13.605},"source":"GeographicLib GeoidEval 2.7 with the egm96-15 grid (tools/vectors/gen_geoid_diff.py)","sourceVersion":"egm96-15 (2009-08-29)","tolerance":{"result.geoid_height.value":{"abs":5e-05}}}
{"id":"v002","input":{"lat":-90,"lon":0},"expect":{"ok":true,"result.geoid_height.value":-29.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.geoid_height.value":{"abs":5e-05}}}
{"id":"v003","input":{"lat":0,"lon":180},"expect":{"ok":true,"result.geoid_height.value":21.1506},"source":"GeographicLib GeoidEval 2.7 with the egm96-15 grid (tools/vectors/gen_geoid_diff.py)","sourceVersion":"egm96-15 (2009-08-29)","tolerance":{"result.geoid_height.value":{"abs":5e-05}}}
{"id":"v004","input":{"lat":16.776,"lon":-3.009},"expect":{"ok":true,"result.geoid_height.value":28.7079},"source":"GeographicLib GeoidEval 2.7 with the egm96-15 grid (tools/vectors/gen_geoid_diff.py)","sourceVersion":"egm96-15 (2009-08-29)","tolerance":{"result.geoid_height.value":{"abs":5e-05}}}
{"id":"v005","input":{"lat":-27.617286627386235,"lon":147.01574368459995},"expect":{"ok":true,"result.geoid_height.value":31.5578},"source":"GeographicLib GeoidEval 2.7 with the egm96-15 grid (tools/vectors/gen_geoid_diff.py)","sourceVersion":"egm96-15 (2009-08-29)","tolerance":{"result.geoid_height.value":{"abs":5e-05}}}
{"id":"v006","input":{"lat":5.6620454951522845,"lon":-83.09963079350258},"expect":{"ok":true,"result.geoid_height.value":9.6672},"source":"GeographicLib GeoidEval 2.7 with the egm96-15 grid (tools/vectors/gen_geoid_diff.py)","sourceVersion":"egm96-15 (2009-08-29)","tolerance":{"result.geoid_height.value":{"abs":5e-05}}}
{"id":"v007","input":{"lat":-27.498891972917775,"lon":-151.1376908706491},"expect":{"ok":true,"result.geoid_height.value":-0.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.geoid_height.value":{"abs":5e-05}}}
{"id":"v008","input":{"lat":-45.72123124623341,"lon":141.89324191680964},"expect":{"ok":true,"result.geoid_height.value":-16.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.geoid_height.value":{"abs":5e-05}}}
{"id":"v009","input":{"lat":5.6620454951522845,"lon":-83.09963079350258,"interpolation":"bilinear"},"expect":{"ok":true,"result.geoid_height.value":9.6733},"source":"GeographicLib GeoidEval 2.7 with the egm96-15 grid (tools/vectors/gen_geoid_diff.py), bilinear (-l)","sourceVersion":"egm96-15 (2009-08-29)","tolerance":{"result.geoid_height.value":{"abs":5e-05}}}
{"id":"v010","input":{"lat":3.113842188385661,"lon":99.38753630198761},"expect":{"ok":true,"result.geoid_height.value":-11.3449},"source":"GeographicLib GeoidEval 2.7 with the egm96-15 grid (tools/vectors/gen_geoid_diff.py)","sourceVersion":"egm96-15 (2009-08-29)","tolerance":{"result.geoid_height.value":{"abs":5e-05}}}
{"id":"v011","input":{"lat":-23.5220264884005,"lon":-73.77779447615318},"expect":{"ok":true,"result.geoid_height.value":18.3127},"source":"GeographicLib GeoidEval 2.7 with the egm96-15 grid (tools/vectors/gen_geoid_diff.py)","sourceVersion":"egm96-15 (2009-08-29)","tolerance":{"result.geoid_height.value":{"abs":5e-05}}}
{"id":"v012","input":{"lat":32.36591856062516,"lon":117.0066966000212},"expect":{"ok":true,"result.geoid_height.value":-5.932},"source":"GeographicLib GeoidEval 2.7 with the egm96-15 grid (tools/vectors/gen_geoid_diff.py)","sourceVersion":"egm96-15 (2009-08-29)","tolerance":{"result.geoid_height.value":{"abs":5e-05}}}
{"id":"v013","input":{"lat":-24.810255278342936,"lon":49.08890911514146},"expect":{"ok":true,"result.geoid_height.value":0.8006},"source":"GeographicLib GeoidEval 2.7 with the egm96-15 grid (tools/vectors/gen_geoid_diff.py)","sourceVersion":"egm96-15 (2009-08-29)","tolerance":{"result.geoid_height.value":{"abs":5e-05}}}
{"id":"v014","input":{"lat":84.81759104315177,"lon":116.30928800246767},"expect":{"ok":true,"result.geoid_height.value":9.7748},"source":"GeographicLib GeoidEval 2.7 with the egm96-15 grid (tools/vectors/gen_geoid_diff.py)","sourceVersion":"egm96-15 (2009-08-29)","tolerance":{"result.geoid_height.value":{"abs":5e-05}}}
{"id":"v015","input":{"lat":-10.499961911057028,"lon":-34.127469271721225},"expect":{"ok":true,"result.geoid_height.value":-11.4505},"source":"GeographicLib GeoidEval 2.7 with the egm96-15 grid (tools/vectors/gen_geoid_diff.py)","sourceVersion":"egm96-15 (2009-08-29)","tolerance":{"result.geoid_height.value":{"abs":5e-05}}}
{"id":"v016","input":{"lat":39.466594937984524,"lon":-131.8111256343108},"expect":{"ok":true,"result.geoid_height.value":-37.1157},"source":"GeographicLib GeoidEval 2.7 with the egm96-15 grid (tools/vectors/gen_geoid_diff.py)","sourceVersion":"egm96-15 (2009-08-29)","tolerance":{"result.geoid_height.value":{"abs":5e-05}}}
{"id":"v017","input":{"lat":8.482560819379273,"lon":-116.72453211844253},"expect":{"ok":true,"result.geoid_height.value":-35.8613},"source":"GeographicLib GeoidEval 2.7 with the egm96-15 grid (tools/vectors/gen_geoid_diff.py)","sourceVersion":"egm96-15 (2009-08-29)","tolerance":{"result.geoid_height.value":{"abs":5e-05}}}
{"id":"v018","input":{"lat":-57.140909206095245,"lon":-80.16847212417281},"expect":{"ok":true,"result.geoid_height.value":-0.6346},"source":"GeographicLib GeoidEval 2.7 with the egm96-15 grid (tools/vectors/gen_geoid_diff.py)","sourceVersion":"egm96-15 (2009-08-29)","tolerance":{"result.geoid_height.value":{"abs":5e-05}}}
{"id":"v019","input":{"lat":57.58326730830129,"lon":122.21830223139739},"expect":{"ok":true,"result.geoid_height.value":-7.621},"source":"GeographicLib GeoidEval 2.7 with the egm96-15 grid (tools/vectors/gen_geoid_diff.py)","sourceVersion":"egm96-15 (2009-08-29)","tolerance":{"result.geoid_height.value":{"abs":5e-05}}}
{"id":"v020","input":{"lat":-3.913291118503622,"lon":-145.92206659546855},"expect":{"ok":true,"result.geoid_height.value":7.5034},"source":"GeographicLib GeoidEval 2.7 with the egm96-15 grid (tools/vectors/gen_geoid_diff.py)","sourceVersion":"egm96-15 (2009-08-29)","tolerance":{"result.geoid_height.value":{"abs":5e-05}}}
{"id":"v021","input":{"lat":-36.32299302916632,"lon":140.8601626886553},"expect":{"ok":true,"result.geoid_height.value":0.0451},"source":"GeographicLib GeoidEval 2.7 with the egm96-15 grid (tools/vectors/gen_geoid_diff.py)","sourceVersion":"egm96-15 (2009-08-29)","tolerance":{"result.geoid_height.value":{"abs":5e-05}}}
{"id":"v022","input":{"lat":40,"lon":-105},"expect":{"ok":true,"summary":"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"}
