矢量数据读取方法及系统、矢量数据可视化方法及系统与流程

文档序号:12825116阅读:536来源:国知局
矢量数据读取方法及系统、矢量数据可视化方法及系统与流程

本发明涉及矢量数据读取和可视化技术领域,具体涉及一种矢量数据读取方法和一种矢量数据读取系统,以及一种矢量数据快速可视化方法和一种矢量数据快速可视化系统。



背景技术:

矢量数据是gis存储、表达及管理的重要信息之一,是用矢量数据结构存储和表示的空间数据,通过记录坐标的方式,用点、线、面等基本要素来表示各种地理空间实体,其表示的坐标空间是连续的,所以能精确定义地理实体的任意位置、长度、面积等。矢量数据一般通过测量方式自动/半自动获取或者由人工输入创建,用户可对其进行分析和修改,是进行各种深入研究工作的重要信息资源。

随着遥感、航测等诸多遥测手段的大规模应用,世界各国各行业获取的多源遥感影像数据量呈几何式激增,人类业已迈入海量大数据时代,对于矢量数据,百万要素已是很常见。而对于遥感栅格数据,几百gb大小的数据也是比较常见。因此,对于地理信息系统而言,如何快速地对这些数据进行可视化处理是地理信息领域的一大问题。

可视化的基本含义是将科学计算中产生的大量非直观的、抽象的或者不可见的数据,借助计算机图形学和图像处理等技术,以图形图像信息的形式,直观、形象地表达出来,并进行交互处理。

目前地理信息系统中的矢量数据可视化大都采用桌面软件形式,整个软件系统安装在个人电脑上,数据存于本地,计算、绘制均由单机完成;或者虽然数据存于服务器,但是绘制时将数据传回本地然后再在本地进行绘制。在该可视化方法的使用过程中,数据存储于本地时会受到本地存储容量的限制;而数据存储于服务器时,在绘制时将数据传回本地需要较长的时间。因此,对于大规模数据,无法实现快速的可视化处理。

传统的数据缓存方案多数是依赖于本地文件系统,这种缓存方式在普通环境下会提升数据处理速度,但是当大量用户并发访问或者数据表海量增长时,这种缓存方式则成为系统的瓶颈,在共享性、可扩展性上都存在困难。因此,针对海量数据有必要设计新的缓存方式。

鉴于此,克服以上现有技术中的缺陷,提供一种新的矢量数据读取方法和可视化方法成为本领域亟待解决的技术问题。



技术实现要素:

本发明的目的在于针对现有技术的上述缺陷,提供一种矢量数据读取方法和一种矢量数据读取系统,以及一种矢量数据快速可视化方法和一种矢量数据快速可视化系统。

本发明的目的可通过以下的技术措施来实现:

一种矢量数据读取方法,与现有技术相比,其不同之处在于,该读取方法包括如下步骤:

a)根据屏幕显示最小像素计算不同显示比例尺下所查询数据对应逻辑大小以获得从空间数据库中所需读取的在显示范围内可显示的数据;

b)对步骤a)所得数据的每一个单个简单要素进行遍历并建立缓存;和

c)对步骤b)所建立数据缓存建立相交的网格索引。

优选地,该读取方法还包括如下步骤:通过计算服务器cpu核数和单个数据量所需分配读取数据线程数以实现根据网络带宽调整单次网络传输量。

优选地,所述步骤c)具体包括:

步骤c1)将多个要素建立网格;

步骤c2)根据每一个要素在所建立网格上的分布情况以及该要素矩形范围与网格的网格线是否相交建立网格索引。

本发明还一种矢量数据读取系统,与现有技术相比,其不同之处在于,该系统包括:

用于根据屏幕显示最小像素计算不同显示比例尺下所查询数据对应逻辑大小以获得从空间数据库中所需读取的在显示范围内可显示的数据的数据过滤模块;

用于对数据过滤模块所得数据的每一个单个简单要素进行遍历并建立缓存的数据缓存模块;和

用于对数据缓存模块所建立数据缓存建立相交的网格索引的数据索引模块。

优选地,该系统还包括:用于通过计算服务器cpu核数和单个数据量所需分配读取数据线程数以实现根据网络带宽调整单次网络传输量的数据i/o模块。

本发明还提供了一种矢量数据快速可视化方法,与现有技术相比,其不同之处在于,该可视化方法包括如下步骤:

步骤1)根据上述的数据读取方法进行数据读取;

步骤2)对所读取数据进行处理;以及

步骤3)对所处理数据进行渲染。

优选地,所述数据处理包括数据化简、坐标转换和数据裁剪。

优选地,所述数据渲染包括并行渲染、地图缓存和硬件加速。

本发明最后提供一种矢量数据快速可视化系统,与现有技术相比,其不同之处在于,该系统包括:

根据上述的数据读取方法进行数据读取的数据读取器;

用于对数据进行处理的数据处理器;以及

用于对数据进行渲染的数据渲染器。

优选地,所述数据处理器包括依次连接的数据化简模块、坐标转换模块和数据裁剪模块;所述数据渲染器包括依次连接的并行渲染模块、地图缓存模块和硬件加速模块。

本发明的矢量数据读取方法以及矢量数据可视化方法通过对数据过滤以有效减少数据读取量,部署环境时在内存数据库中创建初级缓存数据提高查询命中率,减少对服务器数据的拉取,同时基于不同cpu核数下的数据读取最优加速比,减少渲染数据量等多种技术手段提高基本的点,线,面的绘制效率,有效提升了矢量数据可视化速度,同时提高了在海量数据中较小范围数据的查询效率。

附图说明

图1是本发明实施例的矢量数据可视化系统结构示意图。

图2是本发明实施例的矢量数据可视化方法中创建初级缓存流程图。

图3是本发明实施例的矢量数据可视化方法中读取初级缓存流程图。

图4是本发明实施例的相交的网格索引结构示意图。

图5是本发明实施例的网格索引示例图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图和具体实施例对本发明作进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

在下文中,将参考附图来更好地理解本发明的许多方面。附图中的部件未必按照比例绘制。替代地,重点在于清楚地说明本发明的部件。此外,在附图中的若干视图中,相同的附图标记指示相对应零件。

如本文所用的词语“示例性”或“说明性”表示用作示例、例子或说明。在本文中描述为“示例性”或“说明性”的任何实施方式未必理解为相对于其它实施方式是优选的或有利的。下文所描述的所有实施方式是示例性实施方式,提供这些示例性实施方式是为了使得本领域技术人员做出和使用本公开的实施例并且预期并不限制本公开的范围,本公开的范围由权利要求限定。在其它实施方式中,详细地描述了熟知的特征和方法以便不混淆本发明。出于本文描述的目的,术语“上”、“下”、“左”、“右”、“前”、“后”、“竖直”、“水平”和其衍生词将与如图1定向的发明有关。而且,并无意图受到前文的技术领域、背景技术、发明内容或下文的详细描述中给出的任何明示或暗示的理论限制。还应了解在附图中示出和在下文的说明书中描述的具体装置和过程是在所附权利要求中限定的发明构思的简单示例性实施例。因此,与本文所公开的实施例相关的具体尺寸和其他物理特征不应被理解为限制性的,除非权利要求书另作明确地陈述。

为了解决上述问题,本技术方案提供了一种新的矢量数据快速可视化引擎,引擎通过在部署环境时创建初级缓存,进行数据的预缓存,减少对服务器数据的拉取,直接从缓存读取数据而不是从空间数据库读取数据,同时通过数据地图显示的大小与屏幕像素之间的关系来控制数据查询时的数据量,在数据查询的时候就控制少查询数据,而不是查询数据后再筛选,从数据源读取时就减少时间消耗,提升处理速度及可视化效率。

本发明设计的海量矢量数据快速可视化引擎包含空间数据库数据读取,数据处理,数据渲染三个主要模块,数据读取主要包括数据过滤、数据i/0、数据缓存、数据索引四部分;数据处理主要包括数据化简、坐标转换、数据裁剪三部分;数据渲染主要包括并行渲染、地图缓存、硬件加速三部分。

一种新的矢量数据快速可视化引擎,从数据读取、数据处理、数据渲染等多个环节入手,在每个环节通过设计新的数据缓存机制、建立数据索引等多种技术手段来改进数据显示的方法,优化数据处理的流程,共同作用来提升矢量数据显示速度,达到快速可视化的目的。

本发明实施例提供一种矢量数据读取方法,包括如下步骤:

s1,根据屏幕显示最小像素计算不同显示比例尺下所查询数据对应逻辑大小以获得从空间数据库中所需读取的在显示范围内可显示的数据;

s2,通过计算服务器cpu核数和单个数据量所需分配读取数据线程数以实现根据网络带宽调整单次网络传输量;

s3,对所得数据的每一个单个简单要素进行遍历并建立缓存;和

s4,对所建立数据缓存建立相交的网格索引。

在一个优选实施方式中,所述步骤s104具体包括:

s4-1,将多个要素建立网格;

s4-2,根据每一个要素在所建立网格上的分布情况以及该要素矩形范围与网格的网格线是否相交建立网格索引。

相应地,本发明实施例还提供了一种矢量数据读取系统,包括:数据过滤模块、数据i/o模块、数据缓存模块和数据索引模块。其中,数据过滤模块用于根据屏幕显示最小像素计算不同显示比例尺下所查询数据对应逻辑大小以获得从空间数据库中所需读取的在显示范围内可显示的数据。数据i/o模块用于通过计算服务器cpu核数和单个数据量所需分配读取数据线程数以实现根据网络带宽调整单次网络传输量。数据缓存模块用于对数据过滤模块所得数据的每一个单个简单要素进行遍历并建立缓存的。数据索引模块用于对数据缓存模块所建立数据缓存建立相交的网格索引。

如图2所示,本发明实施例中利用数据读取系统的数据缓存模块为单个简单要素类创建初级缓存文件的一个具体实施方式包括以下步骤:

判断数据类型步骤201:针对每个简单要素类(layer)判断数据类型是否为简单要素类数据类型(sfcls),若是,则进入步骤202进行处理;若不是,则进一步判断数据类型是否为注记类(acls),若是,则进入步骤202进行处理,若不是,则结束本次缓存文件的创建;

判断并创建对角线索引步骤202:接收步骤201输入过来的数据后,首先判断是否存在对角线索引,若存在,则直接进入步骤203进行处理;若不存在,则创建对角线索引后再进入步骤203进行处理;

判断并创建聚集索引步骤203:接收步骤202输入过来的数据后,首先判断是否存在聚集索引,若存在,则直接进入步骤204进行处理;若不存在,则创建聚集索引后再进入步骤204进行处理;

设置图元个数初始值步骤204:接收步骤203输入过来的数据后,为每一批缓存的图元个数设置一个初始值,进入步骤205;

获取缓存比例步骤205:接收步骤204输入过来的数据后,获取简单要素类中所有图元的缓存比例,进入步骤205;

获取源类的参照系步骤206:接收步骤205输入过来的数据后,获取源类的参照系,进入步骤207;

获取目的类的参照系步骤207:接收步骤206输入过来的数据后,获取目的类的参照系,进入步骤208;

下载缓存步骤208:接收步骤207输入过来的数据后,下载缓存,即完成单个简单要素类的初级缓存文件的创建,1个简单要素类对应1个缓存文件。

上述创建完成的缓存文件结构包括四部分,第一部分记录基本信息;第二部分记录划分带的信息;第三部分记录图元几何的基本信息;第四部分记录图元的几何二进制信息。

表1初级缓存文件结构:

如图3所示,本发明实施例的数据读取系统的数据缓存模块读取初级缓存文件的一个具体实施方式包括以下步骤:

入口参数检查步骤301:绘制缓冲,检查入口参数,主要检查3个参数,1)图层是否为空,2)图层的范围是否为空,3)图层的绘制对象是否为空,若参数为空,则转入步骤314,读取结束;若不是,则进入步骤302;

判断数据类型步骤302:判断数据类型是否是fcls_spnt_type点类型,若是,则转入步骤314,读取结束;若不是,则进入步骤303;

判断缓存文件是否打开步骤303:通过获取缓存文件的二进制流的长度判断缓存文件是否已经打开,若是,直接进入步骤304;若不是,则先打开缓存文件,然后进入步骤304;

设置相关参数步骤304:对打开的缓存文件设置相关参数,一共设置4个参数,1)设置还原显示,2)设置符号比,3)设置对角线长度阈值,4)设置绘制的最大点数,设置完成后,进入步骤305,开始读取缓存文件;

读取第一部分步骤305:读取缓存文件的第一部分基本信息,读取后,进入步骤306;

遍历读取第二部分步骤306:遍历读取缓存文件的第二部分分带信息,判断数据是否违规;

按照以下顺序进行3次判断,当判断结果为否时进入下一次判断,否则转入步骤307,判断的步骤包括:

判断当前带的最大x<当前图层范围的最小x;

判断当前带的最小x>当前图层范围的最大x;

判断第三部分中属于当前带的图元所占空间大小是否小于等于0;

若3次的判断结果均为否,说明该数据符合规则,则进入步骤308;若有任意一次的判断结果为是,说明该数据不符合规则,则转入步骤307。

第二部分遍历结束判断步骤307:判断第二部分的遍历是否结束,若是,转入步骤313;若不是,则转入步骤306继续遍历第二部分的数据。

遍历读取第三部分步骤308:开辟缓存文件第三部分的空间,即当前带的所有图元,获取数据,遍历读取第三部分图元,判断数据是否违规;

按照以下顺序进行5次判断,当判断结果为否时进入下一次判断,否则转入步骤307,判断的步骤包括:

判断当前图元的infid>图层的最大infid;

判断当前图元的最大x<当前图层范围的最小x;

判断当前图元的最小x>当前图层范围的最大x;

判断当前图元的对角线<本次对角线限制;

判断当前图元是否和图层当前范围相交;

若5次的判断结果均为否,说明该数据符合规则,则进入步骤310;若有任意一次的判断结果为是,说明该数据不符合规则,则转入步骤309。

第三部分遍历结束判断步骤309:判断第三部分的遍历是否结束,若是,转入步骤307;若不是,则转入步骤308继续遍历第三部分的数据。

开辟第四部分的空间步骤310:开辟第四部分的空间,即单个图元。

获取并绘制数据步骤311:获取数据,读取图元的几何二进制信息,根据不同的几何类型,分别绘制点、线、区。

释放空间步骤312:依次释放第四部分、第三部分的空间。

结束绘制步骤313:结束绘制,将绘制的点、线、区合成bmp图片。

结束进程步骤314:结束进程,完成缓存文件的读取。

如图4所示,本发明实施例中利用数据读取系统的数据索引模块为缓存文件创建相交网格索引的一个具体实施方式如下:

步骤401:网格索引是将要素类在x方向上进行m等分,y方向上进行n等分,整个图幅范围分割为m*n个格子,并将要素类的数据分为m*n份,并对每个实体进行x编码和y编码,查询时利用编码值提高查询效率。

步骤402:图中有三个要素(要素1(id为1)、要素2(id为2)、要素3(id为3)),现在沿xcode、ycode方向创建一个2×2的网格(起始坐标为xcode0、ycode0)。

网格创建以后,可以看见其中要素1包含在网格(xcode0,ycode0)中,要素2跨越了网格(xcode0,ycode0)和(xcode0,ycode0+1),要素3相交在网格线上。

步骤403:根据图中的要素在网格划分后的分布情况,以及相交的条件(要素矩形范围与网格线是否相交),创建了网格索引(见图5)。

由于要素2与网格线相交而要素3跨越了网格,所以要素2和要素3在网格(xcode0,ycode0和(xcode0,ycode0+1)中都存在,这样在网格索引表中要素2和要素3的id就出现了两次。

本发明实施例还提供了一种矢量数据快速可视化方法,包括如下步骤:

步骤1)根据上述的数据读取方法进行数据读取;

步骤2)对所读取数据进行处理;以及

步骤3)对所处理数据进行渲染。

在一个优选实施方式中,所述数据处理包括数据化简、坐标转换和数据裁剪。所述数据渲染包括并行渲染、地图缓存和硬件加速。

相应地,本发明实施例还提供了一种矢量数据快速可视化系统,包括:

根据上述的方法进行数据读取的数据读取器;

用于对数据进行处理的数据处理器;以及

用于对数据进行渲染的数据渲染器。

在一个优选实施方式中,所述数据处理器包括依次连接的数据化简模块、坐标转换模块和数据裁剪模块;所述数据渲染器包括依次连接的并行渲染模块、地图缓存模块和硬件加速模块。

具体地,如图1所示,本发明实施例的矢量数据快速可视化系统的框架包括数据读取器101、数据处理器102、数据渲染器103,其中:

数据读取器101:从空间数据库中读取海量数据,并传输至数据处理器进行进一步处理,数据读取器主要包括数据过滤模块、数据i/0模块、数据缓存模块、数据索引模块四个工具。

所述数据过滤模块主要通过定义屏幕显示最小像素,通过像素计算各种显示比例尺下对应的逻辑大小,在数据库查询时直接对查询过滤,查询出显示范围内可显示的精确数据,做到快、少、精,从而有效减少数据读取量;。

所述数据i/o模块考虑网络带宽对于i/o读写的影响,根据网络带宽环境自适应调整单次网络传输量,通过dq算法能够依据绘制服务器cpu核数以及单个数据量自适应分配读取数据的线程数,从而达到基于不同cpu核数下的数据读取最优加速比;

所述数据缓存模块在部署环境时创建初级缓存,数据缓存对海量数据的每个单个要素类进行遍历,建立缓存,减少对服务器数据的拉取,单个简单要素类创建缓存的流程如图2所示,在此不进行一一赘述。

数据缓存模块直接从缓存读取数据而不是从空间数据库读取数据,提升矢量数据显示速度,缓存数据读取流程如图3所示,在此不进行一一赘述。

数据缓存的模式包含图片、矢量数据两种形式,对缓存格式内部建立2级索引机制:空间分块索引及空间实体内容索引,有效的提高了数据查询的命中率和查询效率。

数据缓存能够支持缓存服务器和内存数据库两种形式,在b/s应用场景中通过缓存服务器的方式有效减少实际的数据库查询请求,在绘制服务器内核中则采用内存数据库缓存图片或者数据的方法来辅助提高查询命中率。

所述数据索引模块为缓存文件创建相交网格索引,根据相交的条件创建网格索引,将实体的矩形范围由四维转换成二维数据,数据读取时先读取网格索引,来提高在海量数据中较小范围数据的查询效率,具体参见图4,在此不进行一一赘述。

数据处理器102:接收数据读取器输入的海量数据,通过数据化简、坐标转换、数据裁剪等工具对数据进行加工处理,使数据成为格式统一、坐标统一的规则数据,方便下一步对数据进行渲染,数据处理器主要包括数据化简、坐标转换、数据裁剪三个工具。

所述数据化简工具采用lod技术对于海量矢量数据在显示前预处理从而达到显示数据量减少的同时不影响显示效果。

所述坐标转换工具考虑通过对数据进行统一的坐标基础预处理达到数学基础统一。

所述数据裁剪工具通过渲染范围对数据进行预裁剪,从而达到减少渲染数据量的目的。

数据渲染器103:接收数据处理器处理过的海量空间数据,采用并行渲染、地图缓存、硬件加速等多种技术手段来提高基本的点、线、面的绘制效率,输出数据,数据渲染器主要包括并行渲染、地图缓存、硬件加速三个工具;

所述并行渲染是在常规的多数据并行绘制的基础上,通过顺序划分或者间隔划分策略调整并行渲染任务中的数据量,达到对并行渲染任务的负载均衡效果,顺序划分主要考虑并行任务数据条目相同,间隔划分主要考虑任务数据量相同。

所述地图缓存工具是在常规的图片缓存基础上,通过对后台的渲染线程队列中添加任务优先级较低的预缓存任务达到扩展渲染范围提高临近范围的渲染效率。

所述硬件加速工具采用d2d技术提高基本的点,线,面的绘制效率。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1