GPS数据处理

GPS数据格式的分析 GPS数据分析 阅读详情

题目内容:

NMEA-0183协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术委员会)标准,由美国国家海洋电子协会(NMEA-The National Marine Electronics Associa-tion)制定的一套通讯协议。GPS接收机根据NMEA-0183协议的标准规范,将位置、速度等信息通过串口传送到PC机、PDA等设备。

 

NMEA-0183协议是GPS接收机应当遵守的标准协议,也是目前GPS接收机上使用最广泛的协议,大多数常见的GPS接收机、GPS数据处理软件、导航软件都遵守或者至少兼容这个协议。

 

NMEA-0183协议定义的语句非常多,但是常用的或者说兼容性最广的语句只有$GPGGA、$GPGSA、$GPGSV、$GPRMC、$GPVTG、$GPGLL等。

 

其中$GPRMC语句的格式如下:

    $GPRMC,024813.640,A,3158.4608,N,11848.3737,E,10.05,324.27,150706,,,A*50

 

这里整条语句是一个文本行,行中以逗号“,”隔开各个字段,每个字段的大小(长度)不一,这里的示例只是一种可能,并不能认为字段的大小就如上述例句一样。

    字段0:$GPRMC,语句ID,表明该语句为Recommended Minimum Specific GPS/TRANSIT Data(RMC)推荐最小定位信息

    字段1:UTC时间,hhmmss.sss格式

    字段2:状态,A=定位,V=未定位

    字段3:纬度ddmm.mmmm,度分格式(前导位数不足则补0)

    字段4:纬度N(北纬)或S(南纬)

    字段5:经度dddmm.mmmm,度分格式(前导位数不足则补0)

    字段6:经度E(东经)或W(西经)

    字段7:速度,节,Knots

    字段8:方位角,度

    字段9:UTC日期,DDMMYY格式

    字段10:磁偏角,(000 - 180)度(前导位数不足则补0)

    字段11:磁偏角方向,E=东W=西

    字段16:校验值

这里,“*”为校验和识别符,其后面的两位数为校验和,代表了“$”和“*”之间所有字符(不包括这两个字符)的异或值的十六进制值。上面这条例句的校验和是十六进制的50,也就是十进制的80。

 

提示:^运算符的作用是异或。将$和*之间所有的字符做^运算(第一个字符和第二个字符异或,结果再和第三个字符异或,依此类推)之后的值对65536取余后的结果,应该和*后面的两个十六进制数字的值相等,否则的话说明这条语句在传输中发生了错误。注意这个十六进制值中是会出现A-F的大写字母的。

 

现在,你的程序要读入一系列GPS输出,其中包含$GPRMC,也包含其他语句。在数据的最后,有一行单独的

    END

表示数据的结束。

 

你的程序要从中找出$GPRMC语句,计算校验和,找出其中校验正确,并且字段2表示已定位的语句,从中计算出时间,换算成北京时间。一次数据中会包含多条$GPRMC语句,以最后一条语句得到的北京时间作为结果输出。

你的程序一定会读到一条有效的$GPRMC语句。

 

输入格式:

多条GPS语句,每条均以回车换行结束。最后一行是END三个大写字母。

 

输出格式:

6位数时间,表达为:

    hh:mm:ss

其中,hh是两位数的小时,不足两位时前面补0;mm是两位数的分钟,不足两位时前面补0;ss是两位数的秒,不足两位时前面补0。

 

输入样例:

$GPRMC,024813.640,A,3158.4608,N,11848.3737,E,10.05,324.27,150706,,,A*50

END

 

输出样例:

10:48:13

时间限制:500ms内存限制:32000kb

\

#include<stdio.h>
#include<string.h> 
int judge_sum(char n[]);
int convert(char );
void extract_time(char n[],int*,int*,int*);
char word[100];
int i=0,cnt=-1,x,hh,mm,ss;


int main(){
	//input the string
	do
	{
    scanf("%s",word);
    cnt++;
    if(strncmp(word,"$GPRMC,",7)==0 && word[18]=='A'){
		if (judge_sum(word)){
			extract_time(word,&hh,&mm,&ss); 
		}
	}
	}while(strcmp(word,"END")!=0);
	printf("%02d:%02d:%02d",hh,mm,ss);
	return 0;
    }

int judge_sum(char n[]){
	x=n[1]^n[2];
	for(i=3;n[i]!='*';i++){
		x=x^n[i];
	}
	x%=65536;
	//convert the verification number
	char c1=n[i+1],c2=n[i+2]; 
	int number1,number2,judge;
	number1=convert(c1);
	number2=convert(c2);
	judge=number1*16+number2;
	if(judge==x){
		return 1;
	}
	else return 0; 
}

int convert(char n){
	int number;
	if(n>='A' && n<='F'){
		number = n-'A'+10;
	}
	else{
		number = n - '0';
	}
	return number;
}

void extract_time(char n[],int *hh, int *mm, int *ss){
	char c[6];
	int num[6],h;

	for(i=0;i<6;i++){
		c[i]=n[i+7];
	}
	for(i=0;i<6;i++){
		num[i]=convert(c[i]);
	}
	h=num[0]*10+num[1];
	if(h>16){
		h-=16;
	}
	else{
		h+=8;
	}
	*hh=h;
	*mm=num[2]*10+num[3];
	*ss=num[4]*10+num[5];
}

指针的运用,字符串函数,strcmp

C语言入门-第八周:作业02 2GPS数据处理(6分)题目内容: NMEA-0183协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术委员会)标准,由美国国家海洋电子协会(NMEA-The National Marine Electronics Associa-tion)制定的一套通讯协议。GPS接收机根据NMEA-0183协议的标准规范,将位置、速度等信息通过串口传送到PC机、PDA等设备。 阅读详情

相关推荐

java-GPS数据处理

/** 题目内容: NMEA-0183协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术委员会)标准,由美国国家海洋电子协会(NMEA-The National Marine Electronics Associa-tion)制定的一套通讯协议。GPS接收机根据NMEA-0183协议的标准规范,将位置、速度等信息通过串口传送到PC机、PDA等设备。 NME...

qq_38857145的博客 887

GPS 数据处理

gps

u014421313的博客 1484

python gps数据处理_GPS数据处理简述(上)

前前言最近在上海出差,有对数据挖掘和机器学习的实践感兴趣,想要面基的小伙伴可以联系我。联系方式在 Resume 里面,也可以看一下我的介绍,到时候咱们可以面基面的更有针对性。困死了,实在写不下去了,前两节定的内容公式太多,打的我脑壳子痛,急需一份睡眠来缓解一下……前言GPS数据是很重要的用户数据,但同时其处理也是特别困难的,在信号不好的时候容易产生噪声,很多时候用户的行为本身也自带噪声(相对于描述...

weixin_39948442的博客 1563

gps数据处理

GPS数据处理 题目内容: NMEA-0183协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术委员会)标准,由美国国家海洋电子协会(NMEA-The National Marine Electronics Associa-tion)制定的一套通讯协议。GPS接收机根据NMEA-0183协议的标准规范,将位置、速度等信息通过串口传送到PC机、PDA等设备。 ...

royzou的专栏 1023

Java应用基础进阶——GPS数据处理

首先是题目。 题目内容: NMEA-0183协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术委员会)标准,由美国国家海洋电子协会(NMEA-The National Marine Electronics Associa-tion)制定的一套通讯协议。GPS接收机根据NMEA-0183协议的标准规范,将位置、速度等信息通过串口传送到PC机、PD

xnf1996224的博客 1125

滴滴驾驶行为开放数据集:GPS和IMU数据处理

滴滴驾驶行为开放数据集1.数据集介绍1.1 驾驶行为基础信息:driver_accident_base_data1.2 GPS&IMU数据1.3 数据申请2. GPS数据处理2.1 GPS数据详情2.2 数据处理思路2.2.1 官方思路2.2.2 直接导入jar包,使用java程序进行解压。2.2 IMU数据反编码 1.数据集介绍 数据来源: https://gaia.didichuxing.com . 数据来自于滴滴网约车2020年10月份抽样司机行驶中的所有传感器数据,包括IMU&GP

weixin_41223591的博客 2万+

gps数据处理c语言例子,gps数据处理软件有哪些

GPS静态测量数据处理软件有哪些EXCEL MATLAB Origin 等等当前流行的图形可视化和数据分析软件有Matlab,Mathmatica和Maple等。这些软件功能强大,可满足科技工作中的许多需要,但使用这些软件需要一定的计算机编程知识和矩阵知识,并熟悉其中大量的函数和命令。而使用Origin就像使用Excel和Word那样简单,只需点击鼠标,选择菜单命令就可以完成大部分工作,获得满意的...

weixin_35637837的博客 701

GPS数据处理_C语言

题目内容: NMEA-0183协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术委员会)标准,由美国国家海洋电子协会(NMEA-The National Marine Electronics Associa-tion)制定的一套通讯协议。GPS接收机根据NMEA-0183协议的标准规范,将位置、速度等信息通过串口传送到PC机、PDA等设备。 NMEA-0183协议是GPS接收机应当遵守的标准协议,也是目前GPS接收机上使用最广泛的协议,大多数常见的GPS接收机、GPS数据处

国家一级致癌物 699

gps数据处理 java_GPS数据读取与处理

GPS数据读取与处理GPS模块简介SiRF芯片在2004年发布的最新的第三代芯片SiRFstar III(GSW 3.0/3.1),使得民用GPS芯片在性能方面登上了一个顶峰,灵敏度比以前的产品大为提升。这一芯片通过采用20万次/频率的相关器提高了灵敏度,冷开机/暖开机/热开机的时间分别达到42s/38s/8s,可以同时追踪20个卫星信道。是目前市场上应用最为广泛,同时性价比也非常高的一款芯片,因...

weixin_36162235的博客 1568

VB在GPS数据处理中的应用详解

在使用Visual Basic进行GPS数据接收和解析之前,选择合适的GPS接收器是第一步。市场上有许多类型的GPS接收器,包括USB、蓝牙以及串行端口设备。选择时,应考虑与计算机的兼容性、所需的精确度、信号的稳定性和设备的成本。配置GPS接收器通常包括设置波特率、数据位、停止位和校验位等串行通信参数。在VB中,这可以通过打开相应端口并使用MSComm控件进行设置来实现。以下是一个简单的代码示例,展示了如何配置串行端口:' 创建一个新的SerialPort对象实例。

weixin_42497762的博客 795

MATLAB在GPS数据处理中的应用指南

伪距码(Pseudo-Random Noise, PRN)是GPS系统中用于区分不同卫星信号的一种编码技术。每个GPS卫星发射的信号都携带了唯一的PRN码,这些代码具有以下特性:高度正交性:不同的PRN码之间在相关操作下几乎为零,即互相关性非常低,这允许地面接收器区分同时到达的不同卫星信号。周期性:PRN码具有固定的周期,GPS系统通常采用长周期的码,比如C/A码的周期是1ms,P码的周期是7天。伪随机性。

weixin_35835030的博客 681

MOOC 浙江大学 翁恺 程序设计入门C GPS数据处理

GPS数据处理 题目内容: NMEA-0183协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术委员会)标准,由美国国家海洋电子协会(NMEA-The National Marine Electronics Associa-tion)制定的一套通讯协议。GPS接收机根据NMEA-0183协议的标准规范,将位置、速度等信息通过串口传送到PC机、PDA等设备。 NME...

willing0228的博客 886

GPS模块数据处理实战指南

全球定位系统(GPS)是一种由美国军事开发的空间技术,最初用于军事导航,后广泛应用于民用领域,如汽车导航、户外探险、地图绘制等。GPS模块是接收和处理GPS信号的核心组件,它能确定地球表面上某一点的精确位置信息,包括纬度、经度和高度等。Win32 API是Windows操作系统的核心应用程序接口,它提供了一系列函数、消息、数据结构、宏和全局变量,使得开发者可以编写能够在Windows平台上运行的应用程序。

weixin_42502089的博客 756

GAMIT/GLOBK/GIPSY著名的GPS数据处理软件介绍

GAMIT/GLOBK/GIPSY著名的GPS数据处理软件介绍

qq_72175463的博客 1367

天宝GPS接收机原始数据处理与分析

本文还有配套的精品资源,点击获取 简介:天宝GPS接收机是精准定位技术的高端设备,广泛应用于多个领域,用于计算精确的位置、速度和时间信息。其原始观测数据文件包含了伪距、载波相位、信号质量指标和历元信息等重要参数,这些数据对后处理定位、动态定位和时间同步至关重要。学习者通过分析和处理这些数据,可以掌握GPS定位原理和数据处理流程,使用专业软件进行数据解析,进一步提高数据处理和...

weixin_35189483的博客 1617

MATLAB GPS数据处理与改正技术实战

MATLAB(Matrix Laboratory)是由美国MathWorks公司开发的一款高性能数值计算和可视化软件。其在工程和科研领域,尤其是GPS数据处理方面,提供了强大的矩阵运算和信号处理功能。MATLAB的工具箱(Toolbox)包含大量特定领域的专业算法和函数,大大简化了复杂数据的处理流程,尤其适合于算法开发和原型设计。接收独立交换格式(Receiver Independent Exchange Format,RINEX)是全球定位系统(GPS)数据存储的标准格式之一。

weixin_42593549的博客 1097
上一篇: 单词长度
下一篇: 线性结构1 两个有序链表序列的合并
DedicateToAI
博客等级 码龄9年 6粉丝 90原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值