在python中将十进制度转换为NMEA 0183

时间:2017-07-27 00:43:26

标签: python gps nmea

我正在尝试将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)

这是不正确的?

1 个答案:

答案 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)