邓波涛,曾 志,罗中良
(1.惠州城市职业学院 信息学院,广东 惠州 516025; 2.惠州学院 计算机科学与工程学院,广东 惠州 516007)
可视化是一种将结构化或非结构化数据转换为可视图表的方法,通过挖掘数据间的隐藏信息,更直观展现的技术方法[1].使用可视化技术,可以在盘根错节的联系中,把巨量的信息进行筛选与提炼,从而把数据的本质直接展示给读者.到目前为止,通过系统进行可视化表达的技术有很多,如Web前端的Tabular[2]、ECharts等数据可视化技术[3],及目前比较流行的Python语言,这些可视化表达技术仅是从数据处理的应用层面,并没有就数学原理的角度揭示可视化表达的实现机制.随着数据应用的不断深入,可视化技术的应用领域正在不断地拓展.然而,等值线图形的形成机理是可视化分析中不可忽视的一项重要内容,透过某一类特殊的等值线,可以辨别出所有相同属性值的位置信息.通过查看不同属性值相等点间的距离,也可以大致地掌握所有数据的分布规律.因此,作为与人们休戚相关的环境要素(平均风速、平均气压和平均水汽压),其可视化表示就显得尤为重要.因为环境要素的可视化表达主要以等值线形式呈现,通过等值线图的辨识,气候分析人员可以更加直观地通过气压、风速的变化、频率的分布等环境状况,对气候的变化作出进一步研判.
等值线生成的过程中,空间中的邻近距离越小的两个离散点,其属性值相似性越强,而属性值相等点的值变化通常表现更为平滑,且服从于某种特定的统计稳定性关系.而不同领域,等值线生成算法也可能不一样.如LiDAR点云数据的等值线绘制方法[4],规则型离散点信息场的等值线图的生成算法[5],包括用于高次单元网格系统的等参数插值函数的算法[6],或通过非线性训练,求解对应节点的预测值,采用插补法完成等值线绘制[7].通常,等值线的生成大多采用线性插值原理,等值点间连线的平滑度是衡量图形质量的重要标志.目前已有的平滑方法很多,典型的有张力样条法和五点加权平均法等[8].其中,张力样条函数法通过计算获得相应的数据点来形成光滑曲线,缺点是计算量略大;而五点加权平均法相对较为直观,易于实现.针对数据点少有断层现象,文献[9]在考虑了断层两边数据点的空间相关性,这使得处理结果既与整体趋势相一致又与断层附近的变化趋势相匹配,使得等值线有较好的视觉效果.与以往算法不同,本文主要关注在属性值相同情况下,跨度较大的离散点间即数据缺失时,采用通过插值网格化方法实现等值线图形的平滑方法,从而提升插入网格点的精度.
一般地,大气环境要素、地质、地球物理领域的应用等值线使用较为常见,比如海洋表面温度场等值线应用[10].一方面,等值线可以在二维空间中构筑某一属性值的变化情况,甚至可以生成三维空间的曲面形态[8].考虑到在二维空间中数据的分布是不均匀的,所以,在等值线图生成之前,首先对数据采用网格化处理,即把不规则分布的源数据进行预处理,形成一个有规则空间矩形网格.源数据的不规则特点,常常造成数据间跨点距离较大,从而出现“空洞”现象,这就需要利用网格化的内插或者外推方法去插入数据点,填补这些“空洞”.常用的插值网格化或者空间插值方法有最近邻方法和克里金方法等.在最近邻法中,网格点P(x,y)的属性值通常取为该点最邻近点的属性值.因此,最近邻点插值的前提必须是数据均匀分布.其与KNN算法类似,针对某属性使用C-均值算法对所有数据点进行分类,并求得每一类点的平均属性值,最近邻点的属性值,取为该类数据点的平均属性值.然而,克立金方法也是一种求最优、线性、无偏内插估计量的最优内插法,其作用对象是分布在空间上的数据.与常规算法不同, 克立金方法还考虑了源数据点的空间相关性,不但给出待估计点的数值,也给出衡量精度的方差.到目前为止,克里金方法获得了多个改进的方法,包括普通克里金、泛克里金法等.两种算法都是基于空间上变量较为平稳的情况,一方面,平稳指的是随机函数Z(x)的数学期望m(x)=E{Z(x)}与其相对应的x己知,或者一个与x无关的数学期望值.另一方面,准平稳就是指随机函数Z(x)的数学期望m(x)既不平稳又不是已知.在本文中,综合考量各因素,空间格网插值运算将采用普通克里金方法进行[11].
网格化处理前,可将制图区划分成m×n个网格数据点,并设X沿方向分割为j=1,2,…,n个点;沿Y方向的分割为i=1,2,…,m个点, 将任一网格点记为gDi,j.设沿X方向单位网格边长为rN,沿Y方向单位网格边长为cN,则网格点的坐标计算为:xi,j=j×rN;yi,j=i×cN.由此,网格点区域是由(m-1)×n条纵边和m×(n-1)条横边组成.
假定有n个已知的数据点,通过采用线性组合的方式,可获得影响范围内任一点的估计值,即:
在式(1)中,λi表示各已知数据点Z(xi)对应待估值点数值的加权系数,通常为百分比.要解出公式(1)中的加权系数λi(i=1,2,…,n),满足估值Zv*具有线性、无偏、最小估计方差的条件.由此获得的λi被称作Kriging权系数,估计量Zv*称为Zv的Kriging估计值.此时,得到的估计方差也称为Kriging方差为. 其求解过程包含2步.
(1)无偏差条件
由Kriging方法的特性可知,如果要满足Zv*为Zv的无偏估计量,则有:E[Zv*-Zv]=0.或:E[Zv*]=.又因为:.则其无偏特性为:.
(2)估计方差最小条件(最优条件)
因为Kriging方法必须满足估计方差最小条件的特性,所以其方差计算为式(2):
在求无偏性条件中,估计方差的最小权系数λi(i=1,2,…,n),就必须求解条件极值,可以通过拉格朗日乘法进行计算.
即:
方程组(3)即为普通Kriging方程组.易知, 该方程组中有n+1个方程和n+1个未知数,方程组显然是有解的.将n个权系数λi代入到式(1)就可以得出待估计点的数值,代入到式(2)就可以得出表示估计精度的Kriging方差.
到目前为止,通过网格点数据生成等值线的方法很多,其中之一是通过在网格边做线性插值而得到等值点,再依照某一特定方位的方法对各等值点连线,便得到等值线.另一种方法则通过网格点数据拟合生成一个曲面函数,再细分网格产生更小的网格单元,接着通过曲面函数求解的值对网格点逐单元追踪形成等值线.
在可视化实现中,使用较多的是网格序列法和网格无关法,它们均属于等值线抽取算法.其中,网格序列法总体上是根据网格单元的排列顺序,逐单元依序处理,追踪每个单元相对应的点形成线段.此外,网格无关法则是从给定等值线的起点,依据附近点的某一属性值,找到新的等值点.不断重复找寻这些等指点,直到新点能与边界区域连通,亦或回到给定的起点,等值线便形成.考虑到网格序列法遍历的效率较差,网格无关法是其完善后的方法,效率相对较高.笔者采用的是网格无关法,现假定网格单元为矩形,则生成等值线的主要算法步骤为:(1)依次计算各网格单元特定属性值和等值线的每一个交点;(2)依序连接每个网格交点,构建相应的等值线线段;(3)连接所有网格区域范围内的等值线线段,形成该网格区域范围内的等值线.
通常情况下,数据来源都是相关领域部门提供的,其中大部分是离散数据.规则分布数据多用于内插等值点数据,规律地分布在二维空间中两组平行线上.格网数据要么来源于实际测量,源数据是通过规则的矩形或网格进行采样;要么源于任意离散点数据插值.精度要求比较高的一般采用规则分布的数据,类似等高线和摄影测量方面的应用.而在实际生产活动中,得到的源数据大多数是随机分布的离散型数据.然而,不管哪一类数据,均以离散型数据为主.本实验所使用数据均来自中国气象数据网(http://data.com.cn).
IDL即交互式数据语言,是一种数据分析和图像化应用程序及编程语言.简单地说,它可以迅速地把数据转化为相应的图像(二维图形与三维图形都适用).笔者使用的平台是ENVI/IDL,采用插值网格化Kriging方法的IDL实现,其实现代码为:
实验采用插值网格化Kriging方法IDL实现与不使用Kriging方法进行对比分析,获得等值线效果见图1;左图均为未采用插值网格化Kriging方法IDL实现效果,右图均为使用本文提出的插值网格化Kriging方法的实现效果图.
从图1可知:(1)未使用Kriging方法IDL实现效果实现等值线时,等值线的分布相对比较稀疏,这说明单位差值较小;其次,该等值线图中的线条比较少,而且比较粗糙;另外,等值线的光滑度也不够,从而影响等值线的分析,也并不能较好地体现出数据的内在含义.(2)使用Kriging方法IDL实现等值线时,等值线分布地比较密集;且等值线图中的等值线数目较多,相对比较细致一点.不过,与未使用该算法生成的等值线不同,它的线条比较光滑圆润,这说明在进行光滑处理时的效果不错.(3)两种方法中,虽然使用Kriging方法IDL实现相对复杂一点,但是平滑度效果很好,利于我们通过生成的等值线对相应的数据进行分析.因此,使用Kriging方法IDL实现等值线的可视化表达效果更加友好.
当前,实现等值线可视化方法很多,包括比较著名的径向基函数法、线性三角网法等.衡量可视化的优劣除考虑图形平滑效果外,还应考虑计算的效率,然而无论哪种计算方法,均与参加可视化运算的数据量有关.在保证一定数据可视化计算的基础上,算法本身的难易程度与计算效率密切相关.经比较分析,总体上几种算法在计算效率相当,考虑到篇幅有限,算法比较的性能图在此不再呈现.
笔者基于生成等值线的基本原理与计算方法,重点探讨了等值线光滑的离散数据点的插值网格化方法——最近邻方法和克里金方法,解决跨度较大的离散点间即数据缺失形成“空洞”的情形,通过实例验证采用插值网格化方法实现等值线图形的平滑方法,进而提升插入网格点的精度的问题.并针对本文提出的网格插值化Kriging计算方法进行IDL实现,分析得出采用网格插值化Kriging计算方法实现效果略优的一般性结论.当然,算法仍存在一些可以改进的地方,包括大数据体量下性能和可视化效果等,如何获得更高效的方法生成等值线视图,从而得到更加准确和美观的等值线图.