?

數據分析軟件的設計和實現

2015-07-02 16:08李珅
山東工業技術 2015年12期

摘 要:航空設備上傳數據的分析存在數據量大、數據不直觀、關鍵數據段不易捕捉等問題。針對這些問題,作者提出了一個軟件解決方案—數據分析軟件。本文介紹了該軟件的框架結構和幾個關鍵類(class)的設計和類之間的邏輯關系,并展示了該軟件在實際工作中的效果。最后分析了數據分析軟件的擴展性和應用前景。

關鍵詞:類;DataLine;Translator;DataDrawer

航空設備數據分析一直是一個難題,因為數據按ICD協議上傳,需要轉化為可讀數據才能分析設備的運行狀態。但是設備的上傳速率一般在毫秒級,所以設備運行一個小時可以輸出上百兆的數據,人工分析這些數據費時費力且錯誤率高,容易錯過關鍵數據。

針對這種情況,作者設計了一種專門分析設備上傳數據的軟件(簡稱數據分析軟件)。使用數據分析軟件處理百萬行的數據只需要不到一分鐘的時間,而且該軟件可以將數據制成曲線,可以更容易地捕捉到關鍵數據。

1 數據分析軟件

數據分析軟件包含兩個模塊:數據轉換模塊和數據繪制模塊。

1.1 數據轉換模塊

1.1.1 時間類

航空設備上傳的數據一般以時間為基準,因此數據轉換時需要保留原始數據的時間信息,這樣才能將數據繪制成以時間為X軸的曲線。時間類的定義如圖1:

基類Time繼承了IComparable接口,所以Time類重載了 “!=”,” <”, “>”,”==”四個操作符,這樣Time類的對象之間可以比較大小,所以轉換后的數據可以按時間前后排序。

1.1.2 數據類

在數據分析軟件中,數據是以行為單位的,每一行數據有多個域,不同行數據的域名相同,域內的數據不同。數據行類定義如圖2。

DataLine的對象代表一行轉換后的數據,ToString接口可以將DataLine里存儲的數據以文本的形式輸出。DataLine是一個抽象類,需要用他的子類實例化對象。由圖可見,MLSData集成了DataLine類,在成員變量中加入了一個MLSTime的對象_time用以表示該行數據的上傳時間,并且可以用CompareTo接口比較兩個MLSData對象的時間先后。其實MLSData的CompareTo接口只是調用了成員變量_time的CompareTo,如圖3。

1.1.3 翻譯器類

翻譯器實現的功能是將一行原始數據轉換為可讀數據,翻譯器定義如圖4。

Translator是一個抽象類,其中定義了一個抽象函數Translate,這個函數有一個類型為String的形式參數data,并返回一個DataLine類(或其子類)的對象。其中data表示一行文本格式的原始數據,返回值DataLine表示轉換后的數據。當需要分析按新版本ICD協議上傳的數據時,只需創建一個新的Translator子類,并按ICD協議重寫Translate函數即可。

1.2 數據繪制模塊

數據繪制模塊類關系圖如圖5:

父類DataDrawer是一個抽象函數,他實現了繪制曲線的一些基本功能。子類MLSDrawer集成了DataDrawer的基本功能,并添加了數據段放大功能。MD_WarningLine添加了告警線的顯示功能,分析人員可以清晰地看到數據告警的位置,并針對該段數據進行分析。MultiLineDawer添加了多曲線繪制弄能,可以將多組數據的曲線繪制在同一坐標系內,讓分析人員可以進行多組數據間的交叉比對。

2 實際應用

如圖6,設備上傳數據經數據轉換模塊處理后輸出可讀數據。

數據繪制模塊讀取分析結果數據后,可以將結果中的一組或多組數據繪制成曲線。

在曲線繪制區域內拖動鼠標可已放大局部數據,如圖9。

3 結語

本文介紹了一種數據分析軟件的結構設計和實現方法。在實際應用中,數據分析軟件大大提高了數據分析和設備錯誤排查的效率。該軟件的應用并不僅限于航空數據的分析,實際上它可以翻譯和繪制任何種類的數據,但原始數據必須滿足以下兩個條件之一:(1)原始數據含有時間信息;(2)原始數據不含時間信息,但數據以固定速率上傳。第二種情況下需要在數據分析軟件中擴展一個TimeGenerator類輸出等間隔的MLSTime類對象,并將該對象加入轉換后的DataLine中??梢婋S著數據分析軟件的不斷擴展,該軟件的應用領域會越來越廣。

作者簡介:李珅(1981-),男,陜西耀縣人,碩士研究生,研究方向:數字信號處理。endprint

91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合