999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

青海湖生態水文監測數據可視化平臺①

2018-10-24 11:06:02蕭曉俊羅萬明閻保平
計算機系統應用 2018年10期
關鍵詞:可視化數據庫生態

蕭曉俊, 羅萬明, 羅 澤, 閻保平

1(中國科學院 計算機網絡信息中心, 北京 100190)

2(中國科學院大學, 北京 100049)

青海湖位于中國青海省, 在剛察縣、共和縣及海晏縣交界處, 面積4435.69平方公里. 青海湖長105公里, 寬63公里, 湖面海拔3196米, 平均深度21米, 最大深度32.8米. 它是中國最大的內陸湖泊和咸水湖, 湖面東西長, 南北窄. 它四面有環山包圍, 北面是大通山,東面是日月山, 南面是青海南山, 西面是橡皮山. 青海湖水資源豐富, 湖周大小河流有70多條, 湖北岸、西北岸和西南岸河流多, 流域面積大, 支流多, 具有重要的水文研究價值[1,2].

青海湖生態水文監測數據的采集已經持續了很多年. 但是不同的傳感器數據類型不同, 而且數據量龐大,有屬于大氣環境的風速風向、空氣溫度、空氣濕度、太陽總輻射、地表紅外溫度、飽和水汽壓、二氧化碳等的數據, 也有屬于土壤的含水量、電導率、介電系數、溫度的數據, 還有降水量、蒸發量等水文數據. 豐富的數據類型和龐大的數據量迫使我們的使用可視化平臺對青海湖生態監測數據進行管理和應用.

為此, 本文設計實現了青海湖生態水文監測數據可視化平臺. 該平臺使用Echarts作為可視化工具[3–5],InfluxDB時序數據庫[6–8]作為存儲手段, 可以對青海湖的大氣環境、水文、土壤等生態數據以柱狀圖、折現圖、散點圖等多種圖形進行展示, 便于管理和應用.

1 青海湖生態水文監測數據可視化平臺設計

1.1 系統整體架構

圖1是青海湖生態水文監測數據可視化平臺的系統整體功能設計結構圖. 整個可視化平臺主要分成三個部分, 一個用戶管理模塊負責管理用戶的登錄和注銷, 一個數據處理模塊負責對原始數據進行處理導入到數據庫, 一個數據可視化模塊負責拉取數據并進行可視化.

圖1 系統整體架構

首先, 用戶管理模塊是必不可少的. 然后, 由于原來的青海湖收集數據的系統把收集的傳感器數據都放到dat文件中, 所以我們需要對原始數據進行處理并導入到數據庫中. 數據處理模塊用于完成該工作. 數據處理模塊會定時地讀取文件, 獲取新采集的數據, 對數據進行格式的轉換, 再對轉換的數據進行過濾處理, 去掉不符合規則的臟數據, 最后再把數據存到數據庫中.

系統采用B/S結構, 由瀏覽器端和服務端組成. 瀏覽器端是用戶對可視化系統進行操作互動的平臺, 通過一個用戶登錄驗證的功能然后進入到青海湖生態水文監測數據可視化的主平臺. 具體的響應邏輯則由服務器端完成, 兩者通過HTTP報文進行交互. 整個平臺采用現在主流的MVC結構[9,10], 分別是模型(Model)、視圖(View)和控制器(Controller)三個部分. 模型封裝后臺生態數據和相關實體類的操作. 控制器響應瀏覽器端的請求, 完成具體的業務邏輯. 視圖完成圖形的渲染, 生成與用戶進行交互的各個界面.

1.2 工作流程

圖2是青海湖生態水文監測數據可視化平臺的整體工作流程. 首先用戶通過登錄驗證后進入到可視化平臺的Web端. 在可視化平臺的Web端, 用戶選擇觀測站地點, 觀測數據類型, 開始時間和結束時間等篩選要素. 之后通過HTTP請求到可視化平臺后臺. 后臺進行主要的邏輯處理, 把用戶的選擇組裝成數據庫查詢,并把結果按照前端的要求進行返回. 最后, 前端通過可視化工具對數據進行相應的可視化.

圖2 工作流程

2 關鍵技術

2.1 Spring MVC

Spring MVC使用簡單, 性能高效, 可擴性和可閱讀行良好, 是當前主流的后臺開發框架. 圖3是SpringMVC的工作流程. 首先, 前端控制器會攔截HTTP請求. 然后查詢處理器映射器, 根據HTTP請求的URL匹配對應的處理器. 成功匹配處理器后, 前端控制器會轉發請求, 處理器負責處理業務請求并返回ModelAndView對象. 前端控制器再請求視圖解析器對ModelAndView對象進行解析. 視圖解析器會根據視圖名稱形成真正的視圖, 一般是JSP文件, 作為視圖對象進行返回. 獲取渲染視圖, 其實就是將ModelAndView對象中的數據放到HTTP應用中的一個域中. 最后前端控制器進行HTTP響應, 返回的HTTP中包含JSP文件的地址和渲染需要的數據, 前端就可以渲染視圖并展現給用戶.

2.2 InfluxDB數據庫

InfluxDB數據庫的存儲引擎使用TSM Tree (Time Structured Merge Tree). 在InfluxDB數據庫中, 增刪改操作都是直接追加到對應的文件的末尾, 并不會馬上就對數據進行改變, 而是通過一個定時任務把數據處理真正完成. 而且內存則是直接插入到TSM Tree中,進行查詢可以查詢到最新的數據的數據狀態, 不會發生查詢到已刪除數據的情況. 這樣的設計可以很好地支持重寫輕讀的場景.

圖3 SpringMVC工作流程

InfluxDB數據庫有數據保留策略和連續查詢的功能. InfluxDB的數據保留策略, 就是可以設置數據在數據庫的生存時間, 如果超過生存時間, 數據會被刪除.而連續查詢可以定期地對數據庫表進行查詢, 把查詢的結果導入到另一張表中. 用于對數據進行壓縮聚合.兩者可以配合使用, 可以使得新的數據有較高的數據精度而舊數據有較低的數據精度.

2.3 Echarts可視化工具

Echarts是開源的JavaScript可視化工具. 和大多數的開源可視化工具相比, Echarts使用簡單而且性能良好. Echarts只需要向echarts實例設置統一的Option對象就能完成可視化. 具體流程:先定義一個div區域用于可視化(如圖4所示). 然后使用如圖5所示的JavaScript語句先為定義的區域初始化一個echarts實例, 再把HTTP響應的json格式的字符串數據反序列化成Echarts可以識別的Option對象, 最后把Option對象設置到echarts實例中, 即可完成可視化.

圖4 div區域

圖5 可視化JavaScript語句

3 系統實現

3.1 數據可視化模塊

數據可視化模塊的主要功能是完成數據的可視化.對數據進行可視化也是青海湖生態水文監測數據可視化平臺的主要任務.

圖6 可視化處理接口的具體流程

數據可視化模塊對外主要提供一個接口. 該接口接收用戶的可視化請求. 該接口的具體流程如圖6所示. 首先, 接口接收HTTP請求, 然后獲取HTTP請求中用戶的可視化篩選條件值. 接著要對條件值進行校驗, 驗證非空、邊界等等. 成功校驗后根據條件組裝數據庫查詢, 根據觀測站地點選擇查詢的數據庫表, 根據觀測數據類型選擇查詢的字段, 根據查詢的時間區間組裝Where語句, 根據統計維度(按小時、天、月、年)組裝Group By語句. 數據庫查詢成功后, 對得到的可視化數據進行非空校驗, 如果返回為空, 直接返回失敗. 否則, 組裝 Echarts的 Option對象. 然后把Option對象序列化成字符串. 最后返回HTTP應答.

以下是一個完整的Option對象結構示例(其中數據都被隱藏):

瀏覽器前端則主要使用bootstrap框架, 優化界面的感官效果, 為用戶提供更良好的用戶體驗. 同時使用Ajax技術完成條件選擇和可視化展示的動態交互.

3.2 數據處理模塊

因為收集傳感器數據的程序讀寫頻繁, 而讀寫文件與讀寫數據庫相比, 前者是一個輕量級的操作而后者是一個重量級的操作. 所以, 青海湖的觀測數據是以文本文件形式存儲的. 但是以文件保存的生態數據不便于管理和應用, 所以系統使用一個數據處理模塊定時地把傳感器收集的原始數據導入到數據庫中. 青海湖的數據收集系統會按傳感器地點和類型用一個文件保存一天的數據, 所以我們使用定時器每天處理一次數據. 定時器設置在每天的早上4點觸發, 處理前一天收集的數據.

具體流程如圖7所示. 定時器觸發后, 檢查收集數據的目錄下的文件, 匹配文件名, 查看是否有前一天的數據文件. 如果有, 則開始遍歷讀取數據文件. 對于每個數據文件, 逐條數據讀取并判斷看數據是否合法, 如果數據符合要求則緩存到一個緩存區中. 每當緩存區的數據行數達到5000條, 則批量寫入到數據庫中(InfluxDB官網文檔表示批量寫入數據每次5000條性能最佳). 如果該數據文件的數據已經讀取完成, 也將緩存區的數據批量寫入到數據庫中. 該數據文件處理完成后, 把該文件移動到已處理數據的目錄下, 避免收集數據目錄下文件過多, 也省去對重復文件的判斷. 之后繼續遍歷文件, 直到完成對前一天新收集的數據文件的處理.

圖7 數據處理的具體流程

3.3 數據聚合

現在青海湖的數據收集系統運行已經超過10年,每年數據量大概是300萬條. 我們使用InfluxDB的數據保留策略和連續查詢對數據進行壓縮聚合. 我們設置數據的有效時間是一年(圖8), 并把一年后的數據聚合成每天的均值(圖9).

圖8 數據保留策略

圖9 連續查詢

3.4 系統展示

用戶完成登錄認證進入到可視化平臺后, 通過在左邊選擇觀測的數據類型, 在右邊選擇觀測站地點(蛋島、鸕鶿島)、圖表類型(柱狀圖、折線圖、散點圖、漣漪散點圖、面積圖等), 選擇開始時間和結束時間,選擇按小時、日、月或者年進行統計, 然后點擊確定按鈕就可以把相應的生態數據進行聚合展示, 如圖10所示. 生成的可視化圖還可以以圖片的形式下載到本地, 也可以查看視圖的原始數據. 還支持在圖上通過點擊轉換的按鈕, 快速地完成向折線圖和柱狀圖的轉換.

圖10 平臺可視化示例

4 結論與展望

青海湖生態水文監測數據可視化平臺用于對青海湖生態數據進行可視化, 在百萬級數據量的情況下依然能夠快速地響應. 整個平臺各個模塊解耦, 互相之間通過接口進行調用, 便于以后擴展新的功能. 下一步將添加更多的功能, 給各個站點添加實時的數據監控, 支持更多的圖表類型, 增加數據分析模塊, 實現更細粒度的可視化展示, 并在系統的性能方面展開進一步的研究工作, 提升系統的性能水平.

猜你喜歡
可視化數據庫生態
基于CiteSpace的足三里穴研究可視化分析
基于Power BI的油田注水運行動態分析與可視化展示
云南化工(2021年8期)2021-12-21 06:37:54
“生態養生”娛晚年
保健醫苑(2021年7期)2021-08-13 08:48:02
基于CGAL和OpenGL的海底地形三維可視化
住進呆萌生態房
學生天地(2020年36期)2020-06-09 03:12:30
生態之旅
“融評”:黨媒評論的可視化創新
傳媒評論(2019年4期)2019-07-13 05:49:14
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
主站蜘蛛池模板: 日韩欧美色综合| 夜夜爽免费视频| 四虎永久免费网站| 国产自产视频一区二区三区| 67194亚洲无码| 全部免费毛片免费播放 | 亚洲国产欧美中日韩成人综合视频| a色毛片免费视频| 日韩资源站| 在线看片免费人成视久网下载| 99这里只有精品免费视频| 欧美精品v日韩精品v国产精品| 欧美亚洲国产视频| 久久精品人妻中文视频| 国产精品高清国产三级囯产AV| 喷潮白浆直流在线播放| 玖玖免费视频在线观看| 亚洲精品福利网站| 日韩人妻无码制服丝袜视频| 久久无码av三级| 久久国产高潮流白浆免费观看| 青青草a国产免费观看| h网址在线观看| 久草青青在线视频| 精品无码日韩国产不卡av| 久久精品无码一区二区日韩免费| 欧美精品H在线播放| 制服丝袜 91视频| 亚洲欧洲日产无码AV| 色噜噜在线观看| 青青青视频蜜桃一区二区| 亚洲精品国产综合99| 久久综合色88| 99精品高清在线播放| 99久久国产综合精品2023| 最新国产你懂的在线网址| 麻豆国产原创视频在线播放| 无码AV高清毛片中国一级毛片| 青青青国产在线播放| 亚洲国产精品一区二区第一页免| 精品视频在线观看你懂的一区| 中文字幕日韩丝袜一区| 久青草国产高清在线视频| 国产乱子伦一区二区=| 性色一区| 国产激情第一页| 人妻无码中文字幕第一区| 制服丝袜国产精品| 在线人成精品免费视频| av午夜福利一片免费看| 欧美日韩成人在线观看| 永久在线播放| 青青久久91| 手机在线看片不卡中文字幕| 狼友视频一区二区三区| 久久免费成人| 欧美激情第一欧美在线| 日韩精品专区免费无码aⅴ| 日韩AV手机在线观看蜜芽| 久久亚洲日本不卡一区二区| 视频在线观看一区二区| 日韩欧美国产中文| 四虎精品黑人视频| 免费看久久精品99| 成人毛片免费在线观看| 一区二区影院| 国产又粗又爽视频| 国产激爽大片高清在线观看| 日本欧美在线观看| 成人小视频在线观看免费| 天天综合网站| 国产SUV精品一区二区| 亚洲无码免费黄色网址| 好久久免费视频高清| 1769国产精品免费视频| 日本影院一区| 40岁成熟女人牲交片免费| 亚洲国产精品一区二区第一页免 | 天堂网国产| 色综合网址| 国产高清免费午夜在线视频| 成人福利在线看|