一种基于mbr的gps轨迹地图匹配方法

文档序号:6015324阅读:473来源:国知局
专利名称:一种基于mbr的gps轨迹地图匹配方法
技术领域
本发明涉及GPS (全球定位系统)、GIS (地理信息系统)和计算机软件新技术,具体为一种全新的基于MBR的GPS轨迹地图匹配方法及其实例系统——保安绩效考核巡逻管理系统的开发。
背景技术
目前针对保安巡逻人员的管理监督都是沿用传统的“人管人”的模式,监督保安是否在岗,是否无故迟到早退,是否随意串岗、闲谈,是否私自改变巡逻路线,是否按照时间和巡逻次数和范围等要求巡逻等,实际操作中容易受到人为因素的影响,因此保安巡逻管理工作中不可避免的会出现监管的空白和漏洞、存在保安巡逻空班、漏检现象,为了杜绝此现象的发生,采用电子巡逻管理系统,对巡检的保安进行绩效考核以实现科学的管理十分必要。目前,常用的电子巡逻管理系统由巡更棒、巡更点、智能通信座、智能管理软件等部分组成,在每一部分中又含有更加具体的设备或部件。巡更棒用于记录巡逻情况,检验保安巡逻人员是否按规定巡检,俗称打点。根据巡逻路线,在必经点上设置感应点(巡更点),每个感应点电子编号不同,保安巡逻人员手持巡更棒,到达巡逻点后,用巡更棒感应巡逻点,信息储存在巡更棒中,然后可以通过底座传输到电脑里,检查巡逻的执行情况。还可以设置时间范围,比如规定1 2点巡逻,超出时间就无法再感应记录巡逻点。然而,这类形式的电子巡逻管理设备要求比较高,成本比较高,这大大增加了企业的经济负担。GPS是英文Global Positioning System (全球定位系统)的简称。用户设备部分即GPS接收机可以进行定位计算,计算出用户所在地理位置的经纬度、高度、速度、时间等信息。目前各种类型的接收机体积越来越小,重量越来越轻,便于野外观测使用。GPS设备的使用可记录使用人员的行走轨迹,以每3或5秒的频率保存轨迹点的经纬度、高度、通过速度和时间数据并可导出指定格式的文件保存,这些完备的时空数据可用来做绩效考核统计分析和挖掘更深层次信息。GPS设备的便携性和低成本以及定位记录轨迹位置的功能,使得成为对保安巡逻人员监督和绩效考核的得力工具。MBR是Minimum Bounding Rectangle (最小外包矩形)的简称,它是在已知物体的边界时,用其外接矩形的尺寸来刻画它的基本形状是最简单的方法。如果仅计算其在坐标系方向上的外接矩形是很简单的,只需计算物体边界点的最大和最小坐标值,就可得到物体的水平和垂直跨度。但通常需要计算反映物体形状特征的主轴方向上的长度和与之垂直方向上的宽度,这样的外接矩形是物体最小的外接矩形(MER-Minimum Enclosing Rectangle)。该系统涉及两项硬件设备GPS轨迹记录仪和计算机硬件。计算机硬件的配置包括,处理器=Pentium III-600兆赫兹(MHz)兼容或更快的处理器,内存512兆(MB)内存或更多,硬盘容量大约需要IGB可用硬盘空间,显示器支持1,(^4χ768分辨率或者更高性能的视频显示卡和监视器。软件环境包括两部分(1)开发环境有Microsoft Visual Studio 2008、ESRIArcGIS Engine9. 3. IRuntime and Developer Kit for Windows 禾口 ESRI ArcGIS Desktop SDK for the Microsoft. NET Framework。(2)运行环境,操作系统Windows 2000/ffindows XP简体中文操作系统及以上;支持软件Microsoft. NET Framework 3. 5。从串口中读出的是文本数据,每次读出一行,一般情况下,一秒种能收到多行数据,有效数据以 $GP 开头,分为 $GPGGA、$GPGSA, $GPGSV、$GPRMC··· $GPGGA 是 GPS 定位的主要数据,通过解析它得到经度、纬度、海拔高度、时间、卫星使用情况等基本信息,其中每项用逗号分隔,共十四个逗号,举例如下:$GPGGA,064746. 000,4925. 4895,N,00103. 9255, Ε, 1,05,2. 1, -68. 0, Μ,47. 1, Μ,,0000*4F$GPGGA(语句标识头),064746. 000 (UTC 时间), 4925. 4895 (纬度),N (纬度半球),00103. 9255 (经度),E (经度半球),1(定位质量指示), 05 (使用卫星数量),2. 1 (水平精确度),-68. 0 (海拔高度),M (高度单位),47. 1 (大地水准面高度),M (高度单位),(差分GPS数据期限),0000 (差分参考基站标号)*4F (校验) (结束标记回车换行)。轨迹能否精确地表达运动对象的位置,成为影响定位系统性能的关键[1,10]。因此,需要通过对数据的预处理,将轨迹数据匹配到矢量化的数字地图上,这一技术通常称为地图匹配(Map-Matching)。误差是影响地图匹配可靠性的关键因素。其产生原因是GPS信号接收设备通常会受到天气、卫星状况和周围环境的影响,特别是在高楼林立的城市中,便携式的GPS定位设备仍然存在着比较明显的测量误差;轨迹数据通常是使用GPS对位置进行抽样,这种方式也是不准确的,其精度受采样率影响。由GPS精度引起的测量误差及受采样率影响的抽样误差严重影响了定位的准确性及应用需求,造成实际位置与轨迹数据记录的位置不符, 它一方面影响应用的显示效果,另一方面影响数据挖掘及深层次信息的提取。

发明内容
本发明引入一种基于MBR的GPS轨迹地图匹配新方法,即将一段轨迹与道路网的一部分相匹配,其匹配程度由这段轨迹与候选道路的角度和距离决定,这种方法可以有效的提高定位系统的运行效率和精度。一种基于MBR的GPS轨迹地图匹配方法,1)将便携式GPS设备与计算机主机连接,运用系统自带的“读取数据”功能读取对应巡逻人员在巡逻区域的巡逻时间的数据,数据为轨迹文件,其格式是.CSV,文件包含的坐标点的经纬度、经过时间和经过速度的数据信息;2)对数据进行预处理,通过系统的模式分类方法,识别轨迹文件中的错误数据,包括重复数据、缺失数据、跳跃数据、漂移数据;识别轨迹文件中的错误数据代码为IastAngle = curAngle;
curAngle = getAngle(Convert.ToDouble(ls[j - 1][3]), Convert.ToDouble(ls[j -1][2]), Convert.ToDouble(ls[j][3]), Convert.ToDouble(ls[j][2]), Convert.ToDouble(ls[j + 1][3]), Convert.ToDouble(ls[j + 1][2]));//判断是否是往返点<5度
if (IastAngle < 5 && curAngle < 5) boolRetrace = true; else boolRetrace
=false;
//判断是否是过密点<2米
if (getDistance(Convert.ToDouble(ls[j - 1][3]), Convert.ToDouble(ls[j -1][2]), Convert.ToDouble(lsO][3]), Convert.ToDouble(ls[j][2])) < 0.002) boolClose = true; else boolClose = false;
//判断是否是错误点速度>10
if (Convert.ToDouble(ls[j] [4]) > 10) boolError = true; else boolError =
false;
//判断是否是漂移数据点N点中心<1M IastDriftCenter=CurDriftCenter;
curDriflCenter = getCenter(Convert.ToDouble(ls[j - 1][3]), Convert.ToDouble(ls[j - 1][2]),Convert.ToDouble(ls[j][3]), Convert.ToDouble(ls[j][2]), Convert.ToDouble(ls[j + 1][3]), Convert.ToDouble(ls[j + 1][2]));
if (getDistance(curDriftCenter
, curDriflCenter[ 1 ], lastDriftCenter
, lastDriftCenter[ 1 ]) < 0.005) boolDrifting = true; else boolDrifling = false; //是否在道路面内
if(!CheckNotContainSta(Convert.ToDouble(ls[j][3]), Convert.ToDouble(ls[j][2]))) boolOutRoad ^ true; else boolOutRoad = false;
if (!(boolRetrace || boolClose || boolError || boolDrifting || boolOutRoad))
{p.PutCoords(Convert.ToDouble(lsD'][3]), Convert.ToDouble(ls[j][2])); ptclo.AddPoint(p, ref Missing, ref Missing);
} ο3)根据基于MBR的地图匹配算法对轨迹点进行校正,除去错误数据,修正路线,提高轨迹精度;4)利用ArcGIS提供的mapcontrol控件和绘图方法在系统内部将轨迹曲线绘制到地图上,直观的显示修正结果。识别轨迹文件中的错误数据代码为
IastAngle = curAngle;
curAngle = getAngle(Convert.ToDouble(ls[j -1][3]), Convert.ToDouble(lsD - 1][2]), Convert.ToDouble(ls[j][3]), Convert.ToDouble(ls[j][2]), Convert.ToDouble(ls[j + 1][3]), Convert.ToDouble(ls[j + 1][2]));
//判断是否是往返点<5度
if (IastAngle < 5 && curAngle < 5) boolRetrace = true; else boolRetrace
=false;
//判断是否是过密点<2米
if (getDistance(Convert.ToDouble(ls[j - 1][3]), Convert.ToDouble(ls[j -1][2]), Convert.ToDouble(ls[j][3]), Convert.ToDouble(ls[j][2])) < 0.002) boolClose = true; else boolClose = false;
//判断是否是错误点速度>10
if (Convert.ToDouble(ls[j][4]) > 10) boolError = true; else boolError =
false;//判断是否是漂移数据点N点中心<1M IastDriftCenter=CurDriftCenter;
curDriftCenter = getCenter(Convert.ToDouble(ls[j - 1][3]), Convert.ToDouble(lsD - 1][2]),Convert.ToDouble(lsD][3]), Convert.ToDouble(ls[j][2]), Convert.ToDouble(ls[j + 1][3]), Convert.ToDouble(ls[j + 1][2]));
if (getDistance(curDriftCenter
, curDriflCenter[l], lastDriftCenter
, lastDriflCenter[l]) < 0.005) boolDrifting = true; else boolDrifling = false; //是否在道路面内
if (! CheckNotContainSta(Convert.ToDouble(ls[j][3 ]), Convert.ToDouble(ls[j][2]))) boolOutRoad = true; else boolOutRoad = false;
if (!(boolRetrace || boolClose || boolError || boolDrifting || boolOutRoad)) {
p.PutCoords(Convert.ToDouble(ls[j][3]), Convert.ToDouble(ls[j][2])); ptclo.AddPoint(p, ref Missing, ref Missing);
} οMBR的地图匹配算法代码
if image_array(i j ,near(k))=0
temp_col_2=1+floor(near(k)/row); temp_row_2=near(k)-(temp_col_2-1 )*row; temp_row_3=(temp_row_2-1 )*A+i; temp_col_3=(temp_col_2-1 )* A+j ;dis=distance(temp_row_3 ,temp_col_3 ,obj_row,obj_col); temp=image_array(:,: ,near(k)); angle=find_near_node(temp,i,j,k,input_angle); if Deside(temp_col_3 ,temp—row_3 ,obj_col,obj_row) all=dis*l+angle*0; if all<=small small=dis;
final_i=i;%最终匹配点 fianl_j=j;%最终匹配点 final_k=near(k);% 最终匹配点 Aag=I; end else
flag=0; end end
O本发明有如下优点和积极效果1.本发明引入了历史信息和路网拓扑信息,使用距离和角度判断相匹配的道路,
提高了匹配精度,减少了错误;2.本发明简单有效,降低了匹配计算的复杂度,提高了时间效率,能处理较大的数
据量,有很好的实时性;3.容错性能较好,允许不正确的数据输入;4.本发明实现对错误点的过滤,进一步提高定位的准确性。


图1是本发明基于MBR的地图匹配新方法实现步骤流程图。图2是本发明保安巡逻管理系统软硬件结构框架示意图。
图3是本发明基于MBR的地图匹配示例。
具体实施例方式高精度、矢量化的数字地图不但能提供位置信息,还能够用来改善GPS定位的精度,通过轨迹与地图的匹配确定对象相对于地图的最大可能位置,从而减小误差幅度、提高定位精度、改善定位系统性能。它的应用基于两个假设1)用于地图匹配的数字地图的精度一般要求小于15m ;2)对象在道路上运动。基于MBR的地图匹配方法实现主要分为如下4个步骤1)将便携式GPS设备与计算机主机连接,读取对应某个巡逻人员(巡逻区域)某时间的GPS轨迹CSV文件,获取其包含的坐标点的经纬度、经过时间和经过速度等信息;2)对数据进行预处理,通过模式分类方法,识别GPS轨迹中的错误数据,包括重复数据、缺失数据、跳跃数据、漂移数据等;识别轨迹文件中的错误数据代码为
IastAngle = cur Angle;
cur Angle = getAngle(Convert.ToDouble(ls[j - 1][3]), Convert.ToDouble(ls[j - 1][2]), Convert.ToDouble(ls[j][3]), Convert.ToDouble(lsO][2]), Convert.ToDouble(ls[j + 1][3])’ Convert.ToDouble(ls[j + 1][2]));
//判断是否是往返点<5度
if (IastAngle < 5 && curAngle < 5) boolRetrace = true; else boolRetrace
—false;
//判断是否是过密点<2米
if(getDistance(Convert.ToDouble(ls[j - 1][3]), Convert.ToDouble(ls[j -1][2]), Convert.ToDouble(ls[j][3]), Convert.ToDouble(ls[j][2])) < 0.002) boolClose = true; else boolClose = false;
//判断是否是错误点速度>10
if (Convert.ToDouble(ls[j][4]) > 10) boolError = true; else boolError =
false;
//判断是否是漂移数据点N点中心<1M IastDriftCenter=CurDriftCenter;
curDriftCenter = getCenter(Convert.ToDouble(ls[j - 1][3]), Convert.ToDouble(ls[j -1][2]),Convert.ToDouble(ls[j][3]), Convert.ToDouble(ls[j][2]), Convert.ToDouble(ls[j + 1][3]), Convert.ToDouble(lsO + 1][2]));
if (getDistance(curDriftCenter
,curDriftCenter[ 1 ], lastDriftCenter
, lastDriftCenter[l]) < 0.005) boolDrifting = true; else boolDrifting = false; //是否在道路面内
if(!CheckNotContainSta(Convert.ToDouble(lsD'][3]), Convert.ToDouble(ls[j][2]))) boolOutRoad = true; else boolOutRoad 二 false;
if (!(boolRetrace || boolClose || boolError || boolDrifting || boolOutRoad)) {
p.PutCoords(Convert.ToDouble(lsO][3]), Convert.ToDouble(ls[j][2])); ptclo.AddPoint(p, ref Missing, ref Missing);
}
ο3)根据基于MBR的地图匹配算法对轨迹点进行校正,提高轨迹精度;MBR的地图匹配算法代码
if image_array(i,j ,near(k))==0
temp_col_2= 1 +floor(near(k)/row); temp_row_2=near(k)-(temp_col_2-1 )*row; temp_row_3=(temp_row_2-1 )* A+i; temp—col—3=(temp_col_2-1 )*A+j ; dis=distance(temp_row_3,temp_col_3,obj_row,obj_col); temp=image_array(:,: ,near(k)); angle=find_near—node(temp,i,j,k,input_angle); if Deside(temp_col_3,temp_row_3 ,obj—col,obj_row) all=dis* l+angle*0; if all<=small small=dis;
final_i=i;%最终匹配点 fianlj=j;%最终匹配点 final_k=near(k);% 最终匹配点 Aag=I; end else
flag=0; end end
O4)利用ArcGIS提供的mapcontrol控件和绘图方法将轨迹曲线绘制到地图上,直观的显示修正结果。过程图如附图1所示,保安巡逻管理系统软硬件结构框架示意图如图 2所示。1.数据错误模式及预处理大量实测GPS轨迹数据中不可避免的会出现部分错误数据,在进行地图匹配前, 需要将这些错误数据检测并处理,本文通过大量数据,研究分析数据错误模式,并设计错误数据检测算法。通过模式分类的方法W],本文将错误数据分为四种模式,分别为数据冗余、数据缺失、跳跃数据和漂移数据。2.错误数据检测算法(1)数据冗余采样过于密集或者重复记录pi与pi+Ι两点间距离Di小于Dmin表明采样过于密集或者重复记录,如公式(1),
权利要求
1.一种基于MBR的GPS轨迹地图匹配方法,其特征在于1)将便携式GPS设备与计算机主机连接,运用系统自带的“读取数据”功能读取对应巡逻人员在巡逻区域的巡逻时间的数据,数据为轨迹文件,其格式是.csv,文件包含的坐标点的经纬度、经过时间和经过速度的数据信息;2)对数据进行预处理,通过系统的模式分类方法,识别轨迹文件中的错误数据,包括重复数据、缺失数据、跳跃数据、漂移数据;3)根据基于MBR的地图匹配算法对轨迹点进行校正,除去错误数据,修正路线,提高轨迹精度;4)利用ArcGIS提供的mapcontrol控件和绘图方法在系统内部将轨迹曲线绘制到地图上,直观的显示修正结果。
2.根据权利要求1所述的一种基于MBR的GPS轨迹地图匹配方法,其特征在于识别轨迹文件中的错误数据代码为IastAngle = curAngle;curAngle = getAngle(Convert.ToDouble(ls[j - 1][3]), Convert.ToDouble(ls[j - 1][2]),Convert.ToDouble(ls[j][3]), Convert.ToDouble(ls[j][2]), Convert.ToDouble(ls[j + 1][3]), Convert.ToDouble(ls[j + 1][2]));//判断是否是往返点<5度if (IastAngle < 5 && curAngle < 5) boolRetrace = true; else boolRetrace--false;//判断是否是过密点<2米if (getDistance(Convert.ToDouble(ls[j - 1][3]), Convert.ToDouble(lsO -1][2]), Convert.ToDouble(ls[j][3]), Convert.ToDouble(ls[j][2])) < 0.002) boolClose = true; else boolClose = false;//判断是否是错误点速度>10if (Convert.ToDouble(ls [j ] [4]) > 10) boolError = true; else boolError 二false;//判断是否是漂移数据点N点中心<1M IastDriftCenter=CurDriftCenter;curDriftCenter = getCenter(Convert.ToDouble(ls[j - 1][3]), Convert.ToDouble(ls[) -1][2]), Convert.ToDouble(ls[j][3]), Convert.ToDouble(ls[j][2]), Convert.ToDouble(ls[j + 1][3]), Convert.ToDouble(lsO + 1][2]));if (getDistance(curDriftCenter
, curDriflCenter[ 1 ], lastDriflCenter
, lastDriftCenter[l]) < 0.005) boolDrifling = true; else boolDrifting = false; //是否在道路面内if(!CheckNotContainSta(Convert.ToDouble(ls[j][3]), Convert.ToDouble(ls[j][2]))) boolOutRoad = true; else boolOutRoad = false;if (!(boolRetrace 丨丨 boolClose || boolError || boolDrifting || boolOutRoad)) {p.PutCoords(Convert.ToDouble(ls[j][3]), Convert.ToDouble(ls[j][2])); ptclo.AddPoint(p, ref Missing, ref Missing);} ο
3.根据权利要求1所述的一种基于MBR的GPS轨迹地图匹配方法,其特征在于MBR的地图匹配算法代码if image_array(i,j ,near(k))==0temp_col_2=l +floor(near(k)/row); temp_row_2=near(k)-(temp_col_2-1 )*row; temp_row_3=(temp_row_2-1 )*A+i; temp_col_3=(temp_col—2-1 )*A+j ; dis=distance(temp_row_3,temp_col_3 ,obj_row,obj_col); temp=image_array(:,: ,near(k)); angle=find_near_node(temp,i,j,k,input_angle); if Deside(temp_col_3 ,temp_row_3 ’obj 一col,obj_row) all 二 dis* l+angle*0; if all<=small small=dis;final—i=i;%最终匹配点 fianl_j=j;%最终匹配点 final_k=near(k);% 最终匹配点 Aag=I; end elseflag=0; end end
全文摘要
本发明公开了一种基于MBR的GPS轨迹地图匹配方法,将便携式GPS设备与计算机主机连接,本发明有如下优点和积极效果1.本发明引入了历史信息和路网拓扑信息,使用距离和角度判断相匹配的道路,提高了匹配精度,减少了错误;2.本发明简单有效,降低了匹配计算的复杂度,提高了时间效率,能处理较大的数据量,有很好的实时性;3.容错性能较好,允许不正确的数据输入;4.本发明实现对错误点的过滤,进一步提高定位的准确性。
文档编号G01C21/30GK102435197SQ20111022329
公开日2012年5月2日 申请日期2011年8月5日 优先权日2011年8月5日
发明者李欢欢 申请人:刘建勋, 张明月, 金龙
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1