本申请涉及软件领域,特别涉及一种趋势分析图构建方法及装置。
背景技术:
电子地图即数字地图,是利用计算机技术,以数字方式存储和查阅的地图。电子地图因其给用户出行带来便利,被大众广泛应用。
在电子地图技术中,地理数据需要用矢量趋势分析图形实时显示分析,但是传统的Marching Square方法由于计算速度慢,而无法应用到电子地图技术中的矢量图形绘制。
技术实现要素:
为解决上述技术问题,本申请实施例提供一种趋势分析图构建方法及装置,以达到可以生成矢量趋势分析图的目的,技术方案如下:
一种趋势分析图构建方法,包括:
获取矢量输入参数作为输入矩阵,所述矢量输入参数为一系列输入散点的集合;
对所述输入矩阵进行插值,得到稠密矩阵;
将所述稠密矩阵化简为稀疏矩阵;
利用Marching Square算法和化简得到的稀疏矩阵,生成趋势分析图。
优选的,对所述输入矩阵进行插值,得到稠密矩阵包括:
在所述输入矩阵的基础上建立一个稠密矩阵;
利用公式对所建立的稠密矩阵进行插值;
matrix(x,y)表示坐标为(x,y)的元素值,value[i]表示第i个输入散点的属性值,dist[i]表示第i个输入散点与坐标(x,y)的距离,∑为求和函数。
优选的,将所述稠密矩阵化简为稀疏矩阵包括:
从所述稠密矩阵的左上角开始遍历矩阵中的每个单位矩形,确定出各个所述单位矩形与周围邻域单位矩形所形成的面积更大层的矩形;
计算各个所确定出的面积更大层的矩形的四个顶点之间的梯度,得到六个梯度值;
若六个梯度值均小于预设阈值,则保留所确定出的面积更大层的矩形的四个顶点的值;
将各个所确定出的面积更大层的矩形组成的矩阵作为稠密矩阵,并返回执行从所述稠密矩阵的左上角开始遍历矩阵中的每个单位矩形的步骤,直至无法确定出各个所述单位矩形与周围邻域单位矩形所形成的面积更大层的矩形。
优选的,利用Marching Square算法和化简得到的稀疏矩阵,生成趋势分析图包括:
对所述矢量输入参数中的各个输入散点的属性值进行从低到高的划分,得到n个区间段;
为每个区间段分配一种颜色,得到各个区间段与颜色的对应关系;
将各个所述区间段与颜色的对应关系和所述稀疏矩阵中每个单位矩形的四个顶点的值作为所述Marching Square算法的输入值,生成所述趋势分析图。
一种趋势分析图构建装置,包括:
获取模块,用于获取矢量输入参数作为输入矩阵,所述矢量输入参数为一系列输入散点的集合;
插值模块,用于对所述输入矩阵进行插值,得到稠密矩阵;
化简模块,用于将所述稠密矩阵化简为稀疏矩阵;
生成模块,用于利用Marching Square算法和化简得到的稀疏矩阵,生成趋势分析图。
优选的,所述插值模块包括:
建立单元,用于在所述输入矩阵的基础上建立一个稠密矩阵;
插值单元,用于利用公式对所建立的稠密矩阵进行插值;
matrix(x,y)表示坐标为(x,y)的元素值,value[i]表示第i个输入散点的属性值,dist[i]表示第i个输入散点与坐标(x,y)的距离,∑为求和函数。
优选的,所述化简模块包括:
第一确定单元,用于从所述稠密矩阵的左上角开始遍历矩阵中的每个单位矩形,确定出各个所述单位矩形与周围邻域单位矩形所形成的面积更大层的矩形;
计算单元,用于计算各个所确定出的面积更大层的矩形的四个顶点之间的梯度,得到六个梯度值;
保留单元,用于若六个梯度值均小于预设阈值,则保留所确定出的面积更大层的矩形的四个顶点的值;
第二确定单元,用于将各个所确定出的面积更大层的矩形组成的矩阵作为稠密矩阵,并返回执行所述第一确定单元,直至无法确定出各个所述单位矩形与周围邻域单位矩形所形成的面积更大层的矩形。
优选的,所述生成模块包括:
划分单元,用于对所述矢量输入参数中的各个输入散点的属性值进行从低到高的划分,得到n个区间段;
分配单元,用于为每个区间段分配一种颜色,得到各个区间段与颜色的对应关系;
生成单元,用于将各个所述区间段与颜色的对应关系和所述稀疏矩阵中每个单位矩形的四个顶点的值作为所述Marching Square算法的输入值,生成所述趋势分析图。
与现有技术相比,本申请的有益效果为:
在本申请中,首先获取矢量输入参数作为输入矩阵,其次对所述输入矩阵进行插值,得到稠密矩阵,然后将所述稠密矩阵化简为稀疏矩阵;其中,将稠密矩阵化简为稀疏矩阵的处理方式在保证图像清晰度不变的基础上,可以减少图像绘制次数,提升Marching Square算法的计算效率,使Marching Square算法可应用于矢量图形绘制,从而利用Marching Square算法和化简得到的稀疏矩阵,可以生成矢量趋势分析图。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的趋势分析图构建方法的一种流程图;
图2-1是本申请提供的输入散点的一种标记示意图;
图2-2是本申请提供的稠密矩阵的一种示意图;
图2-3是本申请提供的稀疏矩阵的一种示意图;
图3是本申请提供的趋势分析图构建方法的一种子流程图;
图4是本申请提供的趋势分析图构建方法的另一种子流程图;
图5是本申请提供的趋势分析图构建方法的再一种子流程图;
图6是本申请提供的趋势分析图构建装置的一种逻辑结构示意图;
图7是本申请提供的插值模块的一种逻辑结构示意图;
图8是本申请提供的化简模块的一种逻辑结构示意图;
图9是本申请提供的生成模块的一种逻辑结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
实施例一
请参见图1,其示出了本申请提供的趋势分析图构建方法的一种流程图,可以包括以下步骤:
步骤S11:获取矢量输入参数作为输入矩阵,所述矢量输入参数为一系列输入散点的集合。
在本实施例中,矢量输入参数为拥有大小和方向的数据,且矢量输入参数与需构建的趋势分析图的类型相关,如需构建的趋势分析图的类型为气温趋势分析图,则矢量输入参数则为气温矢量输入参数。
其中,每个输入散点包括坐标位置和属性值。如,矢量输入参数若为气温矢量输入参数,则一系列输入散点的集合即一系列气温输入散点的集合,输入散点包括的属性值即气温属性值。
各个输入散点的坐标位置以黑点形式标记,属性值以数字标记在黑点右侧,如图2-1所示。
步骤S12:对所述输入矩阵进行插值,得到稠密矩阵。
对所述输入矩阵进行插值,得到的稠密矩阵请参见图2-2,图2-2是图2-1的局部放大图,其中,每个交叉点代表矩阵中的一个元素。
步骤S13:将所述稠密矩阵化简为稀疏矩阵。
化简得到的稀疏矩阵的示意图请参见图2-3,其中图2-3是将图2-2示出的稠密矩阵进行化简得到的稀疏矩阵。
稀疏矩阵的元素个数少于稠密矩阵的元素个数。
步骤S14:利用Marching Square算法和化简得到的稀疏矩阵,生成趋势分析图。
当然,在本实施例中,矢量输入参数并不局限于一系列输入散点的集合,也可以为稀疏矩阵或稠密矩阵。
上述趋势分析图构建方法适用于各种类型的趋势分析图的构建,如气温趋势、销量趋势、生产总值趋势等。
在本申请中,首先获取矢量输入参数作为输入矩阵,其次对所述输入矩阵进行插值,得到稠密矩阵,然后将所述稠密矩阵化简为稀疏矩阵;其中,将稠密矩阵化简为稀疏矩阵的处理方式在保证图像清晰度不变的基础上,可以减少图像绘制次数,提升Marching Square算法的计算效率,使Marching Square算法可应用于矢量图形绘制,从而利用Marching Square算法和化简得到的稀疏矩阵,可以生成矢量趋势分析图。
在本实施例中,上述对所述输入矩阵进行插值,得到稠密矩阵的具体过程可以参见图3,可以包括以下步骤:
步骤S31:在所述输入矩阵的基础上建立一个稠密矩阵。
所建立的稠密矩阵能够覆盖输入矩阵中的所有数据。
步骤S32:利用公式对所建立的稠密矩阵进行插值。
matrix(x,y)表示坐标为(x,y)的元素值,value[i]表示第i个输入散点的属性值,dist[i]表示第i个输入散点与坐标(x,y)的距离,∑为求和函数。
其中,即对所有输入散点的相应值进行求和运算,即对所有输入散点的相应值进行求和运算。
在本实施例中,将所述稠密矩阵化简为稀疏矩阵的过程具体可以参见图4,可以包括以下步骤:
步骤S41:从所述稠密矩阵的左上角开始遍历矩阵中的每个单位矩形,确定出各个所述单位矩形与周围邻域单位矩形所形成的面积更大层的矩形。
所述单位矩形与周围邻域单位矩形所形成的面积更大层的矩形可以但不局限于为2×2的矩形(即由四个所述单位矩形组成的矩形)或3×3的矩形(即由9个所述单位矩形组成的矩形)。
步骤S42:计算各个所确定出的面积更大层的矩形的四个顶点之间的梯度,得到六个梯度值。
如所确定出的面积更大层的矩形的四个顶点分别为a、b、c、d,则计算a、b、c、d之间的梯度即计算a和b之间的梯度、a和c之间的梯度、a和d之间的梯度、b和c之间的梯度、b和d之间的梯度和c和d之间的梯度,得到六个梯度值。
步骤S43:若六个梯度值均小于预设阈值,则保留所确定出的面积更大层的矩形的四个顶点的值。
若六个梯度值均小于预设阈值,则保留所确定出的面积更大层的矩形的四个顶点的值,即若六个梯度值均小于预设阈值,则仅保留所确定出的面积更大层的矩形的四个顶点的值,删除所确定出的面积更大层的矩形中的其他数据。
预设阈值的设定原理可以参见以下过程:若输入数据是输入散点的集合和等值带的集合,假设输入散点的集合为{(x1,y1,val1),(x2,y2,val2)......(xn,yn,valn)},其中x,y表示输入散点的坐标,val表示输入散点的属性值,可以为任意业务含义,如温度、海拔、营业额等。设等值带的集合为{(val1,val2,color1),(val2,val3,color2)......(val n,val n+1,color n)},两个val表示该等值带的下限值和上限值,color表示位于该上下限区间内的点的颜色,两个val之间的上下限范围即“预设阈值”。
步骤S44:将各个所确定出的面积更大层的矩形组成的矩阵作为稠密矩阵,并返回执行从所述稠密矩阵的左上角开始遍历矩阵中的每个单位矩形的步骤,直至无法确定出各个所述单位矩形与周围邻域单位矩形所形成的面积更大层的矩形。
其中,直至无法确定出各个所述单位矩形与周围邻域单位矩形所形成的面积更大层的矩形即直至稠密矩阵中的所有元素不再发生变化。
在本实施例中,上述利用Marching Square算法和化简得到的稀疏矩阵,生成趋势分析图的具体过程请参见图5,可以包括以下步骤:
步骤S51:对所述矢量输入参数中的各个输入散点的属性值进行从低到高的划分,得到n个区间段。
步骤S52:为每个区间段分配一种颜色,得到各个区间段与颜色的对应关系。
步骤S53:将各个所述区间段与颜色的对应关系和所述稀疏矩阵中每个单位矩形的四个顶点的值作为所述Marching Square算法的输入值,生成所述趋势分析图。
将各个所述区间段与颜色的对应关系和所述稀疏矩阵中每个单位矩形的四个顶点的值作为所述Marching Square算法的输入值,之后Marching Square算法的计算过程与传统的计算过程相同,在此不再赘述。
实施例二
与上述方法实施例相对应,本实施例提供了一种趋势分析图构建装置,请参见图6,趋势分析图构建装置包括:获取模块61、插值模块62、化简模块63和生成模块64。
获取模块61,用于获取矢量输入参数作为输入矩阵,所述矢量输入参数为一系列输入散点的集合。
插值模块62,用于对所述输入矩阵进行插值,得到稠密矩阵。
化简模块63,用于将所述稠密矩阵化简为稀疏矩阵。
生成模块64,用于利用Marching Square算法和化简得到的稀疏矩阵,生成趋势分析图。
插值模块62具体可以包括:建立单元621和插值单元622,如图7所示。
建立单元621,用于在所述输入矩阵的基础上建立一个稠密矩阵。
插值单元622,用于利用公式对所建立的稠密矩阵进行插值。
matrix(x,y)表示坐标为(x,y)的元素值,value[i]表示第i个输入散点的属性值,dist[i]表示第i个输入散点与坐标(x,y)的距离,∑为求和函数。
化简模块63具体可以包括:第一确定单元631、计算单元632、保留单元633和第二确定单元634,如图8所示。
第一确定单元631,用于从所述稠密矩阵的左上角开始遍历矩阵中的每个单位矩形,确定出各个所述单位矩形与周围邻域单位矩形所形成的面积更大层的矩形.
计算单元632,用于计算各个所确定出的面积更大层的矩形的四个顶点之间的梯度,得到六个梯度值。
保留单元633,用于若六个梯度值均小于预设阈值,则保留所确定出的面积更大层的矩形的四个顶点的值。
第二确定单元634,用于将各个所确定出的面积更大层的矩形组成的矩阵作为稠密矩阵,并返回执行所述第一确定单元631,直至无法确定出各个所述单位矩形与周围邻域单位矩形所形成的面积更大层的矩形。
在本实施例中,生成模块64具体可以包括:划分单元641、分配单元642和生成单元643,如图9所示。
划分单元641,用于对所述矢量输入参数中的各个输入散点的属性值进行从低到高的划分,得到n个区间段。
分配单642元,用于为每个区间段分配一种颜色,得到各个区间段与颜色的对应关系。
生成单元643,用于将各个所述区间段与颜色的对应关系和所述稀疏矩阵中每个单位矩形的四个顶点的值作为所述Marching Square算法的输入值,生成所述趋势分析图。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的一种趋势分析图构建方法及装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。