CN102436463A - 一种导航数据转换中内存管理的方法 - Google Patents
一种导航数据转换中内存管理的方法 Download PDFInfo
- Publication number
- CN102436463A CN102436463A CN2011102548943A CN201110254894A CN102436463A CN 102436463 A CN102436463 A CN 102436463A CN 2011102548943 A CN2011102548943 A CN 2011102548943A CN 201110254894 A CN201110254894 A CN 201110254894A CN 102436463 A CN102436463 A CN 102436463A
- Authority
- CN
- China
- Prior art keywords
- navigation data
- graticule mesh
- memory
- data
- statistics
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Traffic Control Systems (AREA)
Abstract
本发明公开了一种导航数据转换中内存管理的方法,包括建立导航数据格网索引的步骤;对导航数据进行内存统计的步骤;根据统计结果存储导航数据的步骤;对导航数据进行管理处理的步骤。采用本发明解决了全国大比例尺的导航数据在转换数据格式时内存开销大,对硬件性能要求高的问题,实现了大数据量的数据在很小的硬件配置下进行转换处理和使用。
Description
技术领域
本发明公开了一种导航数据转换中内存管理的方法。
背景技术
支持基于位置服务(LBS)与智能交通系统(ITS)的地理数据叫做导航地理数据,简称导航数据。导航数据已在个人移动导航服务、汽车自主导航、各种监控和运营服务系统等领域得到应用,形成了巨大的市场规模。导航数据的特点是比例尺大、精度高、道路属性全、POI(Point of Interest,兴趣点)信息丰富、带有交通管制信息。导航数据的制作一般是专业的数据生产公司利用常用的GIS工具生成的如.MIF、shapefile、E00等通用矢量的数据交换格式,这些格式在使用时需要转换成各自平台的自有格式,才能被平台使用。
在数据格式转换时,常规方法的流程是:首先建立空间格网索引,在索引项中预先分配动态数组来存储对象地址,对每一个存储对象进行独立的内存分配。这种做法实际占用内存量也会变大,例如当一个数据对象需要的存储空间为32byte时,系统为管理此对象,要对其分配超过36byte的空间。当数据量变大至几个G、上百G,索引对象在10万以上时,这种方法带来的不足是内存消耗巨大,而且频繁的进行内存的分配与释放操作,会出现内存碎片,使得海量数据转换对硬件要求比较高。全国大比例尺的导航数据以道路数据为例,通常是有10G以上,就目前普通的PC机的性能配置来说完成此任务几乎是不能的。针对大数据量数据转换消耗内存空间比较大的问题,目前有一些解决办法,例如将全国的数据进行分块存储,对每一块数据进行单独的处理。这种物理上分块存储的方法,不适合于全国道路数据的转换,在分块处道路的连通性不能够保证。在做路径规划时需要考虑整体的路网拓扑关系,因此分块处理的方法存在一定的缺陷。
发明内容
本发明的技术解决问题是:克服现有技术的不足,提供了一种导航数据转换中内存管理的方法。采用本发明解决了全国大比例尺的导航数据在转换数据格式时内存开销大,对硬件性能要求高的问题,实现了大数据量的数据在很小的硬件配置下进行转换处理和使用。
本发明的技术解决方案是:
在对海量导航数据转换时,对处理过程进行分步分解,在统计数据对象个数步骤内,不进行内存的分配,当对所有的数据对象进行遍历,统计与每个对象相关联的有效信息需要占有的内存量,计算出总的对象需要占用的内存量,然后一次性进行内存分配,在转换结束时,一次性释放内存。从而避免了频繁的内存操作,减少内存碎片的产生。
为了实现上述发明方案,通过以下步骤进行操作:
100:读取导航数据创建格网空间索引,所述导航数据中包括导航数据中所有元素的空间坐标;
利用读取的导航数据中元素的空间坐标确定空间索引的格网的大小;并根据格网的大小确定导航数据所对应的格网总数;
根据格网的大小划分导航数据中每个元素所属的格网;
200:以格网为索引项,对格网中的元素进行内存统计:
遍历每个格网中的元素,对每个元素的属性项进行统计;
针对每个元素中不同属性项的大小统计内存空间;
完成一个元素中所有属性项的内存统计后,对格网中的元素计数进行累加,当累加计数等于格网中元素总数时,转入步骤300;
300:将步骤200中统计完成的格网中的元素根据统计得到的内存空间大小进行存储;
400:导航数据处理软件按照预定义的格式,将导航数据中的元素进行关联处理,将处理后的导航数据信息存储到外存。
本发明与现有技术相比具有如下优点:
(1)本发明根据获取的导航数据中的元素即道路节点和道路弧度等,确定作为索引项的格网大小,如,当导航数据中包含较为稀疏的元素时,采用大格网;当导航数据中包含较为密集的元素时,采用小格网。以此对导航数据进行划分,有效的规划了导航数据中的处理容量。
(2)本发明对导航数据中每个元素的属性项进行初次内存统计,在初次内存统计的结果上,以元素为单位计算需分配内存的大小,实现了连续大存储空间的分配,进而规避了现有技术对导航数据格式转换时内存统计和分配时,容易造成内存碎片消耗额外内存的问题。
附图说明
图1为本发明流程图;
图2为导航数据示意图。
具体实施方式
下面就结合附图对本发明做进一步介绍。
如图1所示,为本发明流程图。本发明的具体步骤如下:
(1)建立导航数据格网索引
读取的导航数据创建格网空间索引,在读取的导航数据中包括导航数据中所有元素的空间坐标。元素的类型有道路节点NODE、道路弧度LINK以及道路规则。
根据道路节点NODE、道路弧度LINK中的空间坐标,确定对导航数据进行划分时所采用的格网大小,选择合适大小的格网可以有效的划分导航数据中的元素个数,从而便于在后续步骤中对导航数据内存空间的管理处理。
例如,按经差1°×纬差40’划分格网的大小,格网的起点(第一个格网的左下角点)为纬度0°,经度60°。
确定格网大小和格网总数后,对所有的格网进行编号。编号规则是:纬度行号(两位整数RR)+经度列号(两位整数LL)。由任意元素空间坐标的经纬度求该点处于哪个网格的格网号计算公式为:
RR=取整(纬度*60/40);
LL=取整(经度)-60;
例如:已知某空间坐标
经度=125.3752°=125°22’30.72”;
纬度=28.2669°=28°16’0.84”;
RR=取整(28.2669*60/40)=取整(42.40035)=42;
LL=取整(125.3752)-60=65;格网号为4265。
完成格网标号的同时也将导航数据中的元素按照空间坐标与格网号的对应关系进行了划分。
(2)统计导航数据内存
对读取的外部导航数据进行格式转换时,由于自身格式与外部导航数据格式间的差异,因此,要对需进行格式转换的外部导航数据进行存储空间的统计。
在本发明中以格网为索引项对对导航数据进行内存统计,即对遍历每个格网,对格网中的元素所需内存分别进行统计。
上述导航数据包括道路节点NODE、道路弧度LINK以及道路规则。在利用不同类型的外部导航数据时,不同的元素类型的不同属性项之间具有不一样的关联关系,因此,内存统计时,对属于同一元素的每一个属性项分别进行统计,获取一个元素所需要的完成内存空间大小。
在遍历完导航数据中的所有格网和格网中的全部元素后,完成对内存的统计处理。
(3)导航数据内存分配
按照步骤(2)获得的内存空间大小,对导航数据中的元素进行存储,从而可以将每个元素完整连续的存储于一段内存中,避免了由于每个元素空间属性项内存过小,单独存储而造成的内存空间碎片。
(4)导航数据关联处理
完成对导航数据的存储后,导航数据处理软件按照预定义的格式,将导航数据信息中的元素进行关联处理,将处理后的导航数据信息存储到外存。
实施例
把1∶25000比例尺下的全国道路网数据进行转换,从MIF格式转换到本发明导航处理平台需要的路径规划数据格式,算法的步骤如下:
●导航数据文件整体信息读取
全国道路路网数据,具有中国的地理空间范围,道路网的构成包括有道路结点NODE和道路弧度LINK组成,如图2所示。一般的道路属性信息例如,长度、车道数、流向等与路径规划相关的属性信息。
●分配索引项
根据全国的坐标范围和比例尺,将全国的数据划分为5317*64个索引格网,每个格网被称为索引项,该索引项的属性包含处于该索引范围内的数据对象的总数和对象的存储地址,本实例中指该空间范围内的LINK总数N和每一条LINK在该索引项中的存储地址LINK[i]。
●统计对象数和存储每一个对象的有效信息所需要的内存量
将每一个LINK作为一个对象,在全国范围内遍历LINK。根据LINK的空间系统计算出该LINK所属的索引项。将该索引项的索引号作为一个属性添加至对象信息中。对于用于路径规划的道路信息,其需要的有效信息主要包含道路的长度、道路通行状况(单向通行、双向通行)等与LINK相连的属性信息。这些属性信息所需要的内存如果是32KB,则总的内存需要量是TotalLINK*32KB。
●一次性分配内存
根据上步骤中所计算出来的总的内存需求量,一次分配内存TotalLINK*32KB。
●遍历数据对象,根据对象的索引值,将对象的地址添加到已分配好的索引项的对象地址中。
该方法的优势是在对海量导航数据进行处理时,对内存的消耗量大大减少,根据实验数据对比,采用传统的方法和该方法在处理10G数据时,对内存的消耗量对比可以看出该算法的在数据量比较小的情况下,对内存的使用量和常规的方法区别不大,但是随着数据量的增加,常规方法所消耗的内存量在急剧的增加,逐渐使得性能配置比较差的PC机不能完成数据转换的任务。
当试验的数据量依次增加时,其消耗内存如下表所示:
实验数据对比表
数据对象个数 | 本发明内存消耗 | 常规方法内存消耗 |
5000 | 3.4M | 3.5M |
10000 | 8.6M | 13.9M |
50000 | 64.4M | 150.8M |
500000 | 997.6M | 2800M |
1000000 | 1620M | >4000M |
注:实验环境是普通的PC机,配置情况:dell intel(R)core(TM)2Duo CPUE75002.93GHZ 4GB内存,操作系统WindowXP。
本发明未详细说明部分属本领域技术人员公知常识。
Claims (1)
1.一种导航数据转换中内存管理的方法,其特征在于:
100:读取导航数据创建格网空间索引,所述导航数据中包括导航数据中所有元素的空间坐标;
利用读取的导航数据中元素的空间坐标确定空间索引的格网的大小;并根据格网的大小确定导航数据所对应的格网总数;
根据格网的大小划分导航数据中每个元素所属的格网;
200:以格网为索引项,对格网中的元素进行内存统计:
遍历每个格网中的元素,对每个元素的属性项进行统计;
针对每个元素中不同属性项的大小统计内存空间;
完成一个元素中所有属性项的内存统计后,对格网中的元素计数进行累加,当累加计数等于格网中元素总数时,转入步骤300;
300:将步骤200中统计完成的格网中的元素根据统计得到的内存空间大小进行存储;
400:导航数据处理软件按照预定义的格式,将导航数据中的元素进行关联处理,将处理后的导航数据信息存储到外存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110254894 CN102436463B (zh) | 2011-08-31 | 2011-08-31 | 一种导航数据转换中内存管理的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110254894 CN102436463B (zh) | 2011-08-31 | 2011-08-31 | 一种导航数据转换中内存管理的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102436463A true CN102436463A (zh) | 2012-05-02 |
CN102436463B CN102436463B (zh) | 2013-05-01 |
Family
ID=45984527
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110254894 Active CN102436463B (zh) | 2011-08-31 | 2011-08-31 | 一种导航数据转换中内存管理的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102436463B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107180033A (zh) * | 2016-03-09 | 2017-09-19 | 高德软件有限公司 | 一种电子地图数据存储方法及装置 |
CN110794826A (zh) * | 2019-09-24 | 2020-02-14 | 北京旷视机器人技术有限公司 | 混合导航方法及装置、通信方法及装置、设备、存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070253642A1 (en) * | 2006-04-27 | 2007-11-01 | Mapinfo Corporation | Method and apparatus for indexing, storing and retrieving raster (GRID) data in a combined raster vector system |
CN101478567A (zh) * | 2009-01-09 | 2009-07-08 | 南京联创科技股份有限公司 | 基于网格划分的内存管理方法 |
CN101630366A (zh) * | 2009-07-31 | 2010-01-20 | 中国科学院地理科学与资源研究所 | 大量分块地形数据的动态淹没区提取方法、装置及系统 |
CN101996258A (zh) * | 2010-11-30 | 2011-03-30 | 重庆大学 | 一种便于快速查询的电子地图信息栅格化处理及查询方法 |
-
2011
- 2011-08-31 CN CN 201110254894 patent/CN102436463B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070253642A1 (en) * | 2006-04-27 | 2007-11-01 | Mapinfo Corporation | Method and apparatus for indexing, storing and retrieving raster (GRID) data in a combined raster vector system |
CN101478567A (zh) * | 2009-01-09 | 2009-07-08 | 南京联创科技股份有限公司 | 基于网格划分的内存管理方法 |
CN101630366A (zh) * | 2009-07-31 | 2010-01-20 | 中国科学院地理科学与资源研究所 | 大量分块地形数据的动态淹没区提取方法、装置及系统 |
CN101996258A (zh) * | 2010-11-30 | 2011-03-30 | 重庆大学 | 一种便于快速查询的电子地图信息栅格化处理及查询方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107180033A (zh) * | 2016-03-09 | 2017-09-19 | 高德软件有限公司 | 一种电子地图数据存储方法及装置 |
CN110794826A (zh) * | 2019-09-24 | 2020-02-14 | 北京旷视机器人技术有限公司 | 混合导航方法及装置、通信方法及装置、设备、存储介质 |
CN110794826B (zh) * | 2019-09-24 | 2023-10-20 | 北京旷视机器人技术有限公司 | 混合导航方法及装置、通信方法及装置、设备、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102436463B (zh) | 2013-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11469949B2 (en) | Hierarchical configuration of networked communication devices | |
CN110807075B (zh) | 地图数据查询方法、装置、计算机设备及存储介质 | |
CN102289466A (zh) | 一种基于区域覆盖的k近邻查询方法 | |
CN109413661B (zh) | 一种计算站距的方法及装置 | |
WO2023087508A1 (zh) | 一种冷链物流监控方法、系统和计算机设备 | |
CN108337685B (zh) | 基于分簇dgm的无线传感器网络数据融合方法 | |
CN116363854B (zh) | 共享出行车辆调度方法、装置和计算机设备 | |
CN111966289A (zh) | 基于Kafka集群的分区优化方法和系统 | |
CN107247761A (zh) | 基于位图的轨迹编码方法 | |
CN111523777A (zh) | 一种新型智慧城市系统及其应用方法 | |
CN102768666A (zh) | 一种工业数据存储读取方法及其系统 | |
CN102436463B (zh) | 一种导航数据转换中内存管理的方法 | |
CN103593435A (zh) | 不确定数据PT-TopK查询近似处理系统和方法 | |
Song et al. | A partial index for distributed broadcasting in wireless mobile networks | |
CN102984798B (zh) | 基于位置精确定位方法 | |
US8892567B2 (en) | Distributed system | |
CN103500223B (zh) | 一种面向移动用户的矢量地图数据压缩方法 | |
CN107341193B (zh) | 路网中移动对象查询方法 | |
CN111723907B (zh) | 一种模型训练设备、方法、系统及计算机可读存储介质 | |
CN105096589A (zh) | 一种选取交通道路中代表性节点的方法、系统及客户端 | |
CN104850621B (zh) | 一种路网模型自动生成的方法 | |
CN109344209A (zh) | 一种基于大数据的地址测试方法及终端设备 | |
CN108229788B (zh) | 充换电站的布点方法及装置、存储介质、处理器 | |
CN103281745B (zh) | 一种商拓扑能量递阶博弈的无线传感网路由方法 | |
CN112468530A (zh) | 北斗高精度格网差分数据高可用高并发播发方法、设备、介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |