NMEA0183协议中的GGA语句解析
NMEA0183协议中的GGA语句解析
目录
- NMEA0183协议中的GGA语句解析
- $GPGGA语句简介
- Python 解析GGA语句
- 1.pynmea2 安装
- 2.pynmea2使用方法
$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 | |
2 | utc | 定位时间 | hhmmss.ss | 134658.00 |
3 | lat | 纬度 | DDmm.mm | 5106.9792 |
4 | lat direction | 纬度方向,北纬N或南纬S | N | |
5 | lon | 经度 | DDDmm.mm | 11402.300 |
6 | lon direction | 经度方向,东经E或西经W | W | |
7 | quality | 表示定位解的状态,常用有1=单点解,2=伪距差分解,4=RTK固定解,5=RTK浮点解 | 2 | |
8 | # sats | 参与定位解算的卫星数 | 09 | |
9 | hdop | 水平精度因子 | 1.0 | |
10 | altitude | 天线海拔高,相距于平均海水面 | 1048.47 | |
11 | altitude units | 天线海拔高单位,M=meters | M | |
12 | undulation | 大地水准面与参考椭球面的偏差 | -16.27 | |
13 | undulation units | 大地水准面与参考椭球面的偏差单位,M=meters | M | |
14 | age | 差分时间或龄期,没有差分数据时通常为空 | 08 | |
15 | station ID | 差分基站ID | AAAA | |
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 pynmea2file = 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
NMEA0183协议中的GGA语句解析相关推荐
- HTTP协议中的chunked编码解析
" HTTP协议中的chunked传输编码全接触." 在HTTP协议中,服务器发往客户端的数据中,通常都包括HTTP头和HTTP体,当存在HTTP体的时候,HTTP体的长度通常是由 ...
- java chunked编码解码_HTTP协议中的CHUNKED编码解析
HTTP协议中的TRANFER-ENCODING:CHUNKED编码解析 通常情况下,Transfer-Encoding域的值应当为chunked,表明采用chunked编码方式来进行报文体的传输.c ...
- java sql语法解析_Java中的SQL语句解析
String sql = "SELECT userId,password FROM Table_1 where userId ='" + userId +"' and p ...
- matlab菜鸡学习日志--------使用matlab解析NMEA-0183 协议获取经纬度以及航向角
先上代码! clc clear all filename = 'zuixin.txt'; %result = cell(224, 5); fid = fopen(filename, 'r'); dat ...
- Yunxion资产跟踪之GNSS NEMA语句解析之GGA
NMEA作为全球不同定位系统GPS导航中的统一BTCM标准.由美国国家海洋电子协会制定的一套通讯协议.一些专业开发研究定位跟踪通信类产品的公司,在开发产品过程中发现NMEA-0183协议是GPS接收机 ...
- GNSS NEMA语句解析之GGA
$GPGGA,121252.000,3937.3032,N,11611.6046,E,1,05,2.0,45.9,M,-5.7,M,,0000*77 Global Positioning System ...
- GPS NMEA0183协议解析(转载)
这几天忙里偷闲集中把GPS NMEA0183协议好好研究了一下,不仅整理了一份相对较完整的协议文本,并且编写了一个相对较完善的GPS协议解析程序. 上图是我所说的测试程序,已经可以获得定位数据及相关卫 ...
- oracle12测试骤,Oracle中SQL语句解析的步骤
我们都知道在Oracle中每条SQL语句在执行之前都需要经过解析,这里面又分为软解析和硬解析.那么这两种解析有何不同之处呢?它们又分别是如何进行解析呢?Oracle内部解析的步骤又是如何进行的呢?下面 ...
- java break在switch_java中switch case语句需要加入break的原因解析
java中switch case语句需要加入break的原因解析 java 中使用switch case语句需要加入break 做了具体的实例分析,及编译源码,在源码中分析应该如何使用,大家可以参考下 ...
- Oracle中start with xx connect by prior 语句解析
Oracle中start with xx connect by prior 语句解析 Oracle这种的start with语句主要对B型树的数据进行递归查询.可以指定数据树上的任一节点,然后查找 ...
最新文章
- phpstorm 2017.1.3编辑远程项目
- SPARK:作业基本运行原理
- php承载,javascript,php_如何防止无限循环的php CPU承载过重?,javascript,php - phpStudy...
- ES报错:Connection reset by peer 解决经历
- ubuntu高版本环境变量问题
- Linux 网络操作
- how to use automake to build files
- 关于JS特效的兼容问题。
- SCCM2012升级SP1系列之配置管理SCCM2012④配置SCCM2012补丁分发
- 为什么软件开发周期总是预估的2-3倍?
- Windows Mobile 6 Professional SDK
- 使用PS制作背景透明的png图片
- 干货分享:PDF分割合并工具免费哪个好用?
- 【ensp】单臂路由与生成树的配置
- 2040: [蓝桥杯2022初赛] 砍竹子(优先队列)
- 两消两现指的是_精细胞减二末期会有“两现”吗
- visual C++2015提示0x80240017
- 我的人生就是一次次世界杯串起来的
- 数码管显示“0~F”的共阳共阴数码管编码表
- 金融民工python学习笔记