NMEA0183协议中的GGA语句解析

NMEA0183协议中的GGA语句解析

$GPGGA语句简介

NMEA0183协议是接收机输出定位信息的通用标准之一,其中GGA语句包含了关键的时间、经纬度、定位状态等内容。
常用的语句示例如下:

$GPGGA,134658.00,5106.9792,N,11402.3003,W,2,09,1.0,1048.47,M,-16.27,M,08,AAAA*60

对应的字段和解释如下表:GGA语句格式

Num字段具体内容格式示例
1$GPGGA记录头$GPGGA
2utc定位时间hhmmss.ss134658.00
3lat纬度DDmm.mm5106.9792
4lat direction纬度方向,北纬N或南纬SN
5lon经度DDDmm.mm11402.300
6lon direction经度方向,东经E或西经WW
7quality表示定位解的状态,常用有1=单点解,2=伪距差分解,4=RTK固定解,5=RTK浮点解2
8# sats参与定位解算的卫星数09
9hdop水平精度因子1.0
10altitude天线海拔高,相距于平均海水面1048.47
11altitude units天线海拔高单位,M=metersM
12undulation大地水准面与参考椭球面的偏差-16.27
13undulation units大地水准面与参考椭球面的偏差单位,M=metersM
14age差分时间或龄期,没有差分数据时通常为空08
15station ID差分基站IDAAAA
16*xx校验和*60
17[CR][LF]语句中止符[CR][LF]
Python 解析GGA语句

我们可以使用Python第三方包 pynmea2 来解析NMEA,获取其中的位置、解算状态等,十分方便。也可以使用pynmea2结合位置信息,输出NMEA语句等。参考链接:https://openbase.com/python/pynmea2

1.pynmea2 安装

我装了conda,所以直接使用conda进行安装,也可以使用pip。

conda install pynmea2
2.pynmea2使用方法

解析单个语句:

import pynmea2
>>> msg = pynmea2.parse("$GPGGA,184353.07,1929.045,S,02410.506,E,1,04,2.6,100.00,M,-33.9,M,,0000*6D")
>>> msg
<GGA(timestamp=datetime.time(18, 43, 53), lat='1929.045', lat_dir='S', lon='02410.506', lon_dir='E', gps_qual='1', num_sats='04', horizontal_dil='2.6', altitude=100.0, altitude_units='M', geo_sep='-33.9', geo_sep_units='M', age_gps_data='', ref_station_id='0000')>

解析文件:

import pynmea2

file = open('examples/data.log', encoding='utf-8')

for line in file.readlines():
    try:
        msg = pynmea2.parse(line)
        print(repr(msg))
    except pynmea2.ParseError as e:
        print('Parse error: {}'.format(e))
        continue
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值