国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Shiny框架的海洋浮標(biāo)大數(shù)據(jù)處理實(shí)驗(yàn)平臺(tái)

2018-09-29 03:07:44王廷偉ChristosGrecos
實(shí)驗(yàn)室研究與探索 2018年8期
關(guān)鍵詞:浮標(biāo)監(jiān)測(cè)數(shù)據(jù)數(shù)據(jù)處理

任 鵬, 王廷偉, Christos Grecos

(1. 中國石油大學(xué)(華東) 信息與控制工程學(xué)院, 山東 青島 266580; 2. 中央華盛頓大學(xué) 計(jì)算機(jī)科學(xué)系,華盛頓州, WA 98926; 3. 青島市海洋災(zāi)害預(yù)防檢測(cè)信息國際聯(lián)合研究中心, 山東 青島 266580)

0 引 言

美國國家大氣與海洋管理局[1](NOAA)是全球最大的、開放的海洋數(shù)據(jù)管理平臺(tái),其海洋浮標(biāo)數(shù)據(jù)中心[2](NDBC)免費(fèi)提供全球范圍內(nèi)的風(fēng)向、風(fēng)速、溫度、鹽度等海洋浮標(biāo)監(jiān)測(cè)數(shù)據(jù)。這些數(shù)據(jù)覆蓋范圍廣、更新速度快、記錄時(shí)間長(zhǎng)、監(jiān)測(cè)種類多,具有顯著的大數(shù)據(jù)特征。R語言[3-4]是數(shù)據(jù)挖掘和大數(shù)據(jù)處理方面優(yōu)秀的編程語言,可以實(shí)現(xiàn)對(duì)數(shù)據(jù)規(guī)律的充分挖掘。同時(shí)Shiny具有強(qiáng)大的地圖操作功能和可視化能力,能夠更加直觀地展現(xiàn)數(shù)據(jù)處理結(jié)果。

R是針對(duì)R語言開發(fā)的一個(gè)自由、免費(fèi)、源代碼完全開放的軟件和操作環(huán)境,它是應(yīng)用于統(tǒng)計(jì)、計(jì)算和制圖的優(yōu)秀工具,是一套完整的數(shù)據(jù)分析、處理和可視化軟件系統(tǒng)。因?yàn)樵创a開放,R允許用戶開發(fā)屬于自己的程序包并將其托管到GitHub或者CRAN上。目前CRAN官方網(wǎng)站上已收錄5 000余個(gè)工具包,內(nèi)容涵蓋基礎(chǔ)統(tǒng)計(jì)學(xué)、社會(huì)學(xué)、經(jīng)濟(jì)學(xué)、生態(tài)學(xué)、空間分析、生物信息學(xué)等諸多方面。通過調(diào)用這些工具包,能夠方便地進(jìn)行數(shù)據(jù)挖掘相關(guān)工作,對(duì)海洋浮標(biāo)大數(shù)據(jù)進(jìn)行有效分析和處理。

Shiny是Rstudio團(tuán)隊(duì)針對(duì)R語言開發(fā)的網(wǎng)頁應(yīng)用開發(fā)框架,允許用戶使用純R語言開發(fā)界面簡(jiǎn)潔、功能強(qiáng)大、可發(fā)布的網(wǎng)頁應(yīng)用,實(shí)現(xiàn)網(wǎng)頁應(yīng)用與數(shù)據(jù)處理的無縫銜接。Shiny具有以下特性:① 具有豐富的控件,如文本框、日期輸入、按鈕、復(fù)選按鈕等,方便搭建內(nèi)容豐富、界面精美的網(wǎng)頁;② 地圖操作方便,可以調(diào)用開放的地圖API,方便開發(fā)類似于谷歌地圖式的交互性強(qiáng)、界面簡(jiǎn)潔、功能強(qiáng)大的地圖應(yīng)用,將美國國家大氣與海洋管理局海洋浮標(biāo)位置信息顯示在地圖上,更加直觀高效;③ 允許使用純R語言進(jìn)行編程,即使沒有掌握HTML、CSS、JavaScript等相關(guān)知識(shí)也可以開發(fā)頁面精美、功能強(qiáng)大的網(wǎng)頁應(yīng)用。

除此之外,Shiny提供了兩種網(wǎng)頁發(fā)布途徑:① Shiny開發(fā)團(tuán)隊(duì)提供了官方服務(wù)器,部署簡(jiǎn)單方便,但是不能進(jìn)行自行配置,無法訪問本地文件。② 官方提供私有服務(wù)器配置方法,用戶可以在本地部署、發(fā)布,靈活性強(qiáng)。Shiny具有出色的數(shù)據(jù)可視化能力,地圖操作功能強(qiáng),使用方便靈活,適合用于數(shù)據(jù)可視化操作和網(wǎng)頁平臺(tái)的搭建。

本文所設(shè)計(jì)的實(shí)驗(yàn)平臺(tái)將R語言、Oracle數(shù)據(jù)庫[5]和Shiny網(wǎng)頁框架結(jié)合起來,能夠?qū)崿F(xiàn)海洋浮標(biāo)監(jiān)測(cè)大數(shù)據(jù)的可視化和數(shù)據(jù)內(nèi)在關(guān)系的挖掘。該實(shí)驗(yàn)平臺(tái)有助于學(xué)生深入了解數(shù)據(jù)獲取、存儲(chǔ)、可視化和數(shù)據(jù)分析與挖掘領(lǐng)域的問題分析方法和解決方案,鍛煉學(xué)生分析問題和解決問題的能力,并且能夠培養(yǎng)和提升他們的創(chuàng)新能力和工程實(shí)踐能力,使他們能夠更快地適應(yīng)將來的工作和學(xué)習(xí)。

1 實(shí)驗(yàn)平臺(tái)設(shè)計(jì)

本文所設(shè)計(jì)的海洋浮標(biāo)監(jiān)測(cè)數(shù)據(jù)處理實(shí)驗(yàn)平臺(tái)主要包括數(shù)據(jù)獲取、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)處理和可視化顯示四部分。其中數(shù)據(jù)分析和可視化平臺(tái)的搭建是系統(tǒng)設(shè)計(jì)過程中考察學(xué)生分析問題和解決問題的關(guān)鍵環(huán)節(jié)和核心單元,實(shí)驗(yàn)平臺(tái)總體結(jié)構(gòu)如圖1所示。

圖1 海洋浮標(biāo)監(jiān)測(cè)數(shù)據(jù)處理實(shí)驗(yàn)平臺(tái)結(jié)構(gòu)示意圖

1.1 數(shù)據(jù)獲取

實(shí)驗(yàn)平臺(tái)的搭建首先需要海量的數(shù)據(jù),但是從網(wǎng)絡(luò)上手動(dòng)獲取海洋浮標(biāo)的監(jiān)測(cè)數(shù)據(jù)是一件繁瑣而枯燥的任務(wù)。CRAN收錄的RCurl[6]、RVEST等網(wǎng)絡(luò)爬蟲工具包,允許用戶自動(dòng)從網(wǎng)絡(luò)上獲取想要的數(shù)據(jù)和資源。

NOAA海洋浮標(biāo)數(shù)據(jù)中心提供了風(fēng)力、風(fēng)速、溫度、氣壓、海浪等監(jiān)測(cè)數(shù)據(jù)供下載和使用,并且這些數(shù)據(jù)以表格形式呈現(xiàn)。因此指定好網(wǎng)址*http://www.ndbc.noaa.gov/data/realtime2/32ST0.txt之后利用R語言中表格讀取函數(shù)read.table()能夠直接從網(wǎng)頁上將數(shù)據(jù)抓取到本地。獲取的數(shù)據(jù)以字符格式存儲(chǔ),對(duì)于后續(xù)處理帶來不利影響,因此需要利用as.numeric()函數(shù)將字符格式的數(shù)據(jù)轉(zhuǎn)換為數(shù)字格式,利用name()函數(shù)為數(shù)據(jù)的每一列指定對(duì)應(yīng)名稱,最后使用write.csv()函數(shù)將數(shù)據(jù)存為CSV文件,方便后續(xù)將數(shù)據(jù)導(dǎo)入到Oracle數(shù)據(jù)庫中。

數(shù)據(jù)獲取和預(yù)處理工作是數(shù)據(jù)分析的前提和基礎(chǔ),通過網(wǎng)絡(luò)爬蟲程序能夠從網(wǎng)絡(luò)上獲取海量的數(shù)據(jù),鍛煉學(xué)生數(shù)據(jù)獲取和預(yù)處理的能力,培養(yǎng)其主動(dòng)獲取資源的意識(shí)。

1.2 數(shù)據(jù)庫構(gòu)建

NOAA海洋浮標(biāo)數(shù)據(jù)中心提供的浮標(biāo)監(jiān)測(cè)數(shù)據(jù)更新速度快、數(shù)據(jù)量大。如果從網(wǎng)絡(luò)獲取的數(shù)據(jù)直接進(jìn)行處理和顯示,不僅占用內(nèi)存大,時(shí)間上也不存在連貫性,不利于數(shù)據(jù)挖掘和后續(xù)的處理。數(shù)據(jù)庫能夠?qū)?shù)據(jù)進(jìn)行有效組織和管理,方便數(shù)據(jù)進(jìn)行高效存取和查詢,因此可以通過構(gòu)建數(shù)據(jù)庫對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)。數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)框圖如圖2所示。

R與Oracle數(shù)據(jù)庫之間能夠通過數(shù)據(jù)接口進(jìn)行連接。通過調(diào)用接口程序,R可以嵌入標(biāo)準(zhǔn)的SQL數(shù)據(jù)庫管理語言,從而實(shí)現(xiàn)數(shù)據(jù)寫入、查詢、刪除等功能。ROracle是Denis Mukhin等開發(fā)的R與Oracle之間的接口工具包,允許R與ORACLE數(shù)據(jù)庫之間建立聯(lián)系。建立聯(lián)系之前首先需要使用dbDriver()函數(shù)加載驅(qū)動(dòng)程序,加載驅(qū)動(dòng)程序完成之后使用dbConnect()建立R與Oracle數(shù)據(jù)庫之間的聯(lián)系。dbConnect()函數(shù)主要有四個(gè)參數(shù):drv為加載的驅(qū)動(dòng);username是數(shù)據(jù)庫的登錄用戶名;password是登錄密碼;dbname為目標(biāo)數(shù)據(jù)庫的名稱。目標(biāo)數(shù)據(jù)庫名稱由數(shù)據(jù)庫IP、端口號(hào)、數(shù)據(jù)庫名稱組成,一般形式為IP:端口號(hào)/數(shù)據(jù)庫名稱。

圖2 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)框圖

利用ROracle工具包建立R與Oracle數(shù)據(jù)庫之間的聯(lián)系,通過在R語言中嵌入標(biāo)準(zhǔn)的SQL數(shù)據(jù)庫操作語言,實(shí)現(xiàn)數(shù)據(jù)的高效存取、查詢工作,方便數(shù)據(jù)的管理和使用。

1.3 海洋浮標(biāo)監(jiān)測(cè)數(shù)據(jù)處理

海洋浮標(biāo)監(jiān)測(cè)數(shù)據(jù)的處理工作全部在Shiny網(wǎng)頁應(yīng)用框架下Server處理部分進(jìn)行,Shiny網(wǎng)頁應(yīng)用框架將在2.4進(jìn)行詳細(xì)闡述。從網(wǎng)絡(luò)上自動(dòng)獲取海洋浮標(biāo)監(jiān)測(cè)數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫中后,使用ROracle[7]工具包建立R與Oracle之間的聯(lián)系。通過在R語言中嵌入標(biāo)準(zhǔn)SQL語言實(shí)現(xiàn)數(shù)據(jù)的查詢、刪寫等功能,保證數(shù)據(jù)處理和可視化工作的正常進(jìn)行。

以數(shù)據(jù)查詢?yōu)槔?,建立與數(shù)據(jù)庫的聯(lián)系之后通過dbSendQuery()函數(shù)將SQL語言嵌入到R語言中。dbSendQuery()函數(shù)有連接名和SQL語言兩個(gè)參數(shù),連接名即為2.2節(jié)中描述的dbConnect連接指定的連接名,SQL語言指定需要進(jìn)行的操作。Oracle數(shù)據(jù)庫接收到請(qǐng)求之后將結(jié)果返回,R中利用fetch函數(shù)進(jìn)行解譯,最終完成數(shù)據(jù)查詢操作。

從數(shù)據(jù)庫獲取數(shù)據(jù)之后需要進(jìn)行相關(guān)數(shù)據(jù)處理工作,常用的數(shù)據(jù)分析方法有相關(guān)性分析、卡方差分析等。SFA算法[8]作為一種新的無監(jiān)督學(xué)習(xí)算法能夠從快速變化的輸入信號(hào)中找到緩慢變化的特征即驅(qū)動(dòng)力。慢特征分析算法最初應(yīng)用于視神經(jīng)學(xué)領(lǐng)域[9],現(xiàn)已經(jīng)被廣泛應(yīng)用于盲源信號(hào)分離[10]、人類行為識(shí)別[11]、手寫數(shù)字識(shí)別[12]和大型發(fā)電廠或者化工廠的故障監(jiān)測(cè)和診斷[13]等領(lǐng)域。

RSFA工具包是基于R語言針對(duì)SFA算法開發(fā)的工具包,使用sfa函數(shù)能夠?qū)Q髷?shù)據(jù)進(jìn)行分析,從快速變化的信號(hào)中獲取緩慢變化的特征,并且使用圖形的形式對(duì)結(jié)果進(jìn)行展示。通過將分析結(jié)果與海洋環(huán)境變化情況的對(duì)比,探究影響海洋環(huán)境變化的影響因素。通過對(duì)海洋浮標(biāo)監(jiān)測(cè)數(shù)據(jù)的分析,學(xué)生不僅能夠掌握相關(guān)性分析、卡方差分析等傳統(tǒng)數(shù)據(jù)分析方法,并且能夠?qū)⒙卣鞣治龅葯C(jī)器學(xué)習(xí)方法應(yīng)用到數(shù)據(jù)分析和挖掘上面去,拓展學(xué)生視野,提升能力。

1.4 數(shù)據(jù)可視化

數(shù)據(jù)分析可視化[14]對(duì)于實(shí)驗(yàn)教學(xué)來說是一個(gè)重要的環(huán)節(jié)。Shiny網(wǎng)頁應(yīng)用框架提供了便捷、豐富的數(shù)據(jù)可視化手段和方法,通過調(diào)用LeafLet包[15]可以方便地對(duì)地圖進(jìn)行操作,以圖形或者表格的形式將數(shù)據(jù)分析結(jié)果直觀展示出來。網(wǎng)頁應(yīng)用設(shè)計(jì)框圖如圖3所示。

圖3 可視化網(wǎng)頁應(yīng)用設(shè)計(jì)框架

一個(gè)Shiny網(wǎng)頁應(yīng)用程序主要包括UI和Server兩大部分,UI部分為網(wǎng)頁前端,主要涉及網(wǎng)頁布局,時(shí)間框、文本框等控件添加和ID的指定,以及處理結(jié)果的顯示。Server為應(yīng)用的后端,主要進(jìn)行UI控件變量值的接收,數(shù)據(jù)挖掘和可視化處理。通過UI和Server的配合,能夠搭建界面簡(jiǎn)潔,功能強(qiáng)大的網(wǎng)頁應(yīng)用。

1.4.1UI界面設(shè)計(jì)

海洋浮標(biāo)監(jiān)測(cè)數(shù)據(jù)在線處理平臺(tái)用戶界面主要包括海洋浮標(biāo)分布圖、監(jiān)測(cè)數(shù)據(jù)歷史趨勢(shì)圖、原始觀測(cè)數(shù)據(jù)表和數(shù)據(jù)處理結(jié)果圖。

tabPanel功能能夠定義多個(gè)子窗口,將用戶界面不同的部分在不同的界面顯示。每個(gè)界面中主要包括時(shí)間選擇控件、文本框控件、輸入選擇控件等,Shiny提供了相關(guān)函數(shù)供用戶調(diào)用,方便快捷。mainPanel用于顯示Server后端處理的結(jié)果和可視化操作結(jié)果。

1.4.2Server處理功能設(shè)計(jì)

海洋浮標(biāo)位置的標(biāo)記需要對(duì)地圖進(jìn)行加載和操作,LeafLet[16]是一個(gè)JavaScript的包,通過LeafLet能夠加載開源世界地圖,并且能夠?qū)Φ貓D進(jìn)行地點(diǎn)標(biāo)記、縮放、交互式信息框等操作。通過調(diào)用leaflet()函數(shù)能夠自動(dòng)加載世界地圖,地圖自帶縮放功能。加載地圖之后需要對(duì)海洋浮標(biāo)的位置進(jìn)行標(biāo)記和顯示,addCircles()函數(shù)能夠在地圖上對(duì)指定經(jīng)緯度的點(diǎn)進(jìn)行標(biāo)記,利用SQL語言從數(shù)據(jù)庫中獲取海洋浮標(biāo)的經(jīng)緯度之后利用addCircles()函數(shù)可以將海洋浮標(biāo)的位置在地圖上標(biāo)記。Setview()函數(shù)可以設(shè)定地圖的中心位置和縮放比例。

showZipcodePopup()是LeafLet工具包另一個(gè)強(qiáng)大功能,能夠在鼠標(biāo)單擊指定位置時(shí)顯示指定信息。當(dāng)點(diǎn)擊海洋浮標(biāo)標(biāo)記點(diǎn)時(shí),系統(tǒng)能夠自動(dòng)從數(shù)據(jù)庫中獲取當(dāng)前浮標(biāo)最新監(jiān)測(cè)數(shù)據(jù),并且以對(duì)話框的形式顯示在地圖上,高效方便。

歷史觀測(cè)數(shù)據(jù)變化趨勢(shì)能夠顯示當(dāng)前海洋浮標(biāo)的監(jiān)測(cè)數(shù)據(jù)歷史變化趨勢(shì),通過使用時(shí)間選擇控件、輸入選擇控件指定顯示時(shí)間、浮標(biāo)編號(hào)、顯示內(nèi)容等信息之后以折線圖的形式將浮標(biāo)監(jiān)測(cè)數(shù)據(jù)的變化趨勢(shì)進(jìn)行展示,便于發(fā)現(xiàn)監(jiān)測(cè)海域海況變化情況。

海洋浮標(biāo)原始監(jiān)測(cè)數(shù)據(jù)對(duì)于數(shù)據(jù)進(jìn)一步分析和發(fā)掘具有重要意義。DT::datatable()函數(shù)能夠?qū)崿F(xiàn)對(duì)數(shù)據(jù)的高效管理和顯示,DT:datatable生成的數(shù)據(jù)表格能夠進(jìn)行數(shù)據(jù)排序、查詢等操作,方便對(duì)數(shù)據(jù)進(jìn)行對(duì)比。同時(shí)利用downloadHandler()函數(shù)能夠?qū)崿F(xiàn)數(shù)據(jù)表格的下載功能。

通過數(shù)據(jù)獲取、存儲(chǔ)、處理和可視化操作,結(jié)合大數(shù)據(jù)處理方法和網(wǎng)頁應(yīng)用開發(fā)手段,最終完成海洋浮標(biāo)大數(shù)據(jù)處理實(shí)驗(yàn)平臺(tái),整體效果圖如圖4所示。

圖4 海洋浮標(biāo)大數(shù)據(jù)處理實(shí)驗(yàn)平臺(tái)

學(xué)生可以通過指定數(shù)據(jù)庫名稱、用戶名、密碼、IP地址來對(duì)數(shù)據(jù)庫的連接進(jìn)行配置,掌握數(shù)據(jù)庫連接和配置的基本步驟。通過指定監(jiān)測(cè)日期、浮標(biāo)編號(hào)、監(jiān)測(cè)數(shù)據(jù)類型來觀察某一觀測(cè)數(shù)據(jù)在1 d當(dāng)中的變化規(guī)律。通過指定地圖的中心位置和放大倍數(shù),將海洋浮標(biāo)以點(diǎn)的形式在地圖上進(jìn)行標(biāo)記,能夠直觀地了解海洋浮標(biāo)在全球的分布情況。

通過數(shù)據(jù)獲取、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)挖掘和可視化等四個(gè)方面,學(xué)生全面掌握了數(shù)據(jù)分析領(lǐng)域的流程和方法,形成一種全局意識(shí)和全局觀念,對(duì)于培養(yǎng)學(xué)生的分析能力和解決問題的能力有非常重要的意義。

2 結(jié) 語

本文以海洋環(huán)境監(jiān)測(cè)基礎(chǔ),以數(shù)據(jù)處理和可視化為出發(fā)點(diǎn),設(shè)計(jì)了一個(gè)基于R語言的Shiny框架下海洋浮標(biāo)數(shù)據(jù)實(shí)驗(yàn)平臺(tái)。該實(shí)驗(yàn)平臺(tái)能夠獲取海洋浮標(biāo)監(jiān)測(cè)數(shù)據(jù)并對(duì)其進(jìn)行處理,整個(gè)實(shí)驗(yàn)內(nèi)容涵蓋了海洋浮標(biāo)監(jiān)測(cè)數(shù)據(jù)自動(dòng)獲取、監(jiān)測(cè)數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)庫搭建,多源海洋數(shù)據(jù)處理和數(shù)據(jù)可視化四大領(lǐng)域。該實(shí)驗(yàn)平臺(tái)有助于學(xué)生深入了解數(shù)據(jù)處理的重要方法和流程,有助于培養(yǎng)和提高其創(chuàng)新能力和工程實(shí)踐能力,使他們將來能夠更好地勝任在數(shù)據(jù)分析和研究領(lǐng)域的相關(guān)工作。

猜你喜歡
浮標(biāo)監(jiān)測(cè)數(shù)據(jù)數(shù)據(jù)處理
受了委屈的浮標(biāo)君
受了委屈的浮標(biāo)君
受了委屈的浮標(biāo)君
家教世界(2023年7期)2023-03-22 12:11:24
受了委屈的浮標(biāo)君
家教世界(2023年4期)2023-03-04 07:31:28
認(rèn)知診斷缺失數(shù)據(jù)處理方法的比較:零替換、多重插補(bǔ)與極大似然估計(jì)法*
ILWT-EEMD數(shù)據(jù)處理的ELM滾動(dòng)軸承故障診斷
GSM-R接口監(jiān)測(cè)數(shù)據(jù)精確地理化方法及應(yīng)用
基于希爾伯特- 黃變換的去噪法在外測(cè)數(shù)據(jù)處理中的應(yīng)用
GPS異常監(jiān)測(cè)數(shù)據(jù)的關(guān)聯(lián)負(fù)選擇分步識(shí)別算法
基于小波函數(shù)對(duì)GNSS監(jiān)測(cè)數(shù)據(jù)降噪的應(yīng)用研究
桑日县| 大兴区| 阳西县| 郸城县| 呼伦贝尔市| 平和县| 山阴县| 襄樊市| 长治县| 封开县| 睢宁县| 万州区| 临猗县| 苍山县| 梁平县| 定结县| 于田县| 道真| 漠河县| 舞钢市| 遂川县| 鹤壁市| 东至县| 怀仁县| 城固县| 咸丰县| 盐山县| 夏河县| 桂平市| 肥东县| 长海县| 双桥区| 张北县| 秭归县| 循化| 筠连县| 江陵县| 韩城市| 楚雄市| 南充市| 沈丘县|