CN115168682B - 一种大规模时空点数据lod绘制方法及装置 - Google Patents
一种大规模时空点数据lod绘制方法及装置 Download PDFInfo
- Publication number
- CN115168682B CN115168682B CN202211078000.4A CN202211078000A CN115168682B CN 115168682 B CN115168682 B CN 115168682B CN 202211078000 A CN202211078000 A CN 202211078000A CN 115168682 B CN115168682 B CN 115168682B
- Authority
- CN
- China
- Prior art keywords
- data
- pixel
- histogram
- scale
- statistical
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/907—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/909—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using geographical or spatial information, e.g. location
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/904—Browsing; Visualisation therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/906—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/001—Texturing; Colouring; Generation of texture or colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/206—Drawing of charts or graphs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Library & Information Science (AREA)
- Software Systems (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种大规模时空点数据LOD绘制方法及装置,所述方法包括:将层次编码索引与可视化查询参数结合,从数据库中范围查询与调度数据;确定绘制范围并根据其比例尺与边界坐标值,计算聚类统计中一个像素单元的大小规格,再统计每个像素包含的点要素个数,作为图像像素的聚类统计信息;对聚类统计数据进行预处理操作,生成统计直方图与直方图的横坐标值数组,二者再对聚类统计数据进行插值计算;设置颜色映射步长与映射取值范围,计算各个插值数据对应的像素位置的RGB映射值,作为像素绘制的颜色信息进行热力图渲染。本发明可以实现矢量地图中超大规模时空点要素LOD的高性能绘制。
Description
技术领域
本发明涉及地理信息系统(GIS)、计算机辅助设计(CAD)、计算机地图制图(CAC),导航地图、电子地图、手机地图领域,尤其涉及一种大规模时空点数据LOD绘制方法及装置。
背景技术
地图可视化一直是现代地图学的核心,地图可视化方法的性能和质量对高交互的制图和分析具有重要意义。大数据时代的到来,使得当前可视化方法难以应对矢量数据的海量性和复杂性带来的地图高交互性和数据查询与交互的挑战,大规模时空点数据绘制所涉及的空间索引技术、LOD(Level of Detail,细节层次)技术等方面的研究较为缺乏。
当前常见的点数据绘制方法包括基于OpenGL的图形绘制、GPU环境下的多种符号绘制、CPU与GPU协同绘制方式。基于OpenGL的图形绘制方法,能利用OpenGL高效的图形绘制性能提高矢量数据地图符号的绘制效率,并且总结了GPU环境符号绘制问题,但针对多种符号的绘制方法会造成渲染速度的降低,以及产生一定的符号变形。GPU环境下的多种符号绘制方法,优化了点符号的渲染方法,并通过内插V形折线、利用几何着色器等方式,实现了多种符号类型的绘制,但仅仅支持简单的符号绘制。CPU与GPU协同绘制方法,能够提升矢量数据的渲染效率,尤其是三维符号的渲染,但考虑范围局限于CPU与GPU环境如何支持符号样式的绘制,并未考虑可视化矢量数据的数据组织形式与要素符号化之间的关系。目前还未形成一个高效率、高质量且考虑矢量数据组织形式的大规模时空点对象LOD绘制方法。
发明内容
发明目的:为了解决当前大规模矢量数据带来的地图可视化效率低、渲染技术未考虑矢量数据组织形式的问题,本发明提供一种超大规模时空点数据LOD绘制方法及装置,实现点要素LOD的大规模高性能渲染。
技术方案:根据本发明的第一方面,一种大规模时空点数据LOD绘制方法,包括以下步骤:
(1)基于点区域四叉树,以索引节点存储层次编码和要素统计信息,构建层次编码点区域四叉树索引,计算可视化查询参数并结合层次编码,在数据库中进行数据的范围查询与调度;
(2)根据数据范围查询结果确定绘制范围,根据绘制范围边界坐标和比例尺确定一个像素单元在聚类统计中的长宽值,统计每个像素包含的点要素个数,作为像素的聚类统计信息;
(3)将聚类统计信息视为栅格数据,通过预处理操作生成栅格数据的归一化统计直方图和直方图横坐标值数组,利用归一化统计直方图和直方图横坐标值数组对栅格数据进行插值计算;
(4)以预设的颜色映射步长和映射取值范围计算各个插值数据对应的像素位置的RGB映射值,作为像素绘制的颜色信息进行热力图渲染。
进一步地,所述步骤(1)中,计算可视化参数包括计算像素比例尺、包围盒;在数据库中进行数据的范围查询与调度时,以像素比例尺作为查询调度的筛选条件,当节点尺度小于等于像素比例尺时,以单个点数据和统计信息来代表点要素结果集,而不进行子节点的数据查询与调度。
进一步地,所述步骤(2)包括以下步骤:
(2.1)判断当前显示窗口与数据集的最小包围盒是否相交,若不相交,则不进行绘制更新;若相交,则取相交区域为绘制范围,基于绘制范围的最大和最小横纵坐标值及其比例尺,计算像素聚类时一个像素单元所具有的长宽值;
(2.2)遍历查询结果集的每个点要素,将其坐标结合绘制范围的最小横纵坐标与比例尺,计算每个点要素经过像素聚类后所位于的像素的行列号;
(2.3)逐个点要素统计其所在像素的行列号,更新绘制范围内各个像素的聚类统计值,即每有一个点要素经过像素聚类后落在像素(x,y),则像素(x,y)所具有的点要素个数自增1,其中x和y分别为该像素的行号和列号;
(2.4)经过步骤(2.1)、步骤(2.2)和步骤(2.3)得到像素聚类生成的、具有点要素统计信息的栅格化绘制范围,绘制范围被M行N列像素均分,每格像素都有一个统计值,记录落在该像素内的点要素个数。
进一步地,所述步骤(3)包括以下步骤:
(3.1)将步骤(2)生成的像素的聚类统计信息作为栅格数据,对栅格数据进行归零消减后,生成该数据的统计直方图、直方图的横坐标值数组;
(3.2)从统计直方图中选取截断值,对步骤(3.1)的统计直方图和直方图横坐标值数组进行截断,再将统计直方图的累加和结果除以其所有数值的加总和,得到归一化统计直方图;
(3.3)以归一化统计直方图和直方图的横坐标值数组,对于栅格数据进行插值计算,通过二值法,或者二值猜测搜索结合坡度计算的方式,得到栅格数据的插值结果。
进一步地,所述步骤(4)包括以下步骤:
(4.1)设置颜色的映射步长与RGB三个颜色通道的映射取值范围;
(4.2)遍历步骤(3)的插值结果数组,根据当前插值数据的ID号、插值数组的最值和颜色映射步长计算映射索引号,根据该索引号,从映射取值范围中获取当前插值数据对应的像素位置的RGB颜色值;
(4.3)按照各像素的颜色值,完成点数据的热力图渲染。
根据本发明的第二方面,一种大规模时空点数据LOD绘制装置,包括:
空间查询模块,用于基于点区域四叉树,以索引节点存储层次编码和要素统计信息,构建层次编码点区域四叉树索引,计算可视化查询参数并结合层次编码,在数据库中进行数据的范围查询与调度;
像素聚类模块,用于根据数据范围查询结果确定绘制范围,根据绘制范围边界坐标和比例尺确定一个像素单元在聚类统计中的长宽值,统计每个像素包含的点要素个数,作为像素的聚类统计信息;
插值计算模块,用于将聚类统计信息视为栅格数据,通过预处理操作生成栅格数据的归一化统计直方图和直方图横坐标值数组,利用归一化统计直方图和直方图横坐标值数组对栅格数据进行插值计算;
颜色映射模块,用于以预设的颜色映射步长和映射取值范围计算各个插值数据对应的像素位置的RGB映射值,作为像素绘制的颜色信息进行热力图渲染。
根据本发明的第三方面,提供一种计算机设备,包括:一个或多个处理器;存储器;以及一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述程序被处理器执行时实现如本发明第一方面所述的大规模时空点数据LOD绘制方法的步骤。
根据本发明的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如本发明第一方面所述的大规模时空点数据LOD绘制方法的步骤。
有益效果:本发明将层次编码索引与可视化查询参数结合,从数据库中范围查询与调度数据;确定绘制范围并根据其比例尺与边界坐标值,计算聚类统计中一个像素单元的大小规格,再统计每个像素包含的点要素个数,作为图像像素的聚类统计信息;对聚类统计数据进行预处理操作,生成统计直方图与直方图的横坐标值数组,二者再对聚类统计数据进行插值计算;设置颜色映射步长与映射取值范围,计算各个插值数据对应的像素位置的RGB映射值,作为像素绘制的颜色信息进行热力图渲染。本发明能够支持大规模时空点对象进行高性能的LOD绘制,满足地图可视化高交互的快速响应需求,同时直接保留原始几何数据的完整性,便于时空点数据的调度、查询与渲染。与基于OpenGL的图形绘制方法相比,本方法避免了多种符号绘制方法对渲染速度的影响,解决了符号变形问题;与GPU环境下的多种符号绘制相比,本方法支持复杂符号的快速绘制;与CPU与GPU协同绘制方法相比,本方法根据可视化矢量数据的组织形式,构建面向可视化和空间数据层次性的索引结构,并在GPU中结合要素符号化之间的关系进行渲染。
附图说明
图1是本发明实施例的大规模时空点数据LOD绘制方法流程图;
图2是查询参数计算示意图;
图3是层次编码点区域树的查询流程示意图;
图4是点要素LOD调度示意图,其中(a)为原始坐标转换方法,(b)为统计点坐标转换方法;
图5是密集型点数据处理及渲染流程图;
图6是索引查询遍历对比示意图,其中(a)为四叉树索引遍历,(b)为本发明方法的查询遍历;
图7是大规模点数据渲染结果对比图,其中(a)为本发明方法渲染结果,(b)为DataShader方法渲染结果;
图8是本发明方法和DataShader方法对共享单车数据渲染的时间对比;
图9是本发明方法和DataShader方法对共享单车数据渲染的内存占用对比。
具体实施方式
下面结合附图对本发明的技术方案作进一步说明。
本发明的总体发明构思为:通过构建具有统计信息的层次编码索引,并将可视化查询参数与层次编码结合,从数据库中查询调度数据;基于点数据投影转换中的位置重复性,统计每个像素内所包含的点要素个数,通过单要素代表多要素的聚类统计计算,以聚类统计结果实现绘制范围的栅格化;将聚类统计信息作为栅格数据,对其进行预处理与归一化处理,以生成统计直方图等结果对栅格数据进行插值计算;基于颜色映射步长与映射取值范围,计算插值数据对应的颜色映射值,作为绘制数据进行点要素的热力图渲染,提高点数据渲染质量与效率。
参照图1,在一个实施例中,对我国某地区范围内共享单车的位置点数据进行LOD绘制/渲染,包括以下步骤:
步骤1,构建层次编码点区域四叉树索引,计算可视化查询参数并结合层次编码,在数据库中进行数据的范围查询与调度;
步骤2,确定绘制范围并根据其比例尺与边界坐标,计算一个像素单元在聚类统计中的长宽值,统计每个像素包含的点要素个数,作为像素的聚类统计信息,实现绘制范围的栅格化;
步骤3,将聚类统计信息视为栅格数据,通过预处理操作,生成栅格数据的归一化统计直方图和直方图横坐标值数组,利用归一化统计直方图和直方图横坐标值数组对栅格数据进行插值计算;
步骤4,以预设的颜色映射步长与映射取值范围,计算各个插值数据对应的像素位置的RGB映射值,作为像素绘制的颜色信息进行热力图渲染。
本发明在步骤1中实现混合点数据集的空间查询。面对空间索引层次性和可视化查询参数的需求,在索引结构上,本发明以点区域四叉树为基础,以索引节点存储层次编码和要素统计信息,构建层次编码点区域四叉树索引,从而能针对多种数据进行统一管理。在四叉树中,每个节点拥有一个层次编码,节点又存储了要素统计信息(即节点所包含的顶点数量)。基于空间范围划分父节点与子节点,父节点在空间范围上包含子节点,将较大的父节点空间范围划分成几个较小的空间范围,即作为子节点的空间范围。
在描述本发明空间索引查询方法前,先介绍与空间数据查询相关的参数概念。
像素比例尺S,表示屏幕像素单位所代表的地理范围大小;放缩因子F,表示对像素比例尺进行放缩的参数,用于控制数据查询精度;包围盒B,表示地理范围,由Xmin、Ymin、Xmax、Ymax四个参数组成,其分别代表地理范围的最小X值、最小Y值、最大X值、最大Y值;可视化查询窗口BV,表示当前可视化区域的地理范围;基于包围盒B延伸出空间索引节点包围盒BN,基于像素比例尺S延伸出节点所对应的尺度SN。
本发明空间索引节点不存储包围盒信息和节点尺度信息,因此索引节点包围盒信息和像素比例尺信息需在数据查询遍历时计算得出。
本发明中,子节点的像素比例尺为父节点的像素比例尺的1/2,子节点包围盒范围为父节点包围盒范围的1/4。图2为父节点包围盒为BP(Xmin,Ymin,Xmax,Ymax)子节点包围盒和像素比例尺计算示意图。图中1/2/3/4是从左下角开始,顺时针方向对四块区域进行计数,相关参数计算如下:以Xmin、Ymin、Xmax、Ymax分别代表地理范围的最小X值、最小Y值、最大X值、最大Y值,这四个参数组成了包围盒B,表示地理范围;以SP表示父节点P对应的尺度,SP = Xmax - Xmin;Xmid表示横坐标X方向中间值,Xmid = (Xmin + Xmax)/2.0;Ymid表示纵坐标Y方向中间值,Ymid = (Ymin + Ymax)/2.0;B1、B2、B3、B4分别表示子节点1/2/3/4的包围盒,B1=(Xmin,Ymin,Xmid,Ymid),B2=(Xmin,Ymid,Xmid,Ymax) ,B3=(Xmid,Ymin,Xmax,Ymid),B4=(Xmid,Ymid,Xmax,Ymax);S1、S2、S3、S4分别表示子节点1/2/3/4对应的尺度,S1=S2=S3=S4=Xmid - Xmin。
基于上述索引结构和可视化查询参数,本发明的空间索引查询流程如图3。首先根节点加入堆栈,判断根节点下是否有节点,若有则取一节点N,判断节点N所对应的尺度SN是否不大于像素比例尺S,若SN<=S,则将该节点加入查询结果集,否则判断节点N是否有子节点,若没有子节点则查询数据并加入结果集,在有子节点的情况下,判断是否可以进行数据查询,若是,则查询子节点数据并加入结果集,不再进行下一层子节点的数据查询。查询方法上,本发明方法的索引结构使用了层次编码结构,能够通过范围查询向数据库中查询调度数据。同时,本发明将可视化的像素比例尺作为数据查询调度的筛选条件,将尺度小于可视化像素比例尺的数据进行LOD处理,不进行数据查询与调度,以单个点数据和统计信息来代表点要素结果集,减少了部分数据从数据库中查询调度的成本。本发明中,查询是根据给定的条件,例如显示窗口的范围,从数据库中查找到符合条件的数据,再通过调度将数据从数据库一端输入渲染一端。在查询结果上,本发明查询结果为单个点数据和要素统计信息(要素总量)的混合集,而传统索引查询结果为原始数据集。本发明对密度较高的点数据区域,即当前地理范围内的点数据,经投影转换最终在屏幕上像素位置相同的数据,以单个点数据和要素统计信息(要素总量)来表示查询数据结果(统计点),对点密度较低数据,通过使用层次编码结构快速从数据库中查询获取原始数据,从而避免查询所有数据而浪费计算量。
本发明在步骤2中完成像素聚类统计。LOD的本质是以原始数据集合的子集去表达原始数据集。在大规模点数据方面,对点数据进行简化、抽取子集去表达,难以反映数据的密度等重要信息,破坏了点数据空间分布特征。但从可视化角度来看,可视化时需要将点坐标数据转换至像素坐标,而一定区域的点数据经过投影转换成像素位置是相同的,如图4中(a)所示,左边的图表示区域点数据,右边表示经过坐标转换后的像素,有两个不同的点转换后在同一个像素。因此,对于此区域数据只需一次坐标转换,即可获取所有数据的投影转换坐标,即以单个点要素的计算去反映多数据的计算结果。因此,数据调度时,并不需要调度所有原数据始进行计算与表达,只需调度一个点数据,即点LOD调度。
像素比例尺,即地图可视化时每个像素单元代表数据实际的地理范围大小,能够有效地描述点数据集能否进行LOD调度。当数据集合的地理范围小于像素比例尺时,说明当前数据集合所有点集经过投影转换后将位于同一坐标,因此仅需调度一个数据。在层次编码点区域四叉树索引中,每个节点都存储了尺度信息,即该节点地理范围大小。因此,进行树索引节点遍历时,若当前节点尺度小于像素比例尺,则可以认为当前节点下的所有数据投影转换结果相同。
如图4中(b)所示,节点尺度小于可视化像素比例尺,节点范围投影转换后位置为像素格所示框中区域,此时,基于原始调度处理方法,需向数据库请求、调度节点内的N个点数据,而基于LOD调度方法只需以节点中心点为坐标构建统计点数据(统计点要素),结合节点统计信息进行数据调度,不需要向数据库请求数据,避免了数据的I/O。
本发明基于层次编码点区域四叉树索引进行空间查询,获取具有统计信息的混合点数据集并进行投影转换,在转换后的平面坐标系中,对于投影得到的像素坐标进行聚类统计。本发明的像素聚类统计算法具体过程描述如下:
2.1)对于空间查询得到的混合点数据集,将数据集的最小包围盒与当前显示窗口的范围,两者进行相交判断,若相交,则以相交区域作为绘制范围;否则,不进行绘制更新,结束本次聚类统计;
2.2)获取绘制范围的比例尺dscale与最大和最小的横纵坐标maxX、maxY、minX、minY,计算一个像素单元在聚类统计中所覆盖区域的长度width与宽度height,即按照绘制范围的边界坐标值和比例尺,将绘制范围均分为多个大小相同的像素单元,有:
其中,floor为向上取整的函数,以保证像素的长宽值为整数,且全部像素最终组成的范围不小于像素均分之前的绘制范围;
2.3)逐个遍历混合点数据集中的点要素,获取当前点要素的横纵坐标px、py,结合步骤2.2)绘制范围的比例尺dscale与最小横纵坐标值minX、minY,计算该点在像素聚类中位于的像素的行列号x、y,有:
2.4)判断行列号是否越界,若不越界,即:
则统计该点要素的数值信息,否则不统计;
2.5)建立图像的像素聚类统计矩阵image_count,该矩阵由height行width列组成,对于每一个需要统计的点要素i,根据其所在像素的行列号x i ,y i ,使对应的第x i 行第y i 列像素所具有的点要素个数自增1,有:
最终,得到图像的每个像素所包含的点要素个数,并以该矩阵的聚类统计信息,作为插值计算和颜色映射的数据基础。
本发明在步骤3中完成绘制范围栅格化的插值计算。根据像素聚类所生成的统计信息,将绘制范围视为类似于栅格的区域,即绘制范围由M行N列、大小相等的像素构成。每个像素进行绘制时所具有的颜色值,根据该像素经过聚类统计后所具有的点要素个数决定,要素拥有的点要素个数经过插值预处理、插值计算和颜色映射三个步骤,最终,转化为该像素绘制的颜色值。
本发明在步骤3.1中进行插值预处理,包括:对于步骤2生成的栅格化绘制范围,将其统计信息作为栅格数据,对栅格数据进行归零消减后,生成该数据的统计直方图、直方图的横坐标值数组;从统计直方图中选取截断值,对统计直方图和直方图横坐标值数组进行截断,再将统计直方图的累加和结果除以其所有数值的加总和,得到归一化统计直方图。在一个示例中,本发明的插值预处理流程具体描述如下:
3.1.1)对于点要素统计矩阵image_count,为便于遍历与计算,以一维数组RasterData,从首行首列的位置开始,按顺序存储image_count中的各数值。再以布尔数组IsZero记录0和非0数据的位置,将非零数据存储在一维数组mask中;
3.1.2)在mask中找到非零数据的最小值offset,以此为基准,将整个数组减去offset,得到新的归零消减数组masked;
3.1.3)统计masked中每个元素值出现的次数,生成统计直方图数组hist。再根据hist的长度生成直方图的横坐标值数组bin_centers;
3.1.4)以hist中的第一个非0数作为截断值idx,对hist和bin_centers进行截断操作,截取第0到第(len-idx)个数值,其中,len为整个数组的长度。经过数值截取,生成新的统计直方图与直方图横坐标值InterceptHist和InterceptBinc;
3.1.5)逐项计算数组InterceptHist的累加和,即第1项取原始值,从第2项开始,每一项等于该项的原始值加上前一项的新值,将计算结果存入数组cdf;
3.1.6)将cdf的每一项除以cdf的最后一项(InterceptHist所有元素值的加总和),生成归一化统计直方图NorHist。
本发明在步骤3.2中完成插值计算,通过二值法,或者二值猜测搜索结合坡度计算的方式,得到栅格数据的插值结果。在一个示例中,以预处理生成的归一化直方图NorHist、直方图横坐标值InterceptBinc,结合栅格数据RasterData进行插值操作。插值计算流程具体描述如下:
3.2.1)取data_val为当前RasterData[i],且RasterData中所有的非数值在插值后仍设为非数值;
3.2.2)取NorHist的两端值为lval(NorHist [0])和rval(NorHist [len-1]);
3.2.3)根据InterceptBinc长度len,若len = 1则以二值法计算插值interp[i],遍历RasterData,
即插值后,RasterData的非正数取NorHist左端值,正数取NorHist右端值。
若len>1,则跳过3.2.3),执行3.2.4)和3.2.5);
3.2.4)计算NorHist数组的梯度slopes,有
3.2.5)遍历RasterData,利用二值猜测搜索算法,在InterceptBinc中寻找data_val。根据搜索结果j:
①j=-1, 则interp[i]=lval;
② j≥len–1,则interp[i]=rval;
③j∈[0,dxlen-2],则interp[i]=(RasterData[i]–InterceptBinc[j])*slope[j]+NorHist[j]
经过插值计算,为像素生成了能实际转化为颜色值的数值。此插值数据再通过颜色映射,即可得到最后每个像素绘制时,其各颜色通道所分配的数值。
本发明在步骤4中完成密集型点数据的颜色映射渲染。对于大规模密集矢量点数据,传统的符号表达方式会产生符号压盖等问题,难以反映数据的分布特征。本发明基于层次编码索引的空间查询,通过像素聚类与插值计算,最终结合颜色映射算法,实现对密集型点数据实时渲染。数据处理及渲染流程如图5所示。
首先,设置颜色的映射步长与RGB三个颜色通道的映射取值范围。然后,遍历步骤3的插值结果数组,根据当前插值数据的ID号、插值数组的最值与颜色映射步长,计算映射索引号,根据该索引号,从映射取值范围中,获取当前插值数据对应的像素位置的RGB颜色值。此外,需要补充进行插值数据与颜色映射步长的特殊值处理。最后,按照各像素的颜色值,完成共享单车GPS位置点数据的热力图渲染。
在一个示例中,本发明的颜色映射算法流程描述如下:
4.1)获取插值数组interp的最大和最小值max和min
4.2)分别设置数组rspan、gspan、bspan,作为RGB三个颜色通道的映射取值范围。本发明共设置了9组值进行颜色映射,并定义相对应的映射步长step,有:
4.3)遍历插值数组interp,以当前interp[i]计算映射索引号index,有
从而根据映射索引号,从RGB的映射取值范围中取得图像Image每个像素j的RGB值,有
Image[j+0]=rspan[index]
Image[j+1]=gspan[index]
Image[j+2]=bspan[index]
其中,Image[j+0]、Image[j+1]和Image[j+2]分别对应R、G、B三个颜色通道的取值。每组Image[j+0]、Image[j+1]和Image[j+2]形成像素j的RGB值。
此外,透明度α设为255,即像素不透明,显示实际的RGB颜色。
4.4)若当前interp[i]为非数值,则RGB和α均取0;若step为0,则RGB均取50,α为0。这两种情况下,RGB值的组合使像素在无透明度的图像中显示为黑色。若图像支持透明度,则透明度为0即像素透明不显示。
本发明实施例中对于输入的共享单车GIS位置数据,首先,基于层次编码点区域四叉树索引进行空间查询,获取具有统计信息的混合点数据集,并对点数据进行投影转换。然后,对于投影后的像素坐标数据进行聚类统计。再生成像素聚类统计结果的统计直方图,进行插值计算。最终,通过直方图颜色映射方法,渲染生成点要素的热力图图片。
本发明基于统计信息进行查询时,只需要经过单个点的单次数据查询和调度即可,避免查询调度全部数据而浪费计算量。如图6所示,为点要素数量20,点数量阈值为5的RP四叉树索引与本文索引数据查询调度对比图,节点3、4、5、8、9、10中存储原始数据的信息。①在可视化像素比例尺maxSV(2.5S)较大时,若节点1包围盒B1与可视化包围盒BV相交,此时S1 < SV,此时节点1中所有数据投影转换坐标相同,因此基于本文索引只需遍历一次即结束遍历,同时由于此时不需要进行数据调度,只需以包围盒B1的中心点坐标进行投影计算即可获取所有数据转换后的位置。而RP四叉树索引需要不断进行深度遍历进而获取数据信息,同时还需从数据库调度数据。②当像素比例尺小于SV(0.2S),且包围盒B1与可视化包围盒BV包含,此时基于本文索引只需基于节点1编码C1进行一次范围查询,即可快速获取数据集合。而RP四叉树索引需要多次遍历和查询数据集。③当像素比例尺SV(0.5S),且包围盒B1与可视化包围盒BV包含,此时基于本文索引只需基于节点1编码C1和SV 进行范围查询即可快速获取节点3、4、10中原始数据,而节点8、9使用点要素代表方法即可快速获取数据集合,减少了数据调度。而RP四叉树索引仍需要多次遍历和查询数据集。④当数据地理范围较小,仅与节点6相交,且像素比例尺SV(0.3S)较小时,此时本文索引查询与遍历效率与RP四叉树相等。
图7为本发明方法渲染结果与DataShader方法渲染结果对比图,其中(a)和(b)分别对应本发明和DataShader渲染结果。本发明渲染方法与DataShader区别是本发明将数据存储至数据库中,以空间索引进行数据动态筛选和调度,查询结果集合为混合数据集。前文已验证基于混合集的可视化数据计算量远低于以原始矢量数据集的计算量。同时本发明的混合集中,数据包含统计信息,因此能够加快数据像素聚类统计,减少数据聚类时间。DataShader所有数据加载至内存,对所有顶点进行投影计算,以投影后像素位置裁切数据。因此,基于本发明方法在内存上负载远低于DataShader,同时计算成本远低于原始方法。
通过本发明方法与DataShader渲染方法进行对比,验证本发明点数据渲染方法的高效性。由于DataShader本身为开源Python程序,为避免编程语言带来的性能差异,性能对比时将DataShader源码转换成C++语言重新编写。通过对数据数量进行不断追加,对本发明方法和DataShader渲染方法在地图漫游下的平均内存和平均渲染时间(平均时间去除了小数部分)随顶点数量的变化进行对比。
如图8所示,本发明的点数据渲染方法在性能上比DataShader更高效。DataShader能够快速对大规模点数据进行高效渲染,但渲染效率与顶点的数量成相关,渲染时间随点数据数量的增加不断增加;本发明的渲染方法渲染时间远低于DataShader渲染方法,渲染时间与顶点数量的相关性较弱。原因在于DataShader需要对所有可视化点数据进行投影转换,基于转换后的像素坐标进行数据裁切和聚类。而本发明利用空间索引,能够对数据进行初步筛选,减少进行计算的点数据量,且本发明数据调度的结果集为具有统计信息的统计点,基于混合点的数据聚类统计,仅通过一次坐标转化即可实现对于多点进行转换,有效降低数据计算次数,进而提升点数据渲染性能。
如图9所示,本发明的点数据渲染方法在内存上比DataShader占用更低。DataShader将所有原始数据加载至内存,因此随着数据量的增加内存呈线性快速增长。而本发明方法内存占用与数据体量无关,当数据体量为3千万和5千万左右时,内存没有变化。原因在于本发明内存中仅存储索引数据,索引内存远低于原始数据内存大小,且数据量的增加并不一定会改变空间索引的层级和索引节点数量,仅带来索引节点统计信息的改变,因此内存不会增加。
综上所述,本发明方法在无论在内存上还是渲染性能上,相较于DataShader渲染方法,都取得了更好的性能表现。在渲染性能上,二者都会随着顶点数量的增加,使得渲染成本变高,但DataShader的增长曲率远高于本发明方法。同时,本发明采用层次编码空间索引的方法,能够有效降低数据体量对计算机内存的负载。基于本发明方法,数据对内存的负载与数据体量无关,与数据的分布相关。而DataShader方法内存与数据体量线性相关。本发明有效验证了本发明的绘制方法针对大规模点数据可视化的高效性。
基于和方法实施例相同的技术构思,本发明还提供一种大规模时空点数据LOD绘制装置,包括:
空间查询模块,用于基于点区域四叉树,以索引节点存储层次编码和要素统计信息,构建层次编码点区域四叉树索引,计算可视化查询参数并结合层次编码,在数据库中进行数据的范围查询与调度;
像素聚类模块,用于根据数据范围查询结果确定绘制范围,根据绘制范围边界坐标和比例尺确定一个像素单元在聚类统计中的长宽值,统计每个像素包含的点要素个数,作为像素的聚类统计信息;
插值计算模块,用于将聚类统计信息视为栅格数据,通过预处理操作生成栅格数据的归一化统计直方图和直方图横坐标值数组,利用归一化统计直方图和直方图横坐标值数组对栅格数据进行插值计算;
颜色映射模块,用于以预设的颜色映射步长和映射取值范围计算各个插值数据对应的像素位置的RGB映射值,作为像素绘制的颜色信息进行热力图渲染。
根据本发明的实施方式,空间查询模块计算可视化参数包括计算像素比例尺、包围盒;空间查询模块在数据库中进行数据的范围查询与调度时,以像素比例尺作为查询调度的筛选条件,当节点尺度小于等于像素比例尺时,以单个点数据和统计信息来代表点要素结果集,而不进行子节点的数据查询与调度。
根据本发明的实施方式,像素聚类模块包括:
像素单元尺寸确定单元,判断当前显示窗口与数据集的最小包围盒是否相交,若不相交,则不进行绘制更新;若相交,则取相交区域为绘制范围,基于绘制范围的最大和最小横纵坐标值及其比例尺,计算像素聚类时一个像素单元所具有的长宽值,具体计算方法如下:
其中,floor为向上取整的函数,dscale为绘制范围的比例尺, maxX、maxY、minX、minY分别表示绘制范围的最大横纵坐标和最小横纵坐标。
点要素聚类位置确定单元,遍历查询结果集的每个点要素,将其坐标结合绘制范围的最小横纵坐标与比例尺,计算每个点要素经过像素聚类后所位于的像素的行列号;
聚类统计单元,逐个点要素统计其所在像素的行列号,更新绘制范围内各个像素的聚类统计值,即每有一个点要素经过像素聚类后落在像素(x,y),则像素(x,y)所具有的点要素个数自增1,其中x和y分别为该像素的行号和列号;
经过像素单元尺寸确定单元、点要素聚类位置确定单元和聚类统计单元的处理得到像素聚类生成的、具有点要素统计信息的栅格化绘制范围,绘制范围被M行N列像素均分,每格像素都有一个统计值,记录落在该像素内的点要素个数。
根据本发明的实施方式,插值计算模块包括:
预处理单元,将像素聚类模块生成的像素的聚类统计信息作为栅格数据,对栅格数据进行归零消减后,生成该数据的统计直方图、直方图的横坐标值数组;
归一化单元,从统计直方图中选取截断值,对预处理单元的统计直方图和直方图横坐标值数组进行截断,再将统计直方图的累加和结果除以其所有数值的加总和,得到归一化统计直方图;
插值单元,以归一化统计直方图和直方图的横坐标值数组,对于栅格数据进行插值计算,通过二值法,或者二值猜测搜索结合坡度计算的方式,得到栅格数据的插值结果。
根据本发明的实施方式,颜色映射模块包括:
参数设置单元,设置颜色的映射步长和RGB三个颜色通道的映射取值范围;
颜色映射单元,遍历插值计算模块的插值结果数组,根据当前插值数据的ID号、插值数组的最值和颜色映射步长计算映射索引号,根据该索引号,从映射取值范围中获取当前插值数据对应的像素位置的RGB颜色值;其中,映射索引号的计算方法如下:
其中step为映射步长,interp[i]为第i个插值数据,min为插值数组interp中的最小值。
渲染单元,按照各像素的颜色值,完成点数据的热力图渲染。
本发明还提供一种计算机设备,包括:一个或多个处理器;存储器;以及一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述程序被处理器执行时实现如上所述的大规模时空点数据LOD绘制方法的步骤。
本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的大规模时空点数据LOD绘制方法的步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图来描述的。应理解可由计算机程序指令实现流程图中的每一流程以及流程图中的流程的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程指定的功能的步骤。
Claims (9)
1.一种大规模时空点数据LOD绘制方法,其特征在于,包括如下步骤:
(1)基于点区域四叉树,以索引节点存储层次编码和要素统计信息,构建层次编码点区域四叉树索引,计算可视化查询参数并结合层次编码,在数据库中进行数据的范围查询与调度;
(2)根据数据范围查询结果确定绘制范围,根据绘制范围边界坐标和比例尺确定一个像素单元在聚类统计中的长宽值,统计每个像素包含的点要素个数,作为像素的聚类统计信息;
(3)将聚类统计信息视为栅格数据,通过预处理操作生成栅格数据的归一化统计直方图和直方图横坐标值数组,利用归一化统计直方图和直方图横坐标值数组对栅格数据进行插值计算,包括以下步骤:
(3.1)将步骤(2)生成的像素的聚类统计信息作为栅格数据,对栅格数据进行归零消减后,生成该数据的统计直方图、直方图的横坐标值数组;
(3.2)从统计直方图中选取截断值,对步骤(3.1)的统计直方图和直方图横坐标值数组进行截断,再将统计直方图的累加和结果除以其所有数值的加总和,得到归一化统计直方图;
(3.3)以归一化统计直方图和直方图的横坐标值数组,对于栅格数据进行插值计算,通过二值法,或者二值猜测搜索结合坡度计算的方式,得到栅格数据的插值结果;
(4)以预设的颜色映射步长和映射取值范围计算各个插值数据对应的像素位置的RGB映射值,作为像素绘制的颜色信息进行热力图渲染。
2.根据权利要求1所述的大规模时空点数据LOD绘制方法,其特征在于,所述步骤(1)中,计算可视化参数包括计算像素比例尺、包围盒;在数据库中进行数据的范围查询与调度时,以像素比例尺作为查询调度的筛选条件,当节点尺度小于等于像素比例尺时,以单个点数据和统计信息来代表点要素结果集,而不进行子节点的数据查询与调度。
3.根据权利要求1所述的大规模时空点数据LOD绘制方法,其特征在于,所述步骤(2)包括以下步骤:
(2.1)判断当前显示窗口与数据集的最小包围盒是否相交,若不相交,则不进行绘制更新;若相交,则取相交区域为绘制范围,基于绘制范围的最大和最小横纵坐标值及其比例尺,计算像素聚类时一个像素单元所具有的长宽值;
(2.2)遍历查询结果集的每个点要素,将其坐标结合绘制范围的最小横纵坐标与比例尺,计算每个点要素经过像素聚类后所位于的像素的行列号;
(2.3)逐个点要素统计其所在像素的行列号,更新绘制范围内各个像素的聚类统计值,即每有一个点要素经过像素聚类后落在像素(x,y),则像素(x,y)所具有的点要素个数自增1,其中x和y分别为该像素的行号和列号;
(2.4)经过步骤(2.1)、步骤(2.2)和步骤(2.3)得到像素聚类生成的、具有点要素统计信息的栅格化绘制范围,绘制范围被M行N列像素均分,每格像素都有一个统计值,记录落在该像素内的点要素个数。
5.根据权利要求1所述的大规模时空点数据LOD绘制方法,其特征在于,所述步骤(4)包括以下步骤:
(4.1)设置颜色的映射步长和RGB三个颜色通道的映射取值范围;
(4.2)遍历步骤(3)的插值结果数组,根据当前插值数据的ID号、插值数组的最值和颜色映射步长计算映射索引号,根据该索引号,从映射取值范围中获取当前插值数据对应的像素位置的RGB颜色值;
(4.3)按照各像素的颜色值,完成点数据的热力图渲染。
7.一种大规模时空点数据LOD绘制装置,其特征在于,包括
空间查询模块,用于基于点区域四叉树,以索引节点存储层次编码和要素统计信息,构建层次编码点区域四叉树索引,计算可视化查询参数并结合层次编码,在数据库中进行数据的范围查询与调度;
像素聚类模块,用于根据数据范围查询结果确定绘制范围,根据绘制范围边界坐标和比例尺确定一个像素单元在聚类统计中的长宽值,统计每个像素包含的点要素个数,作为像素的聚类统计信息;
插值计算模块,用于将聚类统计信息视为栅格数据,通过预处理操作生成栅格数据的归一化统计直方图和直方图横坐标值数组,利用归一化统计直方图和直方图横坐标值数组对栅格数据进行插值计算;
颜色映射模块,用于以预设的颜色映射步长和映射取值范围计算各个插值数据对应的像素位置的RGB映射值,作为像素绘制的颜色信息进行热力图渲染;
其中,所述插值计算模块具体包括:
预处理单元,将像素聚类模块生成的像素的聚类统计信息作为栅格数据,对栅格数据进行归零消减后,生成该数据的统计直方图、直方图的横坐标值数组;
归一化单元,从统计直方图中选取截断值,对预处理单元的统计直方图和直方图横坐标值数组进行截断,再将统计直方图的累加和结果除以其所有数值的加总和,得到归一化统计直方图;
插值单元,以归一化统计直方图和直方图的横坐标值数组,对于栅格数据进行插值计算,通过二值法,或者二值猜测搜索结合坡度计算的方式,得到栅格数据的插值结果。
8.一种计算机设备,其特征在于,包括:
一个或多个处理器;
存储器;以及
一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述程序被处理器执行时实现如权利要求1-6中任一项所述的大规模时空点数据LOD绘制方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6中任一项所述的大规模时空点数据LOD绘制方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211078000.4A CN115168682B (zh) | 2022-09-05 | 2022-09-05 | 一种大规模时空点数据lod绘制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211078000.4A CN115168682B (zh) | 2022-09-05 | 2022-09-05 | 一种大规模时空点数据lod绘制方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115168682A CN115168682A (zh) | 2022-10-11 |
CN115168682B true CN115168682B (zh) | 2022-12-06 |
Family
ID=83482049
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211078000.4A Active CN115168682B (zh) | 2022-09-05 | 2022-09-05 | 一种大规模时空点数据lod绘制方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115168682B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117893637B (zh) * | 2024-03-15 | 2024-06-11 | 杭州广立微电子股份有限公司 | 一种数据处理方法及装置 |
CN118364590A (zh) * | 2024-06-20 | 2024-07-19 | 国家超级计算天津中心 | 大规模欧拉域仿真数据的可视化处理方法、装置及设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012090146A (ja) * | 2010-10-21 | 2012-05-10 | Sony Corp | 画像処理装置、および画像処理方法、並びにプログラム |
CN114529633A (zh) * | 2022-04-22 | 2022-05-24 | 南京师范大学 | 一种支持gis线对象和面对象连续lod绘制的方法 |
-
2022
- 2022-09-05 CN CN202211078000.4A patent/CN115168682B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012090146A (ja) * | 2010-10-21 | 2012-05-10 | Sony Corp | 画像処理装置、および画像処理方法、並びにプログラム |
CN114529633A (zh) * | 2022-04-22 | 2022-05-24 | 南京师范大学 | 一种支持gis线对象和面对象连续lod绘制的方法 |
Non-Patent Citations (1)
Title |
---|
基于GPU的矢量地图连续LOD渲染方法研究;景志敏;《中国优秀硕士学位论文全文数据库》;20220330(第3期);30-75 * |
Also Published As
Publication number | Publication date |
---|---|
CN115168682A (zh) | 2022-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115168682B (zh) | 一种大规模时空点数据lod绘制方法及装置 | |
CN112270756B (zh) | 一种应用于bim模型文件的数据渲染方法 | |
CN113178014B (zh) | 场景模型渲染方法、装置、电子设备和存储介质 | |
US8570322B2 (en) | Method, system, and computer program product for efficient ray tracing of micropolygon geometry | |
US20080198163A1 (en) | Drawing Method, Image Generating Device, And Electronic Information Apparatus | |
JPH06223197A (ja) | グラフィック画像をテッセレーション化する方法および装置 | |
CN105894551B (zh) | 图像绘制方法及装置 | |
CN109118588B (zh) | 一种基于块分解的彩色lod模型自动生成方法 | |
CN105405166A (zh) | 一种基于线性四叉树的lod模型生成方法 | |
CN112070909B (zh) | 一种基于3D Tiles的工程三维模型LOD输出方法 | |
CN115510337B (zh) | 一种三维立体注记调度显示的方法 | |
US6850234B2 (en) | Method and system for determining visible parts of transparent and nontransparent surfaces of there-dimensional objects | |
CN109636894B (zh) | 一种基于像素点栅格化的动态三维热力计算方法及系统 | |
EP3563352B1 (en) | Indexed value blending for use in image rendering | |
KR20010012841A (ko) | 화상 처리 장치 및 화상 처리 방법 | |
CN114708382A (zh) | 基于增强现实的三维建模方法、装置、存储介质、设备 | |
CN114511659A (zh) | 数字地球地形约束下的体绘制渲染优化方法 | |
CN113393555B (zh) | 一种基于着色器的屏幕填充率统计方法及其系统 | |
She et al. | An efficient method for rendering linear symbols on 3D terrain using a shader language | |
de Berg | Visualization of TINS | |
Lee et al. | Bimodal vertex splitting: Acceleration of quadtree triangulation for terrain rendering | |
US5821942A (en) | Ray tracing through an ordered array | |
US7170528B1 (en) | Fast glyph rendering for vector based fonts | |
Shareef et al. | An Image-Based Modelling Approach To GPU-based Unstructured Grid Volume Rendering. | |
Đurđević et al. | Domino tiling: a new method of real-time conforming mesh construction for rendering changeable height fields |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |