哈爾濱工程大學 劉佳 叢建偉 李澤鋒
將海量的枯燥數據通過技術手段以人眼易于識別的圖像、圖形和圖表形式呈現出來并動態更新,更直觀地幫助人們理解數據中隱藏的信息,是數據可視化的重要研究和發展方向。文章首先介紹了數據可視化的相關知識和工具,然后以哈爾濱工程大學為例,對建立學校數據可視化環境、建設“疫情防控”數據駕駛艙以及支持學校開展科學精準疫情防控工作的做法和經驗進行了介紹和總結,以期為其他高校提供有意義的參考。
如今,大數據和人工智能蓬勃發展,已成為各行各業的熱門話題。海量的數據及復雜的數據關系為數據分析和利用帶來了巨大的挑戰,如何將海量的枯燥數據通過技術手段以人眼易于識別的圖像、圖形和圖表形式呈現出來并動態更新,更直觀地幫助人們理解數據中隱藏的信息,成為重要的研究方向[1]。
數據可視化是運用和諧的色彩、平衡的視覺元素和一些集中注意力的特性,以圖像、圖形和圖表的形式多緯度地呈現數據細節的、趨勢的信息。數據可視化,一半是藝術一半是科學,把握藝術性的同時要有科學性,保證科學性的同時也不能缺乏藝術性。數據可視化最首要的任務是準確地傳遞數據的信息,不能誤導和歪曲數據本來的含義;另外,數據可視化應當是美觀的,能夠強化數據信息的表達[2]。
三維醫學數據可視化已經成為數字醫學領域的重要研究方向之一[3]。三維數字醫學模型可以展示人體器官更加清晰的三維形態以及復雜的空間組織結構,可以幫助醫生做出更加準確的判斷,目前已被廣泛應用于醫學影像診斷和分析、手術規劃與導航、CT 仿真、PET 診斷、放射醫學診斷和虛擬內窺鏡成像技術等方面。
氣象數據可視化在氣象科學研究領域和天氣預報業務中發揮著重要的支撐作用[4]。巨型臺風、龍卷風、大范圍的干旱和洪澇、水循環等的觀測和預報預警已成為現實,而且,更深、更廣、更專業的氣象知識如地形雨、冷暖鋒、厄爾尼諾、下擊暴流等,也正在走進公眾的視線,對氣象數據可視化提出了更高的要求。
數據可視化正在強力推動工程建設技術和管理的重大變革。數據可視化應用于海上風電工程,可監測風機的狀態和進行設備遠程巡檢,能夠很好地解決施工難度大、運維成本高的問題[5];應用于流體力學工程,通過實時模擬三維管網內的流體運動,可有效地幫助人們監測管網內的物質運輸狀態,以及在防災避險時(如巷道、軌道突水)指導人們及時規避風險[6]。
目前市面上的數據可視化工具眾多,根據不同的標準可以劃分為不同的類別,從軟件和編程工具兩方面可以進行如下劃分[1,7]。
3.1.1 三維圖像類
三維圖像類可視化軟件側重于利用計算機圖形學將復雜的科學概念或結果以三維視覺圖像的形式呈現出來,如醫學圖像領域的3D Slicer、地理信息領域的ArcGIS 等。
3.1.2 圖形圖表類
圖形圖表類可視化軟件側重于利用二維圖形、圖表的形式呈現數據的統計分析結果、規律和變化趨勢,如辦公軟件Microsoft Excel、商業智能軟件PandaBI 等。
3.2.1 JavaScript 語言
JavaScript 是一種基于對象、事件驅動的客戶端腳本語言,在Web 開發中廣泛使用。Chart.js、D3.js 和Chartist.js 都是比較好用的JavaScript 圖形圖表庫,用戶在項目中導入后即可根據需要創建各種樣式的圖形圖表。
3.2.2 Python 語言
Python 是近年來比較流行的面向對象腳本語言,廣泛應用于可視化編程、人工智能等計算機科學領域。進行數據分析必要的Python 類庫主要有Pandas、Geopandas、SQLite3、Numpy 和Matplotlib 等[8],支持數據庫訪問、數據處理和圖像處理。
為快速落實國家疫情防控政策、實現科學精準疫情防控[9],最大化降低疫情對學校教學和科研等活動的影響,學校信息化部門基于數據可視化平臺建設上線了“疫情防控”數據駕駛艙,為學校疫情防控工作的有序有效開展和資源精準投入提供了重要的依據和保障。
疫情防控-數據分析預警情況頁面如圖1 所示。
我校的疫情防控數據可視化工作,實際上是綜合考慮學校的疫情防控需求、信息系統和數據資源情況、技術支撐能力以及本地疫情形勢等多方面的因素,采取了分兩步走的策略:第一步,先進行疫情相關原始數據的治理,通過SQL 程序查詢提供所需的結果數據,確保能夠實現應急響應疫情防控;第二步,以第一步治理后規范的疫情相關數據為基礎進行多緯度統計分析,通過數據可視化平臺以圖形、圖表的形式呈現,實現常態化疫情防控。
疫情防控數據可視化技術架構如圖2 所示。

圖2 疫情防控數據可視化技術架構Fig.2 Data visualization technology architecture for epidemic prevention and control
4.2.1 選擇合適的數據可視化工具
數據可視化工具承擔對學校各類數據的可視化呈現任務,基于數據可視化工具開發的數據圖形圖表和組合而成的數據大屏對于發掘數據價值、發現潛在問題、優化管理流程、快速響應決策等學校業務的開展具有重要的意義。我校對于數據可視化工具(以下稱“平臺”)的需求主要包括以下幾個方面:
(1)支持多種類型的數據源;
(2)自動化程度高,操作便捷;
(3)可根據需要任意添加多種類型的圖形圖表組件和數據大屏;
(4)支持配置多表關聯進行數據分析和呈現;
(5)支持圖表數據下載為Excel 文件;
(6)支持自定義圖形圖表,如開源的EChart 圖表代碼;
(6)可將數據大屏發布為公開超鏈接;
(7)可根據用戶自身的角色和權限,配置不同的圖形圖表和數據大屏的查看和下載權限;
(8)支持單點身份認證登錄;
(9)達到性能要求,訪問流暢;
(10)符合安全標準,保障數據的安全。
4.2.2 確保平臺與其他系統的暢通
根據前期建設規劃,平臺需對接以下系統:
(1)與單點身份認證系統對接,師生通過單點身份認證即可登錄平臺;
(2)與學校中心數據庫、校園卡系統數據庫、數據交換平臺均連接暢通,數據工作人員可通過數據交換平臺將中心數據庫、校園卡系統數據庫的數據推送至平臺數據庫;
(3)與數據庫管理平臺連接暢通,數據工作人員可通過數據庫管理平臺對數據流轉的各個環節進行靈活管理,保障數據從源端到目標端準確、快速地呈現。
4.3.1 設計“疫情防控”數據駕駛艙頁面
“疫情防控”數據駕駛艙頁面的設計主要有以下4 個步驟:
(1)圍繞學校疫情防控工作,調研學校相關各方對“疫情防控”數據駕駛艙的需求,擬定各單位關心的內容和數據來源;
(2)根據“疫情防控”數據駕駛艙頁面顯示的容量,將擬定的內容進行分類,分別在不同的頁面上顯示,并為各個頁面擬定名稱;
(3)規劃“疫情防控”數據駕駛艙的主體色調,再根據每個頁面的內容分別設計布局和圖形圖表樣式,并為每個圖形圖表擬定名稱;
(4)與學校相關各方多次溝通確認,完成“疫情防控”數據駕駛艙頁面的設計,形成最終效果圖,切圖后即可在平臺繪制出初步的有背景效果的數據呈現頁面。
4.3.2 準備圖形圖表數據
在“疫情防控”數據駕駛艙頁面顯示的每個圖形或圖表,與平臺的數據庫表或視圖[10]并不一定是一對一的關系,而可以是一對多、多對一的關系。下面以學生預警數據為例來介紹。
根據建設需求,要在數據分析預警情況頁面顯示5項學生預警數據,分別為:
(1)昨日學生最后進出校數據;
(2)昨日在校園學生24 點前未歸寢數據;
(3)當前在校園學生48 小時未出寢數據;
(4)當前在校園學生72 小時無校內軌跡數據;
(5)當前學生已出校但有校內軌跡數據。
每項學生預警數據各對應1 個明細數據圖表和1 個統計數據圖表,一共是10 個圖表。
在實際開發中,并非一定要在源端對應建立10 個數據庫表或視圖,而是應該根據這5 項學生預警數據的特點,盡可能地整合成1 個數據表后推送至平臺數據庫。通過這樣整合處理,不僅可以在數據處理時保持數據的一致性,同時還可以減少數據交換接口的使用,最大化降低平臺應用的復雜性和運維開銷。
實際操作步驟如下:
(1)在學校中心數據庫,先把5 項學生預警數據用一個視圖“學生預警數據”整合處理出來,如圖3 所示;

圖3 “學生預警數據”視圖Fig.3 "Student Alert Data" view
(2)在數據交換平臺建立數據交換接口,將中心數據庫的“學生預警數據”視圖數據推送至平臺數據庫表“XSYJSJ”中,數據交換接口如圖4 所示;

圖4 學生預警數據交換接口Fig.4 Student alert data exchange interface
(3)平臺數據庫表“XSYJSJ”的數據如圖5 所示,“XSYJSJ”表字段與“學生預警數據”視圖字段是一一映射關系。其中,“預警類別”字段有5 個值,據此可分別篩選出所需的5 項學生預警數據,并可分別進行統計,然后通過圖形圖表在數據大屏上呈現。

圖5 “XSYJSJ”表數據Fig.5 "XSYJSJ" table data
4.3.3 開發數據呈現頁面
在平臺中,新建圖形圖表,連接平臺的數據庫表“XSYJSJ”,選擇合適的圖形圖表樣式,提取相關字段、配置相關參數后,即可繪制出所需的圖形圖表。通過不斷地調整圖形圖表大小、配色以及內容的字體、間距等,呈現最優效果[11]。
在圖1 數據分析預警情況頁面中,單擊“昨日在校園學生24 點前未歸寢人數”超鏈接,即可打開“昨日在校園學生24 點未歸寢”明細數據頁面,如圖6 所示。

圖6 學生預警明細數據頁面Fig.6 Student alert details page
同理,在圖1 數據分析預警情況頁面中,單擊另外4個超鏈接,即可打開對應的另外4 項學生預警數據。
在明細數據頁面,通過判斷訪問者不同的輔導員、副書記和學工處管理人員角色權限,僅對應顯示其管理的學生的預警數據和提供Excel 數據下載。
對平臺的功能、性能、訪問者角色權限配置和瀏覽器適應情況等方面進行全面測試,確保滿足要求后即可上線使用,上線后持續進行運維保障。
特別需要重視以下幾個方面:
(1)“疫情防控”數據駕駛艙呈現的數據最終來源于近30 個信息系統,這些信息系統各有數據量不等的前端設備,例如校園卡系統就有2000 多臺前端設備。各信息系統的管理員時常會根據需要新增、修改或撤銷設備以及對信息系統進行配置變更,這些操作都會引起信息系統數據的變化。因此,平臺運維人員一定要加強與各信息系統管理員、建設廠商的溝通協調,并針對每個信息系統做好數據規范化和建立“先確認再操作”的機制,在相關各方都確認接下來的操作引起的數據變化能被正常處理后再開始操作,并監控數據正常流轉。
(2)“疫情防控”數據駕駛艙不僅呈現統計數據,還呈現部分個人行動軌跡相關的明細數據,因此,平臺運維人員要特別注意訪問者的角色權限控制,最小化配置數據查看和下載權限,避免發生數據安全問題。
(3)隨著疫情防控工作需求的變化,將會有更多的數據需要可視化呈現。在這種情況下,為減輕平臺面對高訪問量和大數據量的壓力,需保持先在中心數據庫和校園卡系統數據庫等源端數據庫中整合處理出數據結果,再通過數據交換平臺對接至平臺數據庫相應數據表中的數據流轉方式。源端數據庫負責初始數據的整合處理,平臺只進行簡單的數據統計分析,主要負責可視化呈現。
“疫情防控”數據駕駛艙通過50 余個圖表全面展示疫情防控總覽概況、數據分析預警、人車進出校門、校內場所人流、健康信息填報和人員出差離哈等幾個方面情況,面向學校疫情防控相關人員授權訪問,為學校制定和調整精準的疫情防控策略,以及各單位合理安排本單位疫情防控工作和檢查工作執行情況提供數據支撐。文章首先介紹了數據可視化的相關知識和工具,然后以哈爾濱工程大學為例,對建立學校數據可視化環境、建設“疫情防控”數據駕駛艙以及支持學校開展科學精準疫情防控工作的做法和經驗進行了介紹和總結,以期為其他高校提供有意義的參考。