2021-4-9 | 计算机
随着科技的发展,地质研究过程中可获得的属性信息越来越丰富(地质、物化和遥感信息),这些信息往往量大且标度不统一[1],不利于研究。常用的直方图、等值线图等方法由于各自研究的局限性,难以在全局上用一个图形简单地总体把握研究区的属性特征,因此迫切需要一种新的、简单且快速可行的方法来反映这些属性信息的特征。目前,多维数据可视化技术可以满足这一要求,而定量化的属性信息本质是研究区属性的多维数据,其中的任何一维(列)数据均表示研究区的某一个属性特征。可以使用多维数据可视化技术来展现多维数据的内在特征,这种方法可以在一定范围内作为一种有效的抽象信息展现工具,准确快速地发现数据集中隐藏的特征信息、关系信息、模式信息及趋势信息等[2]。本文在总结前人研究成果的基础上,用VC++6.0实现了基于几何的多维数据可视化方法,即平行坐标法和圆形平行坐标法。该方法在澳大利亚新南威尔士州Mandamah地区铜-金矿床钻孔数据的应用中,可以看出平行坐标法和圆形平行坐标法对比直方图和等值线图具有独特的优势,并且包含了两者的优点,拓宽了一个图所能表示的独特信息。
1多维数据可视化
人类生活在三维空间中,面对海量的多维信息,由于自身认知能力的局限性,需要通过特殊的途径对数据进行变化才能被我们在低维空间(一、二和三维)所认识。这种数据变化不应当只是简单的图形映射,而是要尽可能地把多维数据的特征及它们之间的关系信息在低维空间中展现出来[3-4]。目前,国内外学者已经提出了多种有效的多维数据可视化方法。如:(1)主成分分析中的数据方差[5]和多维尺度变换算法中的相异度[6]等是基于降维技术映射的方法。其基本思想就是将多维数据看做多维空间中的点,然后将这些点用某种可以在一定程度上保持这些点间特定关系的方法映射到低维可视化空间中。(2)CherNoff面法、星绘法和SurveyPlot法等基于图形和图标的多维可视化技术。图形法用一个图标表示一个多维信息的对象[7];图标法用多个具有可视特征的图标来表达多维信息,图标的每一个信息可用来表示多维信息的一维[8]。(3)平行坐标法和圆形平行坐标法等基于几何的多维可视化技术。其中,平行坐标法是目前最常用的多维数据可视化方法之一,圆形平行坐标是对它的进一步扩展[9-10]。这两种方法表达的数据比较直观且容易理解,但当数据量较大时,折线密度增加将产生大量交叠线,不便于辨识。
平行坐标的基本思想是将n维数据属性空间通过n条等距离的平行轴映射到二维平面上,每一条轴线代表一个属性维,轴线上的取值范围从对应属性的最小值到最大值均匀分布。这样,每一个数据项都可以依据其属性取值,用一条跨越n条平行轴的折线段表示,相似的对象就具有相似的折线走向趋势。可以这样来实现:设Pi=(pi1,pi2,…,pin),i=1,2,…,m,Pi为n维欧式空间中的一点(m为n空间中点的个数),经过映射Pi的第j分量pij变换为二维平面第j个平行轴上的点qij(xij,yij),那么Pi可以用依次经过点qi1,qi2,…,qin的折线段表示。令Aj和Bj分别表示这m个点的第j分量xij的最小值与最大值,第一个平行轴的横坐标为d0,平行轴最低点的纵坐标为l0,平行轴的间距为d,平行轴的长度为l,映射关系可用图1来表示,那么点qij在二维直角坐标系中的坐标(xij,yij)可用下式计算。
圆形平行坐标法是对平行坐标法的扩展。首先将圆n等分,使圆中的n条半径表示n维空间的n条坐标轴。将n维数据中的每一维数据映射到对应半径上,并用折线把相邻半径(维)间的数据连接起来,形成的闭合多边形表示一个多维数据。由于坐标轴内外的不对称性,它能更好地揭示多维信息之间的某些特殊关系。其映射关系可用图2来表示,从图中可以看出圆形平行坐标法不仅需要对y轴方向进行压缩或拉伸,x轴方向也需要。具体实现时,令半径为R,第一条半径(坐标轴)角度为0°,相邻半径之间的夹角为θ=360°n,则表示第i个半径的角度为:θi=θ(i-1)。那么点Pi=(pi1,pi2,…,pij,…,pin),i=1,2,…,m,Pi的第j分量pij在圆形平行坐标系中点qij的坐标(xij,yij)可用下式计算。
2程序设计
本程序设计了数据处理模块和绘图模块。数据处理模块用于接收数据和处理用户命令;绘图模块根据数据和用户命令绘制并显示图形。主要实现的功能及实现方法原理为:(1)在数据处理模块中,首先定义了本程序可识别的数据结构。其中第1行第1列数据为数据的个数,第2列数据为数据的维数;第2行为各维数据的名字(可以是任意字符串),从第3行开始为对应维数据,数据间用空格隔开,最后用通用的文本文件保存结果。(2)其次根据各维数据的最大值和最小值,设计了供用户选择各维数据显示范围和顺序的命令窗口。可供用户选择的数据表示方法有平行坐标法、圆形平行坐标法和二维散点法。(3)在绘图模块中,为避免由于数据量大而使系统在重绘时造成的死机现象,应用Cbitmap类定义了虚拟画布。当程序接收到绘图命令时,先在虚拟画布上绘制图形并保存,最终调用已保存的图片进行显示。这样可以避免图形重绘,提高了系统的效率。
本程序除以上大框架的功能外,在细节上也进行了很多人性化的处理,使得本程序更具有通用性,具体将在实例部分阐述。实现整个程序的流程图如图3所示。
3应用实例
将上面VC++6.0实现的多维可视化方法应用于Mandamah地区铜-金矿中。该矿床位于澳大利亚新南威尔士州中南部[11],Temora以北30km,Barmedman以南4.5km,地理位置在东经147°22′30″~147°23′12″、南纬34°10′27″~34°11′00″,研究区地形平坦。本文使用了该地区353个钻孔数据,共36418个采样点,每个样品都分析了Au、Cu、Pb、Zn、Fe、Ni、Mo、As、Bi和Ca等10种元素的含量(由于各种元素含量差异较大,在分析时将各元素含量的单位进行了统一,用g/t即10-6来表示);此外还记录了每个采样点的三维地理坐标,分别记为East、North和Depth(单位为m)。