我正在尝试将GPS坐标转换为NMEA语句,以便模拟GPS数据。目标是将这些数据输入海洋导航软件。但是,我生成的数据似乎不正确。我在python中使用以下函数将十进制格式的GPS度转换为NMEA 0183格式:
import math
def decdeg2nmea(dd):
num = abs(dd)
d = float(math.floor(num))
m = num - d
return '%i%f' % (int(degree), minutes * 60.00)
这是不正确的?
答案 0 :(得分:0)
数字需要填零。度数应由经度的三个字符表示,即东经4度为004,纬度应用两个字符表示。分钟应由两个字符加小数表示。即4.5度E将是00430.0
由于您使用的是abs
,因此您也会丢失该符号,因此您也需要重新插入。我认为这样的事情应该适用于经度:
import math
def decdeg2nmea(dd):
num = abs(dd)
d = float(math.floor(num))
m = num - d
sign = '-' if dd < 0 else ''
return sign+'%03i%02.5f' % (int(d), m * 60.00)