1#!/usr/bin/env python
2"""Simple program to exact 5x5 geoid seperations in EGM2008
3from GeoidEval for use in geoidc"""
4
5import sys
6import subprocess
7
8
9for lat in range(-90, 91, 5):
10    if -90 != lat:
11        sys.stdout.write("},")
12
13    sys.stdout.write("\n    /* %d */\n    { " % lat)
14
15    cnt = 0
16    for lon in range(-180, 181, 5):
17        ge = subprocess.Popen(["GeoidEval",
18                                "-n", "egm2008-1"],
19                                stdin=subprocess.PIPE,
20                                stdout=subprocess.PIPE,
21                                stderr=subprocess.PIPE,
22                                bufsize=0)
23        out, err = ge.communicate(b"%d %d\n" % (lat, lon))
24        # round to even cm
25        val = round(float(out) * 100)
26        sys.stdout.write("%5d" % val)
27        cnt += 1
28        if 0 == (cnt % 10):
29            sys.stdout.write(",\n      ")
30        elif 73 != cnt:
31            sys.stdout.write(", ")
32
33sys.stdout.write("}\n};\n")
34