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)。