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