朱曉輝 瞿 波 任紅健
1(南通大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院 江蘇 南通 226019)2(南通大學(xué)理學(xué)院 江蘇 南通 226019)
?
云計算環(huán)境下格陵蘭海鹽度數(shù)據(jù)提取算法研究
朱曉輝1瞿波2*任紅健1
1(南通大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院江蘇 南通 226019)2(南通大學(xué)理學(xué)院江蘇 南通 226019)
摘要海洋鹽度與海洋浮游植物和海洋溫度具有緊密聯(lián)系,是研究海洋環(huán)流和海洋對氣候影響的重要參量。以美國NOAA全球海洋信息數(shù)據(jù)庫為數(shù)據(jù)來源,以經(jīng)度65°N -85°N、維度20°W -10°E之間的北極格陵蘭海地區(qū)為研究區(qū)域,詳細(xì)討論鹽度數(shù)據(jù)的提取,提出時間復(fù)雜度為O(n)的鹽度數(shù)據(jù)分步歸并算法。利用微軟Azure公有云按需付費(fèi)、動態(tài)擴(kuò)展的特點(diǎn),獲取廉價、便捷的計算資源,大大提升了計算效率。該算法具有很強(qiáng)的可擴(kuò)展性,可以根據(jù)實(shí)際計算需求動態(tài)調(diào)整所需的計算資源,從而能滿足不同計算規(guī)模的需求。實(shí)驗(yàn)結(jié)果表明,該算法可以對海量原始鹽度數(shù)據(jù)進(jìn)行快速分析和歸并,生成經(jīng)緯度、時間、鹽度三個維度上的數(shù)據(jù)。
關(guān)鍵詞鹽度格陵蘭海經(jīng)緯度數(shù)據(jù)提取歸并算法云計算
0引言
海洋鹽度是研究海洋環(huán)流和海洋對氣候影響的重要參量。目前,由于技術(shù)限制和人們對鹽度遙感的認(rèn)識不足,鹽度遙感觀測技術(shù)遠(yuǎn)遠(yuǎn)滯后于研究的需要,鹽度遙感的研究幾乎處于停滯不前的狀態(tài)。近年來,一些鹽度數(shù)據(jù)庫紛紛興起,但鹽度數(shù)據(jù)提取方法的研究在國內(nèi)還屬于初級階段。由于鹽度資料在時空分布上的不足,對鹽度的研究帶來了困難。
一些研究者試圖用各種方法來處理鹽度數(shù)據(jù)。陳建等[1]用Matlab對基于二進(jìn)制的混合文件格式的鹽度數(shù)據(jù)的處理做了讀寫操作方法的研究;朱江等[2]介紹了一個三維變分海洋資料通話系統(tǒng)的設(shè)計方案,在海面高度資料同化中引入了一個新的考慮了背景場誤差的垂直相關(guān)性和非線性的溫-鹽關(guān)系的同化方案,結(jié)果有效地改進(jìn)了對海洋溫度和鹽度的估計。
為研究北極的鹽度數(shù)據(jù),我們利用美國NOAA網(wǎng)站數(shù)據(jù)庫,采用歸并算法[5]思想,并利用云計算按需申請、動態(tài)分配、快速部署等特點(diǎn),多步驟依次對數(shù)據(jù)進(jìn)行歸并處理,第一次對鹽度數(shù)據(jù)在云計算環(huán)境下的提取作了嘗試性研究。該研究成果可以很方便地應(yīng)用于其它海洋數(shù)據(jù)的提取和處理,為課題所需的其它基礎(chǔ)數(shù)據(jù)的獲取和分析打下了堅(jiān)實(shí)基礎(chǔ)。
1技術(shù)背景
美國NOAA網(wǎng)站數(shù)據(jù)庫保存了全球海洋鹽度數(shù)據(jù),用戶可以通過設(shè)定經(jīng)緯度、日期、測量值類型(例如:風(fēng)力,溫度,鹽度等)、下載數(shù)據(jù)文件格式等不同的查詢參數(shù)來獲取不同地區(qū)、不同類型的數(shù)據(jù),并通過FTP服務(wù)供用戶下載。
1.1數(shù)據(jù)提取
因本課題主要對北極地區(qū)生態(tài)系統(tǒng)進(jìn)行研究,所以我們只需提取位于經(jīng)度為65°N -85°N、緯度為20°W -10°E之間的鹽度數(shù)據(jù)。由于鹽度數(shù)據(jù)量非常龐大,為方便數(shù)據(jù)處理,我們以5度為一個經(jīng)度單位,分4次依次提取65°N-70°N,70°N-75°N,75°N-80°N,80°N-85°N之間的數(shù)據(jù)。
1.2數(shù)據(jù)分析
對下載的數(shù)據(jù)初步分析后發(fā)現(xiàn),不同區(qū)域的數(shù)據(jù)量各不相同,同一區(qū)域數(shù)據(jù)還具有多種數(shù)據(jù)格式,不同格式數(shù)據(jù)文件的數(shù)據(jù)量也不一樣,有的只有幾萬條記錄,而有的多達(dá)幾十萬條記錄??紤]到數(shù)據(jù)的精確性,在每個區(qū)域中我們選擇數(shù)據(jù)量最大的數(shù)據(jù)文件進(jìn)行數(shù)據(jù)分析和統(tǒng)計。原始的數(shù)據(jù)文件格式如圖1所示。
圖1 原始數(shù)據(jù)文件格式
雖然不同格式數(shù)據(jù)文件中數(shù)據(jù)量各不相同,但其數(shù)據(jù)格式基本與圖1類似。每個鹽度數(shù)據(jù)都以“#------”開始,以“END OF VARIABLES SECTION”和“#------”結(jié)束。每個數(shù)據(jù)都包含有經(jīng)緯度、日期、海水深度、鹽度等信息。
1.3云計算
云計算是信息平臺和服務(wù)的一種業(yè)務(wù)模式, 是通過網(wǎng)絡(luò)統(tǒng)一組織和靈活調(diào)用各種ICT 資源,實(shí)現(xiàn)大規(guī)模計算的信息處理方式[8]。其所特有的按需付費(fèi)、高可用性、高可靠性和高可擴(kuò)展性等特點(diǎn)使其逐漸成為繼水、電、氣及通信技術(shù)之后的第五大公共平臺,成為一個戰(zhàn)略性新興產(chǎn)業(yè)[9],是一種面向未來的新的計算模式[10-12]。與傳統(tǒng)的分布式計算相比,其具有:可以根據(jù)計算規(guī)模的大小動態(tài)租用云計算資源,并能實(shí)現(xiàn)分布式環(huán)境的快速部署和復(fù)制;可以根據(jù)計算時間實(shí)現(xiàn)按需付費(fèi);避免用戶購買昂貴的硬件設(shè)施,極大降低計算成本,提升計算效率等多種優(yōu)勢。
由于我們在數(shù)據(jù)提取過程中獲取了海量的鹽度數(shù)據(jù),為提升數(shù)據(jù)處理效率、降低數(shù)據(jù)處理成本,同時避免自己搭建分布式計算環(huán)境的麻煩,我們嘗試?yán)梦④汚zure公有云計算平臺來實(shí)現(xiàn)對鹽度數(shù)據(jù)的處理,并對其進(jìn)行分析和評估,為后續(xù)工作中需要提取和處理其它類型的海量數(shù)據(jù)積累經(jīng)驗(yàn)。
2技術(shù)背景
2.1數(shù)據(jù)提取格式
根據(jù)鹽度數(shù)據(jù)研究的實(shí)際要求,需要對圖1中的數(shù)據(jù)進(jìn)行分析和提取,形成如表1所示的規(guī)整鹽度數(shù)據(jù)。其中,經(jīng)度和緯度字段需通過四舍五入操作轉(zhuǎn)換成整數(shù)。
表1 鹽度數(shù)據(jù)主要字段
2.2數(shù)據(jù)提取難點(diǎn)
由于原始鹽度數(shù)據(jù)格式的復(fù)雜性,生成如表1所示的格式規(guī)整的鹽度數(shù)據(jù)有以下幾個難點(diǎn)。
(1) 數(shù)據(jù)格式不規(guī)范:雖然大部分鹽度數(shù)據(jù)格式和字段數(shù)量都相同,但有少數(shù)鹽度數(shù)據(jù)與其他正常鹽度數(shù)據(jù)相比會多幾個或少幾個字段,有的甚至只有測量時間和地點(diǎn),卻沒有相應(yīng)鹽度數(shù)據(jù)。由于鹽度數(shù)據(jù)量巨大,因此無法逐一人工排查和刪除非規(guī)范鹽度數(shù)據(jù),這為數(shù)據(jù)歸并算法的設(shè)計帶來了很大挑戰(zhàn)。
(2) 各測量點(diǎn)的隨機(jī)性:原始數(shù)據(jù)中,各測量點(diǎn)經(jīng)緯度坐標(biāo)具有很大隨機(jī)性,有的經(jīng)緯度坐標(biāo)相隔較遠(yuǎn),通過四舍五入取整后可以歸類到不同的經(jīng)緯度坐標(biāo)。有的經(jīng)緯度坐標(biāo)相互間靠得非常近,通過四舍五入取整后,需要?dú)w類到同一個經(jīng)緯度坐標(biāo),這就需要對這些鹽度數(shù)據(jù)進(jìn)行合并后求其平均值。
(3) 測量深度的隨機(jī)性:有的測量點(diǎn)以1米為深度間隔,同一個測量點(diǎn)記錄了數(shù)千個不同海水深度的鹽度數(shù)據(jù);有的測量點(diǎn)以幾十米至幾百米的深度為間隔,同一個測量點(diǎn)只記錄少量的不同海水深度的鹽度數(shù)據(jù);還有的測量點(diǎn)只記錄海水深度,卻沒有記錄相應(yīng)的鹽度數(shù)據(jù)。這為數(shù)據(jù)按海水深度歸并成表1所示的5個不同深度的鹽度數(shù)據(jù)帶來了困難。
(4) 測量時間的隨機(jī)性:有的測量點(diǎn)一個月內(nèi)進(jìn)行了多次測量,有的測量點(diǎn)上可能只測量了很少的幾次甚至沒有測量。同一個測量點(diǎn)上,在不同的時間段內(nèi),其測量的次數(shù)也具有隨機(jī)性和不確定性,這為數(shù)據(jù)按時間維度進(jìn)行歸并帶來了困難。
(5) 鹽度數(shù)據(jù)量巨大:由于每個測量點(diǎn)上都可能有數(shù)千條不同深度的鹽度數(shù)據(jù),因此整個區(qū)域的數(shù)據(jù)量非常巨大,即使把北極的格陵蘭海地區(qū)分為4個區(qū)域分別下載原始的鹽度數(shù)據(jù),每個區(qū)域的鹽度數(shù)據(jù)的CSV文件都有幾十MB大小,近百萬條記錄。這就對數(shù)據(jù)處理算法提出了很高的要求,需要設(shè)計出能快速處理海量鹽度數(shù)據(jù)的算法和處理程序。
2.3數(shù)據(jù)提取算法
為提高數(shù)據(jù)處理效率,降低算法復(fù)雜性,本文設(shè)計了分步數(shù)據(jù)歸并算法[6]。與常規(guī)的數(shù)據(jù)歸并算法一般先要對數(shù)據(jù)進(jìn)行分塊和排序,然后再進(jìn)行歸并[7]不同,本文的歸并是對現(xiàn)有的數(shù)據(jù)進(jìn)行計算并根據(jù)計算的結(jié)果對數(shù)據(jù)進(jìn)行合并操作,即把一個大的數(shù)據(jù)集經(jīng)過多次歸并運(yùn)算后得到一個小的結(jié)果集。基本步驟如下:
(1) 按測量深度進(jìn)行數(shù)據(jù)歸并:把每個測量點(diǎn)上不同深度的鹽度數(shù)據(jù)歸并為“小于50米”、“50至100米”、“100至150米”、“150至200米”、“大于200米”共5個不同深度鹽度數(shù)據(jù)。
(2) 按測量點(diǎn)進(jìn)行數(shù)據(jù)歸并:對歸并后的鹽度數(shù)據(jù)按經(jīng)緯度和測量時間排序,然后再對各測量點(diǎn)的經(jīng)緯度進(jìn)行四舍五入取整操作,并對歸類到相同經(jīng)緯度坐標(biāo)上同一天的鹽度數(shù)據(jù)進(jìn)行合并。
(3) 按測量時間進(jìn)行數(shù)據(jù)歸并:對二次歸并后鹽度數(shù)據(jù)按時間排序,并按照系統(tǒng)設(shè)定的時間間隔把小于間隔時間并且經(jīng)緯度相同的鹽度數(shù)據(jù)再次歸并。
2.3.1按測量深度進(jìn)行數(shù)據(jù)歸并的算法
對圖1所示的原始鹽度數(shù)據(jù)的格式進(jìn)行分析發(fā)現(xiàn)鹽度數(shù)據(jù)格式有以下幾個特點(diǎn):
(1) 測量點(diǎn)的數(shù)據(jù)以“#---”開始,以“#---”結(jié)束。其中,鹽度數(shù)據(jù)以“Prof-Flag”標(biāo)識開始,以“END OF VARIABLES SECTION”結(jié)束。
(2) 每個測量點(diǎn)都有經(jīng)度、維度、測量年份、測量月份、測量日期等幾個字段信息。但因數(shù)據(jù)格式及每個測量點(diǎn)上數(shù)據(jù)量不固定,其在數(shù)據(jù)記錄中的位置也不盡相同。
(3) 個別鹽度數(shù)據(jù)只記錄了海水深度,但卻無對應(yīng)的鹽度數(shù)據(jù)。
根據(jù)以上鹽度數(shù)據(jù)的特點(diǎn),本文設(shè)計了按測量深度進(jìn)行數(shù)據(jù)歸并的算法,算法流程如圖2所示。
圖2 按測量深度的數(shù)據(jù)歸并算法流程
算法執(zhí)行步驟如下:
(1) 打開數(shù)據(jù)文件設(shè)定行號row=1;
(2) 獲取第row行,第1列元素rx=Cells[row,1];
(3) 若rx==null,則為最后一行記錄,算法運(yùn)行結(jié)束,否則轉(zhuǎn)步驟(4);
(4) r1= Cells[row,1],若r1= =“prof-flag”,則該測量點(diǎn)有鹽度數(shù)據(jù),轉(zhuǎn)步驟(5),否則該測量點(diǎn)無鹽度數(shù)據(jù),轉(zhuǎn)步驟(10);
(5) 從第row行開始,向上搜索日期信息“Day”、“Month”、“Year”以及經(jīng)緯度“Longitude”和“Latitude”,并保存;
(6) 從row+1行開始依次獲取不同海水深度的鹽度數(shù)據(jù)r=Cells[row,1];
(7) 若r!=“END OF VARIABLES SECTION”,則獲取該鹽度數(shù)據(jù)所對應(yīng)的海水深度,并按表1所示,分別對5個鹽度數(shù)據(jù)進(jìn)行匯總統(tǒng)計,否則直接轉(zhuǎn)入步驟(9);
(8) 獲取下一個鹽度數(shù)據(jù)r=Cells[++row,1],轉(zhuǎn)步驟(7);
(9) 保存該測量點(diǎn)經(jīng)緯度、時間及各海水深度的平均鹽度數(shù)據(jù)信息;
(10) rx=Cells[++row,1],轉(zhuǎn)步驟(3);
以上算法流程可以看出,該算法從數(shù)據(jù)文件的第一行開始,按序進(jìn)行數(shù)據(jù)處理,整個算法只用了一個單層循環(huán)語句,時間復(fù)雜度為O(n)。該時間復(fù)雜度也是對數(shù)據(jù)進(jìn)行批量處理的最優(yōu)時間復(fù)雜度,因此該算法具有很好的處理性能。
2.3.2按測量點(diǎn)進(jìn)行數(shù)據(jù)歸并的算法
按測量深度歸并后,以各測量點(diǎn)及測量時間為單位形成了規(guī)整的數(shù)據(jù)記錄。由于各測量點(diǎn)經(jīng)緯度坐標(biāo)具有隨機(jī)性,這就需要對通過四舍五入取整歸類到同一個整數(shù)經(jīng)緯度坐標(biāo)上的鹽度數(shù)據(jù)再次進(jìn)行合并,并求他們的平均值。按測量點(diǎn)進(jìn)行數(shù)據(jù)歸并的算法流程如圖3所示。
圖3 按測量點(diǎn)的數(shù)據(jù)歸并算法流程
其算法基本執(zhí)行步驟如下:
(1) 打開按測量深度進(jìn)行歸并后的鹽度數(shù)據(jù)文件;按經(jīng)度和維度進(jìn)行排序;
(2) 設(shè)row=1;取第row行第一列元素r=Cells[row,1];
(3) 若r等于空,則表示已處理完全部數(shù)據(jù),程序結(jié)束,否則進(jìn)入步驟(4);
(4) 對當(dāng)前行的經(jīng)緯度進(jìn)行四舍五入取整,并設(shè)定臨時變量tmpI=row;
(5) tmpI++, 取下一行數(shù)據(jù)的經(jīng)緯度并進(jìn)行四舍五入取整;
(6) 若兩個經(jīng)緯度不完全相同,則無需合并,轉(zhuǎn)入步驟(9),否則轉(zhuǎn)入步驟(7);
(7) 對鹽度數(shù)據(jù)進(jìn)行合并運(yùn)算;
(8) 轉(zhuǎn)入步驟(5);
(9) row=tmpI; r=Cells[row,1]轉(zhuǎn)入步驟(3)。
從上面算法流程可以看出,該算法的時間復(fù)雜度也為O(n)。按測量時間進(jìn)行數(shù)據(jù)歸并的算法與以上兩個算法類似,這里不在贅述。通過分析不難得到,其算法時間復(fù)雜度也為O(n)。
3系統(tǒng)實(shí)現(xiàn)
3.1系統(tǒng)架構(gòu)
整個系統(tǒng)由數(shù)據(jù)庫服務(wù)器、文件及配置服務(wù)器、主計算節(jié)點(diǎn)和若干個子計算節(jié)點(diǎn)組成,其架構(gòu)如圖4所示。
圖4 系統(tǒng)架構(gòu)
(1) 文件及配置服務(wù)器:保存原始鹽度數(shù)據(jù)文件及系統(tǒng)配置信息,所有計算子節(jié)點(diǎn)都根據(jù)本服務(wù)器系統(tǒng)配置信息獲取相應(yīng)鹽度數(shù)據(jù)文件并進(jìn)行計算和處理。
(2) 數(shù)據(jù)庫服務(wù)器:所有計算節(jié)點(diǎn)把從原始鹽度數(shù)據(jù)文件獲取的基礎(chǔ)數(shù)據(jù)保存到數(shù)據(jù)庫服務(wù)器中,方便將來進(jìn)行其它形式處理時無需再重復(fù)訪問原始數(shù)據(jù)文件。
(3) 子計算節(jié)點(diǎn):從文件及配置服務(wù)器上下載相應(yīng)的鹽度數(shù)據(jù)文件,并自動維護(hù)和修改相應(yīng)配置信息,根據(jù)2.3節(jié)的數(shù)據(jù)歸并算法完成對該鹽度數(shù)據(jù)文件的處理和歸并。
(4) 主計算節(jié)點(diǎn):用于接收從各計算子節(jié)點(diǎn)處理完畢的鹽度數(shù)據(jù),并完成最后的數(shù)據(jù)排序和合并。
系統(tǒng)部署和運(yùn)行流程如下:
(1) 在Windows Azure中創(chuàng)建四臺虛擬機(jī)分別作為文件和配置服務(wù)器、數(shù)據(jù)庫服務(wù)器、主計算節(jié)點(diǎn)和一個子計算節(jié)點(diǎn)。
(2) 所有的原始數(shù)據(jù)文件保存到文件和配置服務(wù)器,并在配置文件中設(shè)置所有文件的保存路徑、文件名、是否已被處理等信息。
(3) 把數(shù)據(jù)歸并算法程序部署到子計算節(jié)點(diǎn),并為其設(shè)置文件和配置服務(wù)器、數(shù)據(jù)庫服務(wù)器和主計算節(jié)點(diǎn)的地址信息,使子計算節(jié)點(diǎn)能自動獲取、處理、保存和上傳數(shù)據(jù)。
(4) 用虛擬機(jī)復(fù)制技術(shù)來快速部署多個子計算節(jié)點(diǎn)。
(5) 子計算節(jié)點(diǎn)被部署和運(yùn)行后,自動訪問文件和配置服務(wù)器,并下載還未被處理的原始鹽度數(shù)據(jù)文件,讀取數(shù)據(jù),保存到數(shù)據(jù)庫,并進(jìn)行歸并處理。
(6) 子計算節(jié)點(diǎn)的數(shù)據(jù)處理完后,自動提交到主計算節(jié)點(diǎn),并再次訪問文件和配置服務(wù)器獲取下一份還未處理的數(shù)據(jù)文件。
(7) 主計算節(jié)點(diǎn)每次接收到子計算節(jié)點(diǎn)的數(shù)據(jù)后驗(yàn)證接收數(shù)據(jù)的次數(shù)和文件和配置服務(wù)器中的原始文件數(shù)是否相等,若相等則表示已經(jīng)接收到所有的數(shù)據(jù),則開始進(jìn)行最后的排序和歸并,并輸出結(jié)果,若不相等則繼續(xù)等待。
整個系統(tǒng)架構(gòu)可以根據(jù)實(shí)際數(shù)據(jù)量的大小來動態(tài)調(diào)整子計算節(jié)點(diǎn)的個數(shù),可以把原始數(shù)據(jù)劃分成多個數(shù)據(jù)文件,分發(fā)給多個子計算節(jié)點(diǎn)同時計算。
3.2系統(tǒng)實(shí)現(xiàn)
算法程序基于微軟.NET Framework 4.5平臺,采用C#語言開發(fā)。實(shí)驗(yàn)運(yùn)行環(huán)境為:Windows Azure公有云,虛擬機(jī)為AMD雙核,2GB內(nèi)存,Windows Server 2012 64位操作系統(tǒng),Sql Server 2012數(shù)據(jù)庫。整個系統(tǒng)共由6個虛擬機(jī)構(gòu)成,分別為1個主計算節(jié)點(diǎn)、3個子計算節(jié)點(diǎn)、一個數(shù)據(jù)庫服務(wù)器和一個文件及配置服務(wù)器。
4實(shí)驗(yàn)結(jié)果與分析
4.1算法效率分析
以對經(jīng)度65°N -70°N,維度20°W -10°E之間的鹽度數(shù)據(jù)進(jìn)行處理為例。我們把這些數(shù)據(jù)大致均分到6個單獨(dú)的數(shù)據(jù)文件,分別采用1個子計算節(jié)點(diǎn)、2個子計算節(jié)點(diǎn)和3個子計算節(jié)點(diǎn)來重復(fù)處理這些數(shù)據(jù),實(shí)驗(yàn)發(fā)現(xiàn)用2個子計算節(jié)點(diǎn)比1個子計算節(jié)點(diǎn)節(jié)約了大約45%的時間,3個子計算節(jié)點(diǎn)比1個子計算節(jié)點(diǎn)節(jié)約了大約62%的時間。以上可以看出,利用云計算技術(shù),我們可以快速部署相應(yīng)虛擬機(jī)來實(shí)現(xiàn)分布式計算,有效提高計算效率、降低計算成本,同時又避免了自己搭建分布式計算環(huán)境的麻煩。
該區(qū)域原始鹽度數(shù)據(jù)量為1 002 773條記錄,首先按測量深度進(jìn)行歸并后得到11 250條有效數(shù)據(jù),再經(jīng)按測量點(diǎn)進(jìn)行鹽度數(shù)據(jù)歸并運(yùn)算后得到1082條記錄,最后按測量時間以月為單位歸并后得到513條有效數(shù)據(jù)。容易看出,算法第一次執(zhí)行歸并時,數(shù)據(jù)量從百萬級別降低到萬的級別,執(zhí)行第二次歸并后從萬的級別降低到千的級別,最后降低到百的級別。而每次歸并算法的時間復(fù)雜度都為O(n),因此整個算法的時間復(fù)雜度主要取決于第一次的數(shù)據(jù)歸并算法,即為O(n)。
4.2鹽度在北極格陵蘭海地區(qū)的分布
我們提取了2003-2012年北極格陵蘭海地區(qū)65°N -85°N、20°W -10°E的全部鹽度數(shù)據(jù)。由于北極很大一部分時間是處于極夜,所以我們注重于從每年的第72天到第272天(3~9月)的數(shù)據(jù)。最后得出所研究區(qū)域10年內(nèi)的數(shù)據(jù)分布情況。
圖5是研究區(qū)域鹽度在10年內(nèi)的年平均值。圖6是研究區(qū)域在10年內(nèi)的月平均值,這里都是取的1200米的深度平均。從圖5可以看出,2003年鹽度最低,其次就是2006年的鹽度相對比較低。從圖6可以看出,鹽度在3月到5月整體穩(wěn)定,但在6月出現(xiàn)明顯下降,之后從7月到9月持續(xù)增長,上升趨勢明顯。 圖7給出了鹽度在研究區(qū)域10年內(nèi)的平均分布三維圖,從圖中可以看出,鹽度整體處于相對穩(wěn)定的狀態(tài), 起伏幅度不大。
圖5 鹽度在研究區(qū)域的10年的年平均值
圖6 鹽度在研究區(qū)域的10年的月平均值
圖7 鹽度在研究區(qū)域的整體平均值分布
通過對原始的海量鹽度數(shù)據(jù)進(jìn)行歸并計算后,我們以非常直觀的圖形,描繪出了10年來格陵蘭海地區(qū)的海水鹽度的變化,為后續(xù)研究提供有力的數(shù)據(jù)支持。
5結(jié)語
海洋鹽度數(shù)據(jù)量非常龐大,而受制于北極氣候條件和現(xiàn)有科考條件等限制,北極地區(qū)的鹽度數(shù)據(jù)無論是在時間跨度、經(jīng)緯度特征還是數(shù)據(jù)采樣分布等屬性上都不規(guī)整,這為數(shù)據(jù)的提取帶來了很大難度。本文對北極海洋鹽度數(shù)據(jù)的提取只是一個初步的嘗試,但為溫度、浮游生物等后續(xù)數(shù)據(jù)的提取有重要的借鑒意義。對于特別巨大的數(shù)據(jù),可以利用本文的方法把原始數(shù)據(jù)劃分為多個數(shù)據(jù)集,并利用云計算技術(shù)同時進(jìn)行分布式歸并運(yùn)算,最后把歸并后的數(shù)據(jù)再集中到一起進(jìn)行總的歸并后得到最終結(jié)果。云計算按需付費(fèi)、高可擴(kuò)充性、廉價等特點(diǎn)尤其適合用于開展地理和環(huán)境方面大規(guī)模的科學(xué)計算和研究,不但可以大大提升數(shù)據(jù)處理效率,還有效避免了自己建立傳統(tǒng)的分布式計算環(huán)境的復(fù)雜性、降低計算成本。本文的研究成果為后續(xù)海洋溫度數(shù)據(jù)和海洋浮游植物數(shù)據(jù)的提取以及三者之間關(guān)系的研究打下了良好的基礎(chǔ)。
參考文獻(xiàn)
[1] 陳建,張韌,王輝贊,等.Matlab對基于二進(jìn)制-XML混合格式的SMOS鹽度數(shù)據(jù)的提取方法與實(shí)現(xiàn)[J].海洋通報,2011(6):692-696.
[2] 朱江,周廣慶,閆長香,等.一個三維變分海洋資料同化系統(tǒng)的設(shè)計和初步應(yīng)用[J].地球科學(xué)(D輯),2007,37(2):261-271.
[3] Stroeve J,Holland M M,Meir W,et al.Arctic sea ice decline: faster than forecast[J].Geophysical Research Letters,2007,63(1):1-11.
[4] Qu B,Gabric A J,Matrai P A.The Satellite-Derived Distribution of Chlorophyll-a and its Relation to Ice Cover,Radiation and Sea Surface Temperature in the Barents Sea[J].Polar Biology,2006,29:196-210.
[5] 王穎,李肯立,李浪,等.縱橫多路并行歸并算法[J].計算機(jī)研究與發(fā)展,2006,43(12):2180-2186.
[6] 范時平,汪林林.一種基于數(shù)據(jù)分塊的快速原地歸并算法[J].計算機(jī)科學(xué),2004,31(8):204-208.
[7] 姜忠華,徐文麗,劉家文,等.智能歸并排序[J].電子設(shè)計工程,2011,19(21):53-55.
[8] 工業(yè)與信息化部電信研究院.云計算白皮書[R].2012.
[9] 李國杰.應(yīng)用為先,統(tǒng)籌規(guī)劃——關(guān)于云計算發(fā)展策略的思考[M]//中國信息化形勢分析與預(yù)測.社會科學(xué)文獻(xiàn)出版社,2012:107-120.
[10] Antonio,Corradi,Mario,et al.VM consolidation:A real case based on OpenStack Cloud[J].Future Generation Computer Systems,2014,36:118-127.
[11] Amazon EC2 Instances-Cluster Networking[EB/OL].http://aws.amazon.com/ec 2/instance-types.
[12] Armbrust M,Fox A,Griffith R,et al.A view of cloud computing[J].Communications of the ACM,2010,53:50-58.
收稿日期:2014-12-08。國家自然科學(xué)基金項(xiàng)目(41276097,4130 1514);江西省高性能重點(diǎn)實(shí)驗(yàn)室項(xiàng)目(PKLHPC1303)。朱曉輝,副教授,主研領(lǐng)域:計算機(jī)軟件與理論。瞿波,副教授。任紅健,副教授。
中圖分類號TP391
文獻(xiàn)標(biāo)識碼A
DOI:10.3969/j.issn.1000-386x.2016.07.021
RESEARCH ON SALINITY DATA EXTRACTION ALGORITHM FOR GREENLAND SEA IN CLOUD COMPUTING ENVIRONMENT
Zhu Xiaohui1Qu Bo2*Ren Hongjian1
1(SchoolofComputerScienceandTechnology,NantongUniversity,Nantong226019,Jiangsu,China)2(SchoolofScience,NantongUniversity,Nantong226019,Jiangsu,China)
AbstractOcean salinity has close relationship with ocean temperature and marine phytoplankton, and is one of the important parameters in the study of the influence of ocean circulation and ocean on climate. This paper discusses in detail the extraction of salinity data, of which the world ocean information database of American National Oceanographic Data Centre (NOAA) is used as the data resource, and the area of the Greenland Sea in Arctic within 20°W - 10°E, 65°N - 85°N is taken as the studying region. We propose a multi-steps merging algorithm for salinity data with a time complexity of O(n), it utilises the characteristics of Microsoft Azure public cloud that pay-on-demand and dynamic expansion to capture the cheap and convenient computation resources, and greatly improves computation efficiency. The algorithm has strong scalability and is able to dynamically adjust the required computation resources according to actual computation demand, therefore can meet the demands of different computation sizes. Experimental result shows that this algorithm can fast analyse and merge massive original salinity data and creates the formatted salinity data in 3 dimensions: longitude and latitude, time and salinity.
KeywordsSalinityGreenland seaLongitude and latitude coordinatesData extractionMerging algorithmCloud computing