馬金鋒,饒凱鋒,李若男,2,張京,鄭華,2
1.中國(guó)科學(xué)院生態(tài)環(huán)境研究中心城市與區(qū)域生態(tài)國(guó)家重點(diǎn)實(shí)驗(yàn)室,北京 100085;2.中國(guó)科學(xué)院大學(xué),北京 100049
模型是集成和綜合不同觀測(cè)數(shù)據(jù)、理解復(fù)雜的交互作用和測(cè)試假設(shè),以及模擬歷史、預(yù)測(cè)未來(lái)系統(tǒng)發(fā)展軌跡和決策如何應(yīng)對(duì)未來(lái)趨勢(shì)的重要工具[1]。根據(jù)產(chǎn)生的來(lái)源,模型大體可被分為數(shù)據(jù)驅(qū)動(dòng)和模型驅(qū)動(dòng)兩類,數(shù)據(jù)驅(qū)動(dòng)模型(機(jī)理模型)基于關(guān)聯(lián)關(guān)系構(gòu)建,模型驅(qū)動(dòng)模型(機(jī)理模型)基于因果關(guān)系構(gòu)建。數(shù)據(jù)驅(qū)動(dòng)模型是大數(shù)據(jù)價(jià)值體現(xiàn)鏈條中的重要環(huán)節(jié),大數(shù)據(jù)的核心價(jià)值在于尋求或構(gòu)建合適的模型,利用模型表達(dá)事物內(nèi)在變化規(guī)律的過(guò)程。在大數(shù)據(jù)的原生定義中,基于事物之間的關(guān)聯(lián)關(guān)系尋求和構(gòu)建模型,模型構(gòu)建的成敗十分依賴數(shù)據(jù)的數(shù)量和質(zhì)量。此外,由于數(shù)據(jù)驅(qū)動(dòng)模型是基于關(guān)聯(lián)關(guān)系構(gòu)建的,其模擬結(jié)果無(wú)法給予合理解釋,導(dǎo)致其認(rèn)可度不高,因此數(shù)據(jù)驅(qū)動(dòng)模型通常也被稱為“黑箱模型”[2]。目前在水環(huán)境領(lǐng)域中,由于可用數(shù)據(jù)數(shù)量少、數(shù)據(jù)質(zhì)量低等原因,基于大數(shù)據(jù)技術(shù)成功構(gòu)建的數(shù)據(jù)驅(qū)動(dòng)模型案例并不多,總體上處于探索和發(fā)展階段。相比數(shù)據(jù)驅(qū)動(dòng)模型,水環(huán)境領(lǐng)域中的機(jī)理模型相對(duì)成熟和完善,得到廣泛的推廣和應(yīng)用。然而,在大數(shù)據(jù)環(huán)境下,如何從新的視角審視已成熟的機(jī)理模型,探索其在大數(shù)據(jù)技術(shù)背景下的價(jià)值發(fā)揮是一個(gè)值得探討的熱點(diǎn)問(wèn)題。
顧名思義,機(jī)理模型從因果關(guān)系出發(fā)尋找規(guī)律,是真實(shí)水環(huán)境系統(tǒng)的抽象和概化。水環(huán)境機(jī)理模型是對(duì)水體中污染物隨空間和時(shí)間遷移的轉(zhuǎn)化規(guī)律的描述,是一個(gè)描述物質(zhì)在水環(huán)境中的混合、遷移過(guò)程的數(shù)學(xué)方程,即描述水體中污染物與時(shí)間、空間的定量關(guān)系[3]?;谖⒎址匠痰乃h(huán)境機(jī)理模型在過(guò)去的數(shù)十年間取得了極大發(fā)展,已經(jīng)成為水資源及環(huán)境管理決策的有力工具。相對(duì)于數(shù)據(jù)驅(qū)動(dòng)模型而言,機(jī)理模型除了具備模擬結(jié)果可解釋、廣泛認(rèn)同和成熟應(yīng)用的特點(diǎn),還可以通過(guò)開源或者商業(yè)的方式獲取,即模型的可獲得性,這是機(jī)理模型區(qū)別于數(shù)據(jù)驅(qū)動(dòng)模型的一個(gè)明顯特點(diǎn)。數(shù)據(jù)驅(qū)動(dòng)模型需要耗費(fèi)大量計(jì)算資源來(lái)訓(xùn)練和構(gòu)建,其核心在于如何創(chuàng)建模型;機(jī)理模型經(jīng)過(guò)幾十年的發(fā)展,已相對(duì)成熟和完善,其核心在于如何應(yīng)用模型。相對(duì)于數(shù)據(jù)驅(qū)動(dòng)模型而言,機(jī)理模型的可獲得性、模擬結(jié)果的可解釋性、科學(xué)界廣泛的認(rèn)同和實(shí)際中已有的成熟應(yīng)用等特點(diǎn)共同決定了深度挖掘機(jī)理模型的應(yīng)用潛力和充分發(fā)揮其應(yīng)用價(jià)值是未來(lái)研究的重點(diǎn)方向。
在實(shí)際應(yīng)用過(guò)程中,機(jī)理模型普遍面臨大規(guī)模情景運(yùn)算、模擬結(jié)果海量存儲(chǔ)和高效分析的難題,這極大地限制了模型的推廣和應(yīng)用,因此,迫切需要探索新的技術(shù)和方法來(lái)解決這些難題。大數(shù)據(jù)技術(shù)在解決上述難題方面具有潛在優(yōu)勢(shì),研究水環(huán)境模型融合大數(shù)據(jù)技術(shù)能否解決和如何解決上述難題是目前面臨的一個(gè)挑戰(zhàn)。本文以水環(huán)境模型為例,分析了該模型在實(shí)際應(yīng)用中面臨的瓶頸;針對(duì)這些瓶頸,分別從規(guī)模計(jì)算、規(guī)模存儲(chǔ)和應(yīng)用分析3個(gè)角度,提出了大數(shù)據(jù)技術(shù)與機(jī)理模型融合的技術(shù)思路,闡述了水環(huán)境模型與大數(shù)據(jù)技術(shù)融合的實(shí)現(xiàn)流程,以SWAT(soil and water assessment tool)模型率定為應(yīng)用案例證明了框架的可行性;最后討論了水環(huán)境模型在大數(shù)據(jù)背景下未來(lái)的研究方向。
眾所周知,基礎(chǔ)數(shù)據(jù)難以獲取以及模型率定、模型驗(yàn)證和場(chǎng)景分析中的高負(fù)荷計(jì)算是限制模型成功應(yīng)用的主要瓶頸,如圖1所示。水環(huán)境模型構(gòu)建要求有足夠的基礎(chǔ)數(shù)據(jù)用于建模、校準(zhǔn)和驗(yàn)證。基礎(chǔ)數(shù)據(jù)(如地形、風(fēng)速、外部污染負(fù)荷、流入、流出和開邊界條件等)主要作為模型輸入,也可為校準(zhǔn)模型參數(shù)提供依據(jù),評(píng)估模型是否能充分描述水體特點(diǎn)。模型需要的數(shù)據(jù)應(yīng)盡量準(zhǔn)確,數(shù)據(jù)的局限性會(huì)限制模型的應(yīng)用,數(shù)據(jù)的質(zhì)量和數(shù)量在很大程度上決定了模型應(yīng)用的質(zhì)量。實(shí)際上,能夠獲取的數(shù)據(jù)往往很少,精準(zhǔn)的長(zhǎng)期監(jiān)測(cè)是解決數(shù)據(jù)匱乏的主要途徑。此外,理論和經(jīng)驗(yàn)方法也經(jīng)常用于彌補(bǔ)數(shù)據(jù)的欠缺[4]。
圖1 水環(huán)境模型應(yīng)用過(guò)程中面臨的瓶頸及潛在解決方案
模型的核心價(jià)值在于對(duì)現(xiàn)實(shí)世界歷史的重現(xiàn)、對(duì)未來(lái)的預(yù)測(cè)和對(duì)未來(lái)優(yōu)化決策的響應(yīng)。模型的率定反映了對(duì)歷史的還原能力。由于水環(huán)境數(shù)值模型是對(duì)真實(shí)水環(huán)境系統(tǒng)的抽象和概化,模型的參數(shù)、輸入數(shù)據(jù)和模型結(jié)構(gòu)均存在不確定性。為了更加客觀地反映自然水體中的一系列生化、生物反應(yīng)過(guò)程,基于機(jī)理的數(shù)值模型在開發(fā)過(guò)程中不可避免地會(huì)引入大量參數(shù)。受監(jiān)測(cè)資料和對(duì)復(fù)雜生態(tài)過(guò)程認(rèn)知的限制,模型參數(shù)的率定往往存在較大困難,使得模型率定成為一個(gè)長(zhǎng)期的研究方向[5-6]。與此同時(shí),大量的應(yīng)用不斷促進(jìn)水環(huán)境模型的發(fā)展,模型變得日益復(fù)雜,需要考慮和包含更多的反應(yīng)過(guò)程,增大了模型率定的難度。模型率定是一個(gè)嚴(yán)重依賴高性能計(jì)算的迭代過(guò)程,不同參數(shù)組合需要執(zhí)行不同的獨(dú)立計(jì)算。為了對(duì)所有參數(shù)組合場(chǎng)景進(jìn)行統(tǒng)一分析處理,需要對(duì)所有獨(dú)立計(jì)算的結(jié)果進(jìn)行統(tǒng)一存儲(chǔ)和分析。參數(shù)率定、模型驗(yàn)證以及情景分析等都依賴于大規(guī)模計(jì)算的支持[7]。在目前的實(shí)際應(yīng)用過(guò)程中,由于計(jì)算規(guī)模大,單機(jī)多處理器模式和集群并行系統(tǒng)[8]并不能滿足上述需求,因此需要探索新的應(yīng)用模式。大數(shù)據(jù)技術(shù)在支撐規(guī)模運(yùn)算、海量存儲(chǔ)和高效分析方面具有顯著優(yōu)勢(shì),有望解決上述模型應(yīng)用中面臨的困境。
水環(huán)境模型與大數(shù)據(jù)技術(shù)融合體現(xiàn)在分布式計(jì)算、存儲(chǔ)和分析3個(gè)方面,如圖2所示。針對(duì)分布式計(jì)算,機(jī)理模型與大數(shù)據(jù)融合體現(xiàn)在模型如何適應(yīng)分布式并行計(jì)算以實(shí)現(xiàn)高性能計(jì)算。谷歌公司在2004年公開的MapReduce分布式并行計(jì)算技術(shù)是新型分布式計(jì)算技術(shù)的代表。典型的MapReduce系統(tǒng)由廉價(jià)的通用服務(wù)器構(gòu)成,通過(guò)添加服務(wù)器節(jié)點(diǎn)可線性擴(kuò)展系統(tǒng)的總處理能力,在成本和可擴(kuò)展性上都有巨大的優(yōu)勢(shì)。造成大數(shù)據(jù)挖掘革命的技術(shù)之一是Hadoop平臺(tái)上的MapReduce編程模型,其用于在對(duì)硬件要求不太高的通用硬件計(jì)算機(jī)上構(gòu)建大型集群,從而運(yùn)行應(yīng)用程序[9]。除了MapReduce,還有其他分布式計(jì)算框架,比如內(nèi)存迭代計(jì)算框架Spark和流式計(jì)算框架Storm等。MapReduce屬于離線式批量計(jì)算框架,鑒于數(shù)值模型具有CPU密集型計(jì)算的特點(diǎn),該模型適合采用MapReduce框架。對(duì)于計(jì)算結(jié)果的交互式查詢分析,則適合采用Spark框架[8]。大數(shù)據(jù)計(jì)算框架與機(jī)理模型融合的核心在于將批量模型算例文件分發(fā)到計(jì)算節(jié)點(diǎn),模型計(jì)算程序定位算例文件所在節(jié)點(diǎn),啟動(dòng)計(jì)算程序執(zhí)行計(jì)算。
圖2 水環(huán)境模型與大數(shù)據(jù)技術(shù)融合框架
針對(duì)模型模擬結(jié)果海量存儲(chǔ),機(jī)理模型與大數(shù)據(jù)融合體現(xiàn)在模型結(jié)果(包括原始結(jié)果和解析結(jié)果)如何實(shí)現(xiàn)高效持久化存儲(chǔ)。在存儲(chǔ)方面,2006年谷歌提出的文件系統(tǒng)GFS以及隨后的Hadoop分布式文件系統(tǒng)(Hadoop distributed file system,HDFS)奠定了大數(shù)據(jù)存儲(chǔ)技術(shù)的基礎(chǔ)。與傳統(tǒng)存儲(chǔ)系統(tǒng)相比,GFS和HDFS將計(jì)算和存儲(chǔ)節(jié)點(diǎn)在物理上結(jié)合在一起,從而避免在數(shù)據(jù)密集計(jì)算中易形成的I/O吞吐量的制約。同時(shí)這類分布式存儲(chǔ)系統(tǒng)的文件系統(tǒng)也采用了分布式架構(gòu),可以達(dá)到較高的并發(fā)訪問(wèn)能力。GFS和HDFS屬于底層的文件存儲(chǔ)模式,為了支持非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ),BigTable和HBase誕生了。其中,HBase是一個(gè)針對(duì)結(jié)構(gòu)化數(shù)據(jù)的可伸縮、高可靠、高性能、分布式和面向列的動(dòng)態(tài)模式數(shù)據(jù)庫(kù)。和傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)不同,HBase采用BigTable的數(shù)據(jù)模型,即增強(qiáng)的稀疏排序映射表(key/value),其中,鍵由行關(guān)鍵字、列關(guān)鍵字和時(shí)間戳構(gòu)成。HBase提供了對(duì)大規(guī)模數(shù)據(jù)的隨機(jī)、實(shí)時(shí)讀寫訪問(wèn),同時(shí)可以使用MapReduce來(lái)處理其保存的數(shù)據(jù),它將數(shù)據(jù)存儲(chǔ)和并行計(jì)算完美地結(jié)合在一起[10]。也就是說(shuō),HDFS為HBase提供了高可靠性的底層存儲(chǔ)支持,MapReduce為HBase提供了高性能的計(jì)算能力。除了HBase,還有其他存儲(chǔ)框架,比如ElasticSearch、Cassandra、Redis、MongDB等。MapReduce和HBase都是Hadoop生態(tài)系統(tǒng)的核心組件,各組件間密切結(jié)合的設(shè)計(jì)原理的一大優(yōu)點(diǎn)是能夠構(gòu)建出無(wú)縫整合的不同處理模型的應(yīng)用[11]。鑒于此,適合采用HBase存儲(chǔ)模擬結(jié)果解析后的結(jié)構(gòu)化數(shù)據(jù)(記錄集)和非結(jié)構(gòu)化數(shù)據(jù)(圖片集)。大數(shù)據(jù)存儲(chǔ)框架與機(jī)理模型融合的核心在于將分布于各個(gè)計(jì)算節(jié)點(diǎn)的模型計(jì)算原始結(jié)果文件和解析后的數(shù)據(jù)記錄并發(fā)寫入持久化存儲(chǔ)設(shè)備。
針對(duì)模型模擬結(jié)果挖掘分析,機(jī)理模型與大數(shù)據(jù)融合體現(xiàn)在對(duì)模型結(jié)果的快速提取及挖掘分析。在數(shù)據(jù)分析方面,首先要求數(shù)據(jù)處理速度足夠快,速度快意味著可以滿足交互式查詢的需求;其次,要求剝離對(duì)集群本身的關(guān)注,不需要關(guān)注如何在分布式系統(tǒng)上編程,也不需要過(guò)多關(guān)注網(wǎng)絡(luò)通信和程序容錯(cuò)性,只需要專注于滿足不同應(yīng)用場(chǎng)景下的需求;最后,要求支持通用的交互式查詢、機(jī)器學(xué)習(xí)、圖計(jì)算等不同運(yùn)算,且能通過(guò)一個(gè)統(tǒng)一的框架支持這些計(jì)算,從而簡(jiǎn)單、低耗地把各種處理流程整合在一起,這樣的組合在實(shí)際的數(shù)據(jù)分析過(guò)程中很有意義,減輕了對(duì)各種分析平臺(tái)分別管理的負(fù)擔(dān)。Spark是滿足上述需求的一個(gè)快速大數(shù)據(jù)分析框架。Spark于2009年誕生于加州大學(xué)伯克利分校RAD實(shí)驗(yàn)室,其一開始就是為交互式查詢和迭代算法設(shè)計(jì)的,同時(shí)支持內(nèi)存式存儲(chǔ)和高效的容錯(cuò)機(jī)制。Spark支持在內(nèi)存中進(jìn)行計(jì)算,因而具有快速的處理速度,支持交互式查詢。Spark包含多個(gè)緊密集成的組件,比如Core(任務(wù)調(diào)度、內(nèi)存管理、錯(cuò)誤恢復(fù)、存儲(chǔ)交互)、SQL(操作結(jié)構(gòu)化數(shù)據(jù))、Streaming(實(shí)時(shí)計(jì)算)、MLib(機(jī)器學(xué)習(xí)算法庫(kù))、GraphX(圖計(jì)算庫(kù))等,各組件間密切結(jié)合,支持各種各樣的應(yīng)用需求。和HBase一樣,Spark也是Hadoop生態(tài)系統(tǒng)中的核心組件之一。鑒于此,適合采用Spark框架對(duì)模擬結(jié)果進(jìn)行進(jìn)一步分析,典型應(yīng)用功能包括交互式查詢、模型參數(shù)敏感性分析、模型率定、模型驗(yàn)證、模型預(yù)測(cè)和應(yīng)用決策。大數(shù)據(jù)分析框架與機(jī)理模型融合的核心在于快速提取分布于多個(gè)存儲(chǔ)節(jié)點(diǎn)上的模擬結(jié)果,組織成物理上分散、邏輯上統(tǒng)一的結(jié)構(gòu)化數(shù)據(jù)格式,依托已有算法庫(kù)進(jìn)行數(shù)據(jù)分析。
下面分別從水環(huán)境模型的規(guī)模計(jì)算、規(guī)模存儲(chǔ)和應(yīng)用分析角度,闡述實(shí)現(xiàn)融合框架的技術(shù)思路,具體如圖3所示。
圖3 水環(huán)境模型與大數(shù)據(jù)技術(shù)融合的技術(shù)思路
參考文獻(xiàn)[9]最早采用Hadoop1.0開展水環(huán)境模型和大數(shù)據(jù)計(jì)算框架融合的研究,通過(guò)將SWAT模型率定和不確定性分析中的規(guī)模運(yùn)算分解到map和reduce過(guò)程,為解決水文建模中的計(jì)算需求問(wèn)題提供了一種有效方法。受此啟發(fā),參考文獻(xiàn)[8]等提出一種僅使用map過(guò)程的改進(jìn)方法,基于Hadoop2.0實(shí)現(xiàn)水動(dòng)力水質(zhì)模型Delft3D的集群運(yùn)算架構(gòu)。該架構(gòu)不使用shuffle過(guò)程,提高了計(jì)算運(yùn)行效率,為解決水環(huán)境模擬規(guī)模計(jì)算問(wèn)題提供了新的視角。上述兩者指明了在統(tǒng)一平臺(tái)內(nèi)耦合數(shù)值模型和計(jì)算框架的方法,即MapReduce模式下,模型作為第三方可執(zhí)行程序被批量調(diào)用,map負(fù)責(zé)分布式計(jì)算,reduce負(fù)責(zé)匯總結(jié)果。
水環(huán)境模型具有其內(nèi)在特點(diǎn):一方面,包括流域分布式水文模型SWAT和三維水動(dòng)力水質(zhì)模型Delft3D在內(nèi)的水環(huán)境數(shù)值模擬模型等,通常屬于CPU密集型計(jì)算,運(yùn)行時(shí)間范圍為幾分鐘到幾小時(shí),甚至到幾天。這和MapReduce的設(shè)計(jì)目標(biāo)相符[12];另一方面,成熟的機(jī)理模型通?;诜?wù)于科學(xué)計(jì)算的FORTRAN語(yǔ)言編寫,大數(shù)據(jù)計(jì)算框架往往基于Java語(yǔ)言編寫,兩套語(yǔ)言混合編程需要付出極大的開發(fā)成本,在實(shí)踐中應(yīng)該發(fā)揮各自語(yǔ)言的特色,控制或降低融合成本。綜上所述,機(jī)理模型與大數(shù)據(jù)計(jì)算框架融合的思路是將機(jī)理模型作為獨(dú)立的第三方可執(zhí)行程序被計(jì)算框架調(diào)用,所有計(jì)算任務(wù)之間相互獨(dú)立,不發(fā)生交互。
從實(shí)現(xiàn)角度,為了提高模型計(jì)算速度,通常需要保障獨(dú)立的計(jì)算核和足夠的內(nèi)存。不論是Hadoop1.x中的JobTracker還是Hadoop2.x中的MRAppMaster都有整體計(jì)算資源的管理機(jī)制,都可根據(jù)應(yīng)用需求動(dòng)態(tài)調(diào)配內(nèi)存和計(jì)算核。目前,YARN被證明是一個(gè)有效的資源管理工具,而且和MapReduce一樣同屬Hadoop生態(tài)圈,這方便了模型計(jì)算資源的調(diào)配。完成資源調(diào)配后,進(jìn)入模型運(yùn)行環(huán)節(jié),這是模型和計(jì)算框架融合的核心,此環(huán)節(jié)主要包括模型啟動(dòng)、狀態(tài)追蹤以及管理交互(暫停、繼續(xù)、中止和重啟等)。典型的Hadoop集群通常運(yùn)行在Linux操作系統(tǒng)下,因此,模型引擎首先需要在Linux操作系統(tǒng)下編譯才能被使用;其次,模型在運(yùn)行之前,需在集群中能夠被獲取;最后,在本地節(jié)點(diǎn)中模型被調(diào)用進(jìn)而觸發(fā)執(zhí)行過(guò)程。
本質(zhì)上,模型作為第三方程序,通常不能將執(zhí)行狀況告知節(jié)點(diǎn),因此需要構(gòu)建一套反饋機(jī)制以發(fā)送狀態(tài)給用戶。詳細(xì)的狀態(tài)信息應(yīng)該包括兩部分,即模型自身運(yùn)行狀態(tài)和任務(wù)運(yùn)行狀態(tài),用戶獲取到這些信息后會(huì)決定是否干預(yù)運(yùn)行狀態(tài)。
綜上所述,模型和大數(shù)據(jù)計(jì)算框架融合的核心在于發(fā)揮計(jì)算框架的優(yōu)勢(shì),為模型的規(guī)模計(jì)算提供一種理想的方法。在具體的融合過(guò)程中,首先,依賴計(jì)算框架的資源調(diào)配機(jī)制,確保滿足模型對(duì)計(jì)算資源的需求;其次,依賴計(jì)算框架的編程模型,確保批量計(jì)算數(shù)據(jù)被分發(fā),計(jì)算程序在分布式節(jié)點(diǎn)上可獲取、可調(diào)用和狀態(tài)可追蹤。
數(shù)據(jù)的持久化是一個(gè)非常重要的過(guò)程,存儲(chǔ)結(jié)構(gòu)的設(shè)計(jì)決定了后續(xù)數(shù)據(jù)處理和分析的效率。當(dāng)模型計(jì)算完成時(shí),模擬結(jié)果存儲(chǔ)過(guò)程隨之啟動(dòng)。為了實(shí)現(xiàn)高效持久化,結(jié)果文件一般以二進(jìn)制格式存儲(chǔ)。不同的模型有不同的存儲(chǔ)格式,比如Delft3D的NEFIS格式、MIKE的dfs2格式等,因此需要不同的解析方法,以便提取重點(diǎn)關(guān)注的信息并將其寫入存儲(chǔ)介質(zhì)。一般來(lái)說(shuō),模型說(shuō)明文檔提供了相應(yīng)的文件結(jié)構(gòu)。根據(jù)此結(jié)構(gòu),可以設(shè)計(jì)合適的存儲(chǔ)結(jié)構(gòu)。文件和數(shù)據(jù)庫(kù)是兩種比較常見(jiàn)的存儲(chǔ)模式。由于計(jì)算會(huì)耗費(fèi)大量時(shí)間,原始結(jié)果文件顯得彌足珍貴,采用分布式文件存儲(chǔ)系統(tǒng)來(lái)存儲(chǔ)原始結(jié)果文件成為一種合理選擇。HDFS內(nèi)置的可擴(kuò)展、冗余、容錯(cuò)機(jī)制確保了原始數(shù)據(jù)的可靠性和高可用性,使其成為一種較佳的選擇。其他選擇還有使用同樣廣泛的FastDFS,具體采用哪種存儲(chǔ)系統(tǒng),需要結(jié)合計(jì)算框架和分析框架,從能否無(wú)縫結(jié)合的角度進(jìn)行綜合考慮。
通常情況下,原始結(jié)果文件不能被直接使用,實(shí)際應(yīng)用中需要借助專業(yè)的后處理工具。結(jié)構(gòu)化的表結(jié)構(gòu)是廣泛應(yīng)用的一種形式。因此,通常需要將原始結(jié)果集進(jìn)行解析和提取,形成結(jié)構(gòu)化數(shù)據(jù)集。根據(jù)水環(huán)境管理領(lǐng)域特點(diǎn),這種結(jié)構(gòu)化數(shù)據(jù)集是一種典型的時(shí)間序列數(shù)據(jù)集。因此,在存儲(chǔ)階段,除了需要關(guān)注規(guī)?;牟⑿袑懭耄€要兼顧數(shù)據(jù)本身的時(shí)間序列特點(diǎn)。分布式列式數(shù)據(jù)庫(kù)在海量數(shù)據(jù)并行寫入方面具有優(yōu)勢(shì),但是考慮到數(shù)據(jù)本身的時(shí)間特性,時(shí)間序列數(shù)據(jù)庫(kù)是一個(gè)合適的選擇,而且其存儲(chǔ)框架和計(jì)算框架還能屬于同一個(gè)生態(tài)系統(tǒng)。不幸的是,在Hadoop生態(tài)系統(tǒng)中,在存儲(chǔ)方面除了擴(kuò)展HBase的OpenTSDB,沒(méi)有單獨(dú)提供時(shí)間序列數(shù)據(jù)庫(kù)。即使OpenTSDB提供對(duì)時(shí)間序列存儲(chǔ)的支持,通過(guò)對(duì)HBase的存儲(chǔ)模式和行鍵同時(shí)進(jìn)行優(yōu)化設(shè)計(jì),也能夠獲得優(yōu)于OpenTSDB的讀寫性能。此外,其他選擇還有InfluxDB、RRDtool、Graphite和ElasticSearch等數(shù)據(jù)庫(kù)。因此,對(duì)于模擬結(jié)果存儲(chǔ),有很多的選擇。盡管如此,不論采用何種數(shù)據(jù)庫(kù),都需要慎重考慮存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)和主鍵設(shè)計(jì),二者共同決定了后文中應(yīng)用分析的效率。
綜上所述,模型和大數(shù)據(jù)存儲(chǔ)框架融合的核心在于選擇合適的模型計(jì)算結(jié)果持久化框架。在具體融合過(guò)程中,持久化存儲(chǔ)需要兼顧原始結(jié)果和解析記錄兩種不同格式。首先,需要判斷位于多個(gè)計(jì)算節(jié)點(diǎn)上的計(jì)算程序是否運(yùn)行結(jié)束;其次,節(jié)點(diǎn)上的計(jì)算完成后,在本地節(jié)點(diǎn)上連接并寫入存儲(chǔ)框架,實(shí)現(xiàn)多節(jié)點(diǎn)并發(fā)存儲(chǔ)。
模型結(jié)果分析依賴兩部分:結(jié)果集的獲取、基于數(shù)據(jù)之上的算法以及交互模式。在上述模型與存儲(chǔ)融合中,數(shù)據(jù)以分布式文件和數(shù)據(jù)庫(kù)的形式存儲(chǔ),推薦采用的數(shù)據(jù)庫(kù)分別是HDFS和HBase。對(duì)于HDFS,Hadoop提供了客戶端FileSystem對(duì)象,該對(duì)象提供了類似操作本地文件的方法,可以將整個(gè)HDFS視作一塊大硬盤來(lái)處理。借助FileSystem,可以將HDFS中存儲(chǔ)的原始結(jié)果文件和解析后制圖渲染出的批量制圖文件下載到本地,其中,批量制圖文件可以直接使用,原始文件則需要進(jìn)一步讀取和深入分析處理。對(duì)于分布式文件的處理,MapReduce通常被認(rèn)為是一個(gè)最佳選擇。MapReduce擅長(zhǎng)批量的順序處理,但是不支持隨機(jī)查詢。為此,需要一種支持隨機(jī)查詢的框架。對(duì)于HBase中存儲(chǔ)的記錄集,采用主流的Spark計(jì)算框架進(jìn)行分析成為適宜的選擇。利用其內(nèi)置的HBase-Spark接口,可以在HBase中進(jìn)行交互式數(shù)據(jù)檢索,并將檢索結(jié)果轉(zhuǎn)化為易于操作的DataFrame格式。DataFrame派生于彈性分布式數(shù)據(jù)集(resilient distributed dataset,RDD),RDD是Spark SQL模塊中最核心的編程抽象,可以被理解為以列的形式組織的分布式數(shù)據(jù)集合,它類似于關(guān)系型數(shù)據(jù)庫(kù)中的表,但在底層實(shí)現(xiàn)優(yōu)化并提供了一些抽象的操作來(lái)支持SQL。與此同時(shí),Spark內(nèi)部支持隨機(jī)查詢,這也為HDFS原始文件處理提供了支撐[13]。
RDD結(jié)構(gòu)充分凸顯了分布式數(shù)據(jù)處理的優(yōu)勢(shì)。RDD是邏輯集中的實(shí)體,在集群中的多臺(tái)機(jī)器上進(jìn)行了數(shù)據(jù)分區(qū)。通過(guò)對(duì)多臺(tái)機(jī)器上不同RDD分區(qū)的控制,可以減少機(jī)器之間的數(shù)據(jù)重排。RDD是Spark的核心數(shù)據(jù)結(jié)構(gòu),具有豐富的算子以支持復(fù)雜分析,使用Spark集群的計(jì)算資源。在不影響HBase集群穩(wěn)定性的情況下,可以通過(guò)并發(fā)分析的方式提高Spark的性能。RDD支持兩種操作,轉(zhuǎn)換操作用于將一個(gè)RDD轉(zhuǎn)換生成另一個(gè)RDD,行動(dòng)操作則觸發(fā)Spark提交作業(yè),并將數(shù)據(jù)輸出到Spark系統(tǒng)。基于RDD構(gòu)成了Spark的四大組件,SQL用于處理結(jié)構(gòu)化數(shù)據(jù),Streaming用于處理流數(shù)據(jù),MLlib用于機(jī)器學(xué)習(xí),GraphX用于圖計(jì)算。因此,Spark提供了用于大規(guī)模數(shù)據(jù)處理的統(tǒng)一分析引擎,原始的結(jié)果文件和HBase中的解析結(jié)果集可以轉(zhuǎn)換為Spark的RDD,充分利用Spark生態(tài)系統(tǒng)實(shí)現(xiàn)算法高效處理分析。
交互和可視化在知識(shí)發(fā)現(xiàn)中非常重要。Spark生態(tài)系統(tǒng)中提供Shell和Submit兩種客戶端來(lái)支持交互,但是缺乏支持可視化分析的組件。對(duì)此,Hadoop生態(tài)系統(tǒng)中的Zeppelin組件同時(shí)被賦予交互和可視化能力,Zeppelin是一個(gè)可以進(jìn)行大數(shù)據(jù)可視化分析的交互式開發(fā)系統(tǒng),可以承擔(dān)數(shù)據(jù)接入、數(shù)據(jù)發(fā)現(xiàn)、數(shù)據(jù)分析、數(shù)據(jù)可視化、數(shù)據(jù)協(xié)作等任務(wù)。Zeppelin前端提供豐富的可視化圖形庫(kù),后端支持HBase、Flink等大數(shù)據(jù)系統(tǒng),并支持Spark、Python、Java數(shù)據(jù)庫(kù)連接(Java database connectivity,JDBC)、Markdown、Shell等常用解釋器,這使得開發(fā)者和研究者可以方便地在Zeppelin環(huán)境中進(jìn)行數(shù)據(jù)分析。Zeppelin原生支持Spark解釋器,使得其成為一個(gè)合適的數(shù)據(jù)分析及可視化工具。
綜上所述,模型和大數(shù)據(jù)分析框架融合的核心在于選擇合適的交互式分析框架,該框架支持?jǐn)?shù)據(jù)快速獲取、高效組織、交互式和可視化分析。具體融合流程分為3步:首先,借助交互式可視化工具,探索隱藏在數(shù)據(jù)中的規(guī)律,形成專業(yè)應(yīng)用功能;其次,梳理上述交互式探索的流程,采用程序語(yǔ)言將處理流程封裝為算法軟件包;最后將算法軟件包集成到分布式計(jì)算框架中,用于服務(wù)具體業(yè)務(wù)的應(yīng)用需求。
為了證實(shí)機(jī)理模型與大數(shù)據(jù)技術(shù)融合的可行性,以江西省梅江流域SWAT模型率定為例,描述水環(huán)境機(jī)理模型與大數(shù)據(jù)技術(shù)融合的具體實(shí)現(xiàn)流程。限于篇幅,本文僅給出融合過(guò)程中關(guān)鍵技術(shù)的實(shí)現(xiàn)流程。具體SWAT空間建模細(xì)節(jié)可參考參考文獻(xiàn)[14]。
SWAT是一種半分布式模型,已被廣泛用于水文和環(huán)境建模。SWAT已開放源代碼軟件,其中的許多數(shù)據(jù)庫(kù)、文檔和出版物可供公眾使用,因此備受關(guān)注。此外,SWAT還提供了幾種軟件產(chǎn)品(如ArcSWAT、QSWAT),可以提供友好的用戶界面,并以直觀、信息豐富的地圖形式顯示結(jié)果。如圖4所示, SWAT的輸入數(shù)據(jù)包括數(shù)字高程模型(digital elevation model,DEM)、河道、土地利用和土壤數(shù)據(jù)。
圖4 SWAT模型空間建模流程
構(gòu)建SWAT模型的流程如下:
● 將河道的線狀幾何信息加載到DEM;
● 對(duì)DEM進(jìn)行預(yù)處理,并指定最小子流域面積;
● 核對(duì)并編輯河道上的點(diǎn)狀要素,選擇和定義流域出水口;
● 完成流域劃分;
● 根據(jù)土地利用、土壤數(shù)據(jù)和坡度數(shù)據(jù)對(duì)研究區(qū)域進(jìn)行分類,以確定每個(gè)子匯水區(qū)的水文響應(yīng)單元(hydrological response unit,HRU);
● 將所有天氣數(shù)據(jù)作為時(shí)間序列表輸入模型;
● 基于坡度、土地利用、土壤數(shù)據(jù)和天氣條件估算模型參數(shù);
● 對(duì)SWAT模型進(jìn)行校準(zhǔn)和驗(yàn)證,在模型運(yùn)行過(guò)程中,最好設(shè)置一個(gè)預(yù)熱期以避免初始化錯(cuò)誤。
與傳統(tǒng)并行計(jì)算模式不同,基于大數(shù)據(jù)技術(shù)中的分布式并行計(jì)算框架實(shí)現(xiàn)的集群運(yùn)算模式屬于多算例多任務(wù)分解模式,即每一個(gè)算例對(duì)應(yīng)一個(gè)SWAT模型運(yùn)行,這種模式適合大批量模型計(jì)算。通過(guò)位 置感知將計(jì)算移動(dòng)到數(shù)據(jù)所在的存儲(chǔ)位置是一個(gè)重大的進(jìn)步[15],即通過(guò)“數(shù)據(jù)本地化”可減少數(shù)據(jù)遷移,從而節(jié)約網(wǎng)絡(luò)帶寬,獲得高效的計(jì)算性能。分布式存儲(chǔ)將SWAT模擬結(jié)果分散存儲(chǔ)到多個(gè)節(jié)點(diǎn),并且同一份數(shù)據(jù)在不同節(jié)點(diǎn)上保存多個(gè)副本,兼顧實(shí)現(xiàn)數(shù)據(jù)本地化和冗余備份,保障了數(shù)據(jù)的安全性。分布式計(jì)算則通過(guò)位置感知將SWAT模型的可執(zhí)行程序分發(fā)到案例配置文件所在位置,達(dá)到“計(jì)算本地化優(yōu)化”的目標(biāo)。
SWAT模型在Hadoop平臺(tái)下的集群運(yùn)算模式如圖5所示。配置文件的分布式存儲(chǔ)冗余備份機(jī)制縮短了計(jì)算程序的尋址感知時(shí)間。SWAT模型的分布式計(jì)算包括位置感知、本地化計(jì)算和計(jì)算結(jié)果存儲(chǔ)3個(gè)過(guò)程。分布式分發(fā)機(jī)制可以快速定位配置文件所在的計(jì)算節(jié)點(diǎn),自動(dòng)下載SWAT模型執(zhí)行文件到計(jì)算節(jié)點(diǎn),并創(chuàng)建運(yùn)行空間,啟動(dòng)模型讀取配置文件,執(zhí)行模型本地化計(jì)算,最后將SWAT模擬結(jié)果寫入分布式存儲(chǔ)。
圖5 SWAT模型在Hadoop平臺(tái)下的集群運(yùn)算模式
本案例采用貝葉斯優(yōu)化(Bayesian optimization,BO)算法對(duì)SWAT模型進(jìn)行參數(shù)估值,其率定流程如圖6所示。復(fù)雜水質(zhì)模型包含大量參數(shù),但通常只有少數(shù)參數(shù)會(huì)影響模型的輸出[16]。鑒于對(duì)不重要或者不敏感的參數(shù)進(jìn)行估值會(huì)導(dǎo)致模型的過(guò)度參數(shù)化,從而大大降低參數(shù)估值的效率[17-18],在進(jìn)行參數(shù)估值之前需要進(jìn)行敏感參數(shù)選擇。本案例采用Morris敏感性分析方法,對(duì)選擇的重要參數(shù)進(jìn)行敏感性排序,并篩選出敏感參數(shù);然后,采用貝葉斯優(yōu)化算法對(duì)篩選出的參數(shù)進(jìn)行估值;最后,通過(guò)分析參數(shù)估值方法的優(yōu)化效率和水質(zhì)模型的擬合效果,對(duì)方法的適用性進(jìn)行評(píng)估。
圖6 SWAT模型自動(dòng)率定流程
Morris敏感性分析法是由Morris于1991年提出,后經(jīng)過(guò)改進(jìn)的一種全局敏感性分析方法[19]。該方法適用于分析參數(shù)眾多且運(yùn)算量較大的模型,被廣泛應(yīng)用于因子固定(factor fixing)和敏感性分析中。該方法的優(yōu)點(diǎn)是以較低的計(jì)算成本獲得模型參數(shù)的敏感性相對(duì)大小,并對(duì)模型參數(shù)的敏感性大小進(jìn)行排序[20]。基于高斯過(guò)程的貝葉斯優(yōu)化算法具有收斂速度快、優(yōu)化迭代次數(shù)少的特點(diǎn),適用于解決評(píng)估代價(jià)高昂的環(huán)境模型的自動(dòng)參數(shù)率定問(wèn)題。納什效率系數(shù)(Nash-Sutcliffe efficiency coefficient,NSE)被當(dāng)作目標(biāo)函數(shù)進(jìn)行水文參數(shù)敏感性及收斂性分析,從而定性分析度量方式的影響。NSE是最常用的模型評(píng)價(jià)指標(biāo)之一[21-22],表示模型擬合方差占總方差的百分比[23]。
SWAT模型參數(shù)選擇及其范圍是根據(jù)以往的研究確定的,選用參考文獻(xiàn)[24]中推薦的27個(gè)參數(shù),經(jīng)Morris采樣后產(chǎn)生24000組參數(shù)組合。進(jìn)行圖6中的批量計(jì)算后,返回同等數(shù)量的NSE結(jié)果。將24000組參數(shù)集-NSE結(jié)果數(shù)據(jù)輸入Morris算法,得到敏感指數(shù)并排序。選擇敏感指數(shù)大于0.08的8個(gè)參數(shù)作為率定參數(shù)。各參數(shù)名稱、最大/最小值及參數(shù)意義見(jiàn)表1。值得注意的是,CH_K2和CH_N2屬于可測(cè)量參數(shù),由于在本例中并沒(méi)有測(cè)定,因此仍然將其作為率定參數(shù)。
本案例中的大數(shù)據(jù)集群軟硬件信息詳見(jiàn)參考文獻(xiàn)[8]中的表1,貝葉斯優(yōu)化算法的應(yīng)用流程為:初始化參數(shù)空間,進(jìn)行拉丁超立方抽樣,據(jù)此創(chuàng)建批量模型場(chǎng)景文件;將場(chǎng)景文件分發(fā)到大數(shù)據(jù)集群,集群在文件所在節(jié)點(diǎn)執(zhí)行模型計(jì)算,返回NSE目標(biāo)函數(shù)值;根據(jù)NSE目標(biāo)函數(shù)值判斷是否達(dá)到率定要求,當(dāng)未滿足率定要求時(shí),選擇下一組參數(shù)繼續(xù)進(jìn)行迭代計(jì)算,反之終止集群運(yùn)算,返回率定結(jié)果。詳細(xì)操作流程可參考參考文獻(xiàn)[25]。
表1 SWAT模型中識(shí)別的敏感性參數(shù)
考慮到貝葉斯優(yōu)化算法本質(zhì)上屬于概率優(yōu)化,因此本案例采用20次重復(fù)測(cè)試以檢驗(yàn)優(yōu)化結(jié)果的合理性。結(jié)合大數(shù)據(jù)集群硬件性能指標(biāo)(56個(gè)算例并發(fā)計(jì)算),在單次優(yōu)化過(guò)程中設(shè)置560(56×10)次迭代計(jì)算。圖7(a)顯示了某次迭代過(guò)程中,NSE隨著迭代次數(shù)的增加而緩慢增長(zhǎng)的趨勢(shì)。結(jié)果表明,NSE總體上保持逐步上升趨勢(shì)。圖7(a)也有助于幫助理解貝葉斯優(yōu)化過(guò)程,即如何推薦下一組參數(shù)集取決于開發(fā)和探索之間的權(quán)衡,NSE逐步上升過(guò)程中存在的波動(dòng)變化證明了這一點(diǎn)。
為了進(jìn)一步證明貝葉斯優(yōu)化算法在SWAT參數(shù)率定中的優(yōu)勢(shì),本案例使用隨機(jī)搜索(random search,RO)算法進(jìn)行對(duì)比。從圖7(b)可以看出,當(dāng)BO和RS達(dá)到同一較高NSE取值時(shí)(以0.87為例),BO迭代次數(shù)(121)略小于RS(130),說(shuō)明BO率定效率高于RS。而在給定迭代次數(shù)下(以220為例),BO優(yōu)化獲得的NSE(0.89)大于RS(0.88),說(shuō)明BO率定效果優(yōu)于RS。上述結(jié)果表明,從SWAT參數(shù)率定和優(yōu)化的效果和效率角度來(lái)看,貝葉斯優(yōu)化算法優(yōu)于隨機(jī)搜索算法。此外,依托大數(shù)據(jù)技術(shù)框架,可以融合多種優(yōu)化算法,建立水環(huán)境模擬優(yōu)化框架,從而為水環(huán)境模型深度應(yīng)用和價(jià)值發(fā)揮提供理想環(huán)境。
圖7 案例率定效果驗(yàn)證一
為了檢驗(yàn)本案例的率定效果,對(duì)徑流模擬值(Sim)與實(shí)測(cè)值(Obs)進(jìn)行對(duì)比,如圖8(a)所示。BO的NSE最大值為0.89,說(shuō)明率定后的模型較好地捕捉了月徑流變化,可以用于案例月徑流模擬。對(duì)貝葉斯優(yōu)化過(guò)程中產(chǎn)生的20×560個(gè)徑流模擬結(jié)果值進(jìn)行概率統(tǒng)計(jì),獲得徑流模擬結(jié)果的概率直方圖,如圖8(b)所示。從圖8(b)可以看出,在率定過(guò)程中,徑流模擬值近似呈正態(tài)分布狀收斂,概率分布中極大值處的徑流量趨近于觀測(cè)值,說(shuō)明率定過(guò)程中的參數(shù)不確定性可以傳到模擬結(jié)果中,從而導(dǎo)致模擬結(jié)果的不確定性。因此,在實(shí)際應(yīng)用中,模擬結(jié)果分布呈現(xiàn)出的收斂趨勢(shì)比取某個(gè)特定值更具有參考價(jià)值,同時(shí)也反映了開展模型不確定性研究的重要性,本案例中提出的模型與大數(shù)據(jù)技術(shù)融合策略可以為開展模型不確定性研究提供一種新思路。
圖8 案例率定效果驗(yàn)證二
限制水環(huán)境模型成功應(yīng)用的主要瓶頸是基礎(chǔ)數(shù)據(jù)難以獲取以及模型率定、模型驗(yàn)證及場(chǎng)景分析中的高負(fù)荷計(jì)算?;A(chǔ)數(shù)據(jù)獲取依賴于精準(zhǔn)的長(zhǎng)期監(jiān)測(cè)和對(duì)監(jiān)測(cè)信息的高效提取,也可采用理論和經(jīng)驗(yàn)相結(jié)合的方法彌補(bǔ)數(shù)據(jù)的欠缺。大數(shù)據(jù)存儲(chǔ)技術(shù)的可擴(kuò)展、冗余、容錯(cuò)機(jī)制確保了原始數(shù)據(jù)的可靠性和高可用性,使其成為一種合適的持久化選擇,為多源異構(gòu)基礎(chǔ)數(shù)據(jù)的持久化存儲(chǔ)提供了解決方案。作為典型的計(jì)算密集型復(fù)雜系統(tǒng)模型,水環(huán)境模型通常需要大量計(jì)算時(shí)間,尤其在面向自動(dòng)率定、驗(yàn)證及場(chǎng)景分析等批量計(jì)算需求時(shí),通常無(wú)法承受大量的迭代計(jì)算。在單個(gè)模型計(jì)算非常耗時(shí)的情況下,批量計(jì)算是被禁止的。雖然現(xiàn)有并行計(jì)算體系很好地解決了數(shù)值模型的高性能計(jì)算問(wèn)題,但是在計(jì)算結(jié)果的規(guī)模存儲(chǔ),尤其規(guī)模分析上性能表現(xiàn)一般。這和現(xiàn)有并行計(jì)算體系的設(shè)計(jì)目標(biāo)有關(guān),它注重計(jì)算的高效性,而未考慮其他需求(如存儲(chǔ)和分析需求)。因此,水環(huán)境模型的高質(zhì)量應(yīng)用迫切需要一個(gè)緊密銜接計(jì)算、存儲(chǔ)和分析全鏈條的技術(shù)支撐體系。大數(shù)據(jù)技術(shù)體系成為潛在的理想選擇。大數(shù)據(jù)技術(shù)內(nèi)置了分布式計(jì)算、存儲(chǔ)和分析框架體系,自然成為一種解決水環(huán)境模型規(guī)模計(jì)算問(wèn)題的潛在理想方案。
在本研究中,以SWAT模型參數(shù)自動(dòng)率定為例,驗(yàn)證了方案的可行性。首先,通過(guò)將模型配置文件分布式分發(fā)到各個(gè)計(jì)算節(jié)點(diǎn);接著,水環(huán)境模型計(jì)算程序會(huì)自動(dòng)定位到配置文件所在位置;然后,在計(jì)算節(jié)點(diǎn)啟動(dòng)計(jì)算的過(guò)程中,在SWAT模型計(jì)算完成后,開始解析計(jì)算結(jié)果,并將原始結(jié)果文件和解析結(jié)果記錄存入大數(shù)據(jù)庫(kù);最后,利用內(nèi)存網(wǎng)格技術(shù)高效地提取和分析模擬結(jié)果。上述所有環(huán)節(jié)緊密銜接了計(jì)算、存儲(chǔ)和分析技術(shù)鏈條,應(yīng)用案例證明了水環(huán)境模型與大數(shù)據(jù)技術(shù)融合的可行性,二者的融合為深入挖掘水環(huán)境模型的應(yīng)用潛力和充分發(fā)揮其應(yīng)用價(jià)值提供了新的視角。
水環(huán)境模型和大數(shù)據(jù)技術(shù)融合的核心是模型分布式計(jì)算,即模型作為獨(dú)立的第三方可執(zhí)行程序被計(jì)算框架調(diào)用,比較適合模型參數(shù)率定及情景分析等批量計(jì)算的應(yīng)用場(chǎng)景。受益于大數(shù)據(jù)分布式計(jì)算橫向擴(kuò)展的特點(diǎn),計(jì)算效率通常和計(jì)算節(jié)點(diǎn)個(gè)數(shù)呈線性增長(zhǎng)關(guān)系,這極大提高了模型的計(jì)算效率。即便如此,作為計(jì)算密集型復(fù)雜模型,水環(huán)境模型計(jì)算仍然非常耗時(shí)。相反,近似物理模型的統(tǒng)計(jì)“代理模型”可以提供對(duì)物理系統(tǒng)的高效仿真。代理模型系統(tǒng)以統(tǒng)計(jì)模型的形式映射輸入變量和輸出變量,該統(tǒng)計(jì)模型通過(guò)使用物理模型生成的一組數(shù)據(jù)進(jìn)行訓(xùn)練和驗(yàn)證。代理模型在水文學(xué)領(lǐng)域已被廣泛研究[26],近似算法(如kriging[27]、人工神經(jīng)網(wǎng)絡(luò)[28]、徑向基函數(shù)[29]、多項(xiàng)式回歸[30]、支持向量機(jī)[31]、稀疏網(wǎng)格插值法[32]和隨機(jī)森林技術(shù)[33])已被應(yīng)用于各種地球系統(tǒng)和水文系統(tǒng)。在最新研究中,復(fù)雜水動(dòng)力水質(zhì)模型EFDC(environmental fluid dynamics code)被長(zhǎng)短期記憶(long short-term memory,LSTM)代理反映了這一趨勢(shì)[34]??梢灶A(yù)見(jiàn),水環(huán)境模擬與大數(shù)據(jù)技術(shù)融合有以下兩個(gè)發(fā)展趨勢(shì)。
(1)以大數(shù)據(jù)技術(shù)為轉(zhuǎn)化載體,水環(huán)境模型將以統(tǒng)計(jì)模型形式從物理模型轉(zhuǎn)化為代理模型,這將極大地改變現(xiàn)有水環(huán)境模型的應(yīng)用模式。與物理模型相比,代理模型兼具較高的模擬精度和極高的計(jì)算效率,使之成為物理模型的理想替代,這勢(shì)必會(huì)推動(dòng)模型參數(shù)敏感性分析、參數(shù)率定及情景分析等應(yīng)用研究。
(2)水環(huán)境模擬優(yōu)化框架成為未來(lái)的發(fā)展趨勢(shì)。該框架以完整的分布式計(jì)算、存儲(chǔ)和分析鏈為技術(shù)支撐,以物理模型或代理模型為核心,結(jié)合單目標(biāo)或多目標(biāo)優(yōu)化算法,解決優(yōu)化調(diào)控類科學(xué)決策問(wèn)題。