王亦斌,孫 濤,徐希濤
(1.南水北調(diào)東線江蘇水源有限責任公司,江蘇 南京 210019;2.南瑞集團(國網(wǎng)電力科學研究院)有限公司,江蘇 南京 211000)
水是人類生存發(fā)展不可或缺的重要資源,隨著社會經(jīng)濟的不斷發(fā)展,水污染情況日漸嚴重,傳統(tǒng)的先污染后治理方法,需要耗費大量人力物力財力,且見效周期長,因此,通過水質(zhì)模型準確估算出入河入湖污染物通量,控制污染物總量對水環(huán)境生態(tài)保護具有重要意義。國內(nèi)外學者對MIKE[1]、EFDC[2-3]、Delft3D[4]和WASP[5-6]等水質(zhì)模型做了大量應用研究,EFDC模型由于具有功能強大、模擬結(jié)果可靠、源代碼開放等特點,被廣泛應用[7]。然而EFDC模型本身不具備空間可視化功能,目前常用的方法也僅是將模型結(jié)果在GIS桌面軟件中通過SDK控件達到可視化效果[8],無法實時在線瀏覽污染物空間擴散結(jié)果。本文基于B/S架構,將EFDC模型與GIS集成耦合,改進可視化效果,實現(xiàn)在線實時污染物擴散模擬,對河湖水質(zhì)預警分析具有一定現(xiàn)實意義。
EFDC(Environmental Fluid Dynamics Code)模型最初是由弗吉尼亞海洋研究所的John M.Hamrick博士開發(fā)的,是一個多功能地表水模擬系統(tǒng),能夠應用于河流、湖泊、河口、沿海地區(qū)和濕地等水體的一維、二維和三維空間過程模擬。在美國環(huán)保署的支持下,EFDC模型已經(jīng)成功應用于歐美國家的100多個研究區(qū)域,在我國也被應用于多個河流湖泊[9-12]。
為了盡可能貼合實際地形,直觀地表現(xiàn)水動力空間變化,模型的3D控制方程在水平方向采用傳統(tǒng)的笛卡爾直角坐標或曲線正交坐標,垂直方向采用sigma地形坐標。EFDC模型的計算方程基于質(zhì)量守恒定律、能量守恒定律和動能守恒定律,包含水動力模塊、水質(zhì)模塊、泥沙模塊和重金屬模塊等,其中水動力模塊是EFDC模型的基礎,采用CH3D水力學原理[13],負責求解水深、水壓和3個方向的速度。EFDC的水質(zhì)模塊,適用于計算水文、鹽度等水質(zhì)參數(shù)的變化,水動力計算結(jié)果為水質(zhì)模型提供水動力驅(qū)動,EFDC模型中可以計算22種水質(zhì)參數(shù)[14]。
EFDC模型的數(shù)據(jù)結(jié)構包括3個部分:主控文件、輸入文件和輸出文件。
(1)主控文件
主控文件efdc.inp描述了模型功能要求的運行控制參數(shù)、輸出控制以及物理信息,是模型內(nèi)部記錄文件,提供了模型模擬仿真的模版。主控文件按照不同的類別區(qū)分不同的輸入?yún)?shù),主要包含以下信息:1)模型運行的控制開關,用于控制相關功能是否激活(如示蹤劑、維數(shù));2)源數(shù)據(jù)的規(guī)模(如負荷節(jié)點的數(shù)量、氣象站的數(shù)量);3)輸出的水質(zhì)參數(shù)和步長;4)定于輸出水質(zhì)單元的數(shù)量和位置。主控文件也是其中一個輸入文件。
(2)輸入文件
EFDC模型的輸入文件為***.inp格式,模型的輸入文件可以分為5類,分別是:1)水平網(wǎng)格規(guī)范文件,如cell.inp、dxdy.inp;2)全局數(shù)據(jù)和運行控制文件,有efdc.inp、show.inp;3)初始化和重啟文件,如restart.inp、salt.inp;4)物理過程規(guī)范文件,如moddxdy.inp;5)時間序列和邊界條件文件,如tser.inp、sser.inp。
(3)輸出文件
EFDC模型的輸出文件為***.out格式,模型輸出文件可以分為5類:分別是:1)診斷輸出文件;2)重啟和傳輸文件;3)時間序列、點樣本和最小二乘諧波分析輸出文件;4)二維圖形和可視化文件;5)三維圖形和可視化文件。
EFDC水質(zhì)建模的主要流程如下:
(1)劃分計算網(wǎng)格,對研究區(qū)水域進行矩形網(wǎng)格或正交網(wǎng)格劃分,矩形網(wǎng)格適用于面積較大或者形狀規(guī)則的水域,如大型湖泊,形狀復雜或岸線不規(guī)則的水域則適合劃分為正交網(wǎng)格,如蜿蜒的河流。
(2)生成網(wǎng)格規(guī)范文件,網(wǎng)格規(guī)范文件是根據(jù)劃分的網(wǎng)格結(jié)果,對網(wǎng)格內(nèi)數(shù)據(jù)賦值,建立模擬區(qū)域,其中0代表不跟水域接壤的陸地,1234分別代表東北、東南、西南、西北4個方向存在水土交接的區(qū)域,5代表水域,9代表陸地與水域的邊界。
(3)生成主控文件,主控文件是模型運行的主要控制文件,可以配置模擬的起止時間、步長、模擬參數(shù)等。
(4)準備輸入文件,包括流量數(shù)據(jù)、氣象數(shù)據(jù)、水位數(shù)據(jù)、高程數(shù)據(jù)、站點數(shù)據(jù)等初始條件和邊界條件數(shù)據(jù)。
(5)模型建模與求解,是根據(jù)模型輸入的網(wǎng)格文件、主控文件、初始條件和邊界條件數(shù)據(jù),進行水動力和水質(zhì)要素的時空過程模擬。
(6)水動力-水質(zhì)模型參數(shù)率定與驗證,通過反復對比模型模擬值與實測值,來修改模型參數(shù),盡可能提高模擬結(jié)果的精度。
EFDC模型由于其先進性和可靠性被廣泛使用,但是模型對其輸入數(shù)據(jù)具有很高的格式要求,需要花費大量的時間對模型的輸入數(shù)據(jù)進行處理,以保證模型的順利運行。此外,模型的輸出文件為非結(jié)構化的二進制文件,無法滿足可視化需求。GIS在數(shù)據(jù)管理、查詢檢索、空間分析以及空間可視化等功能表現(xiàn)非凡。借助GIS的技術,建立基于GIS的水質(zhì)模型,是GIS解決水質(zhì)模擬問題的關鍵所在。
行業(yè)應用模型與GIS的集成方式主要有以下3種方式:1)嵌入式耦合,是指模型作為一段GIS腳本或者通過GIS圖形進行界面運行;2)松散耦合,是指模型作為獨立的軟件與GIS在不同的硬件環(huán)境下進行運算;3)緊密耦合,是指模型與GIS共同讀寫相同的文件,不需要文件轉(zhuǎn)換。
EFDC模型采用FORTRAN語言開發(fā)的開源軟件,其核心代碼相對復雜,很難將其簡化為GIS腳本,松散耦合的方式則需分別運行模型計算軟件和GIS程序。因此,實現(xiàn)EFDC模型輸出文件的GIS可視化是集成的關鍵。本文基于緊密耦合的方式編程實現(xiàn)模型輸入數(shù)據(jù)界面化、輸出結(jié)果GIS可視化以實現(xiàn)EFDC模型與GIS的完全集成。
當下流行的B/S架構實現(xiàn)了服務端與客戶端的分離,且WebGIS具有易于集成、跨平臺、操作簡單等優(yōu)勢[15],本文將EFDC模型的模型輸入、模型處理和模型結(jié)果展示3個部分集成到以WebGIS平臺,構建完整的水質(zhì)在線模擬系統(tǒng)。集成框架如圖1所示。開發(fā)HTML頁面作為模型輸入和參數(shù)設置的窗口,將模型所需的參數(shù)數(shù)據(jù)存儲在文本數(shù)據(jù)庫中。輸入?yún)?shù)的修改也直接在瀏覽器頁面中操作,服務端直接生成.inp文件。模型的運行通過后臺代碼調(diào)用EFDC模型的可執(zhí)行程序efdc.exe。模型計算后得到的.out結(jié)果也存儲在文本數(shù)據(jù)庫中。模擬結(jié)果的空間可視化通過地理處理服務(GP服務)實現(xiàn)。
圖1 EFDC模型與GIS集成框架
系統(tǒng)的功能流程體現(xiàn)了水質(zhì)在線模擬的過程,主要包括模型輸入與參數(shù)設置、模型處理和模型展示3個模塊,系統(tǒng)模塊流程如圖2所示。
圖2 系統(tǒng)功能模塊流程
模型輸入和參數(shù)設置都是由用戶在瀏覽器頁面上操作,提交給后臺服務器,服務端根據(jù)客戶端提交的數(shù)據(jù)完成模型選擇和模型輸入文件的制作。
模型輸入:模型的輸入是用戶在網(wǎng)頁上,選擇發(fā)生污染事件的河湖,待選擇的河湖為預先輸入系統(tǒng)選項,輸入的信息除了河湖名稱,還包括具體的經(jīng)緯度、空間網(wǎng)格劃分結(jié)果以及預先制作好的水質(zhì)模型。用戶通過在地圖上指定污染發(fā)生的具體地址,系統(tǒng)自動判斷所在河湖,選擇輸入的模型。
參數(shù)設置:用戶所需設置的參數(shù)主要包括污染事件的名稱、時間、污染物總量、衰減速率等。根據(jù)污染事件的時間以及污染物所在的河湖可以生成模型所需的時間序列數(shù)據(jù),污染物總、衰減系數(shù)等參數(shù)是為了模擬污染物的時間過程。
模型處理包括后臺生成輸入文件和執(zhí)行EFDC模擬。
生成輸入文件:模型模擬的前提是生成輸入文件(***.inp文件),后臺獲取用戶界面輸入的參數(shù)后,編寫java程序,將其轉(zhuǎn)化成EFDC模型所需要的輸入文件格式,供模型調(diào)用。本文開發(fā)了生成輸入文件的CreateEfdcInput.class類,實現(xiàn)了getAser(),getDser(),getSser(),getTser()等接口來創(chuàng)建時間序列文件,開發(fā)了函數(shù)getEfdcMain()來生成主控文件。
執(zhí)行EFDC模擬:EFDC模型可執(zhí)行程序的調(diào)用采用編程的方式實現(xiàn)。模型模擬結(jié)果會生成多個***.out文件。
模擬結(jié)果的展示是將EFDC模型的輸出文件(***.out)可視化的過程,本系統(tǒng)主要實現(xiàn)了在空間地圖上展示水質(zhì)過程線、擴散過程、污染物濃度分布等功能。
(1)水質(zhì)過程線
過程線是指以時間為橫坐標、污染物濃度為縱坐標,直接展示污染物濃度隨時間的變化。在地圖界面上選擇水域網(wǎng)格,可以查看每個網(wǎng)格的各種污染物的過程線。
(2)擴散過程
污染物擴散過程是指在地圖上用矢量箭頭表示出每個水域網(wǎng)格內(nèi)的污染物擴散速度和方向,箭頭的大小代表不同的擴散速度,箭頭的方向代表污染物的擴散方向,擴散方向分為東、西、南、北、東南、東北、西南、西北共8個方向。可以展示某一時刻的污染物擴散過程,也可以通過選擇一個時間段,動態(tài)展示污染物隨時間變化的擴散過程。
(3)污染物濃度分布
污染物濃度分布是指在地圖上展示模擬范圍內(nèi)的污染物濃度空間分布情況。污染物的濃度分布不以水域網(wǎng)格為最小單元展示,而是應用GIS等值面算法,將網(wǎng)格分布的污染物濃度更加直觀、細致的展示給用戶。同樣,可以展示某一時刻的污染物濃度分布,也可以展示一個時間段內(nèi)污染物濃度的時空變化過程。
基于B/S架構的EFDC模型與GIS技術的集成,將GIS的強大的空間展示能力與EFDC模型的專業(yè)性相結(jié)合,以空間可視化的方式實時準確展示了模型模擬結(jié)果,為水質(zhì)管理提供技術支撐。
采用完全集成的思想,由EFDC模型完成水質(zhì)專業(yè)模擬,由GIS擔任空間管理可視化工作,降低了模型與GIS的耦合成本,為水質(zhì)過程模型與GIS的集成研究提供了新的思路。