顧 麗
(長江水利委員會水文局,湖北 武漢 430010)
面向站網(wǎng)(格點)雨量信息處理軟件的設(shè)計與開發(fā)
顧 麗
(長江水利委員會水文局,湖北 武漢 430010)
面向站網(wǎng)(格點)雨量信息處理軟件主要針對不同區(qū)域?qū)崪y站網(wǎng)降雨量及數(shù)值預(yù)報模式產(chǎn)品中的格點雨量預(yù)報等數(shù)據(jù),實現(xiàn)自動或?qū)崟r處理,生成豐富多樣的實況雨量圖和預(yù)報雨量圖或表等產(chǎn)品,包括不同時間對象(時段、日、旬、月、季和年度)的實況雨量等值面(線)圖和雨量距平圖、頻次圖,以及不同數(shù)值模式的降雨量預(yù)報圖、分區(qū)面雨量圖或表等。闡述了該軟件的設(shè)計和實現(xiàn)過程,主要包括功能設(shè)計、程序流程設(shè)計、數(shù)據(jù)庫設(shè)計及算法設(shè)計等。
雨量信息;信息處理;GIS;等值面
實時掌握長江流域雨量信息對水文預(yù)報工作意義重大[1]。目前,在長江流域已有的水文信息系統(tǒng)中,雨量信息的利用分布在各個系統(tǒng),由于數(shù)據(jù)源和數(shù)據(jù)處理不一致,有可能發(fā)布成果也不同。將所有雨量產(chǎn)品整合到一個系統(tǒng),對外提供統(tǒng)一接口很有必要。在水文信息化的大趨勢下,該業(yè)務(wù)的標準化勢在必行。
面向站網(wǎng)(格點)雨量信息處理軟件旨在提供豐富多樣的雨量圖形產(chǎn)品,具體包括:①根據(jù)不同的操作模式,系統(tǒng)提供了定時和實時生成兩種模式,定時是指系統(tǒng)到指定時間段自動生成固定起止時間(如時段、日、旬、月)的產(chǎn)品,實時是指系統(tǒng)提供手動生成任意起止時間的產(chǎn)品;②根據(jù)不同的產(chǎn)品類型,系統(tǒng)提供了雨量等值面、距平等值面、分區(qū)面雨量和頻次等值面四大類產(chǎn)品;③根據(jù)數(shù)據(jù)源的不同,系統(tǒng)提供了離散點和網(wǎng)格數(shù)據(jù)兩種數(shù)據(jù)源生成模式,其中實況雨量數(shù)據(jù)為離散點,預(yù)報雨量數(shù)據(jù)(如歐洲、日本、WRF、T639模式產(chǎn)品)為網(wǎng)格點;④根據(jù)不同的處理范圍,系統(tǒng)提供了長江流域及八大水系、西南諸河等多個范圍;⑤根據(jù)不同的生成結(jié)果,系統(tǒng)提供了圖片和SHP文件兩種格式,圖片適用于了解雨量大致分布情況,矢量圖能給水情和氣象專業(yè)人員作精細化展示,將圖片展示與矢量展示相結(jié)合,增加了演示雨量信息的多樣性[2]。
系統(tǒng)產(chǎn)品清單如圖1所示。

圖1 產(chǎn)品清單
程序的運行流程設(shè)計如下:①程序啟動,初始化產(chǎn)品配置信息,包括產(chǎn)品命名規(guī)則、存儲路徑,定時產(chǎn)品自動生成時間段,等值面產(chǎn)品區(qū)間值及顏色等。②若用戶選擇實時生成,輸入產(chǎn)品起止時間,多范圍產(chǎn)品可選擇具體范圍,程序讀取對應(yīng)產(chǎn)品配置信息,開始生成。③生成結(jié)束后程序記錄產(chǎn)品生成狀態(tài),若生成成功則顯示產(chǎn)品圖片,生成失敗則顯示錯誤原因。④若用戶選擇定時生成,定時器計時開始。到某產(chǎn)品指定開始時間,計時器停止計時,程序讀取產(chǎn)品配置,開始生成。新生成文件不斷覆蓋舊文件,直到指定結(jié)束時間。⑤程序記錄產(chǎn)品生成狀態(tài),更新定時產(chǎn)品最近生成結(jié)果表格,計時器再次開始計時,為下一次產(chǎn)品生成做準備。⑥當系統(tǒng)處在實時生成模式時,用戶可以設(shè)置產(chǎn)品配置信息,定時模式不允許修改產(chǎn)品配置。
程序流程如圖2所示。

圖2 程序流程
按照系統(tǒng)實際需求,以現(xiàn)有的實時水雨情數(shù)據(jù)庫為基礎(chǔ),進行業(yè)務(wù)屬性數(shù)據(jù)的接入和實時空間數(shù)據(jù)的生成。業(yè)務(wù)數(shù)據(jù)均以數(shù)據(jù)庫表的形式物理存儲在業(yè)務(wù)數(shù)據(jù)庫中,方便查詢訪問[3]。在原有實時水雨情數(shù)據(jù)庫上,新增9個表。詳見圖3。
其中以CON開頭的5個表存儲產(chǎn)品各類信息,具體包括產(chǎn)品生成狀態(tài)及錯誤原因、定時產(chǎn)品的生成時間段、等值面產(chǎn)品的等級及對應(yīng)顏色、錯誤編號代表的具體內(nèi)容、產(chǎn)品編號代表的具體內(nèi)容等信息,是系統(tǒng)產(chǎn)品化的數(shù)據(jù)支撐。以QX開頭的4個表存儲站點距平所需信息,其中方案一為148個氣象站30 a逐日雨量平均值,方案二為493個水文、氣象站30 a逐旬、逐月雨量平均值。當系統(tǒng)生成多日距平等值面時,采用方案一中148個站;生成旬、月距平等值面時,站點源為方案二中493個站。

圖3 數(shù)據(jù)庫E-R圖
(1) CON_CPJS產(chǎn)品生成狀態(tài)表。該表包含6個字段,CNAME為流域名稱,CTIME為產(chǎn)品起止時間,CENDTIME為產(chǎn)品生成時間,CSTATE為產(chǎn)品生成狀態(tài),CERRORID為錯誤編號,CTYPE為產(chǎn)品類型。
(2) CON_CWLX錯誤編號內(nèi)容對照表。該表包含2個字段,CERRORID為錯誤編號,CERRNM為錯誤編號對應(yīng)內(nèi)容。
(3) CON_YLSJ定時產(chǎn)品信息表。該表包含4個字段,CTYPE為定時產(chǎn)品類型,CTIME為生成時間段,CVALUE為最大值,大于此值則不參與計算,CORNOT為是否定時生成。
(4) CON_TONM產(chǎn)品編號名稱對照表。該表包含2個字段,CTYPE為產(chǎn)品編號,CTYPENM為產(chǎn)品名稱。
(5) CON_YLZYS產(chǎn)品等級顏色對照表。該表包含6個字段,CTYPE為產(chǎn)品類型,CCOUNT為等級個數(shù),CVALUE為等級極小值,下一個等級的極小值為前一個等級的極大值,CCOLORR、CCOLORG和CCOLORB為等級對應(yīng)RGB值。
(6) QX_ST_AVGRAIN方案一30 a逐日平均值表。該表包含4個字段,STCD5為氣象站五位碼,MONTH為月份,DAY為日,AVGDYP為30 a平均雨量值。
(7) QX_ST_XY方案一測站基礎(chǔ)信息表。該表包含4個字段,STCD5為氣象站五位碼,STNM為測站站名,X為測站經(jīng)度,Y為測站緯度。
(8) QX_ST_AVGRAIN_NEW方案二30 a旬月平均值表。該表包含5個字段,STCD為測站八位碼,其中雨量站359個,水文站88個,水位站35個,水庫站9個,堰閘站2個;MONTH為月份;DAY為日;AVTYPE為旬月標志; AVPR為旬或月30 a雨量均值。
(9) QX_ST_XY_NEW方案二測站基礎(chǔ)信息表。該表包含4個字段,STCD為測站八位碼,STNM為測站站名,LGTD為測站經(jīng)度,LTTD為測站緯度。
該系統(tǒng)支持雨量等值面、距平等值面、頻次等值面及分區(qū)面雨量四大類產(chǎn)品生成功能。其中雨量、距平和頻次3種產(chǎn)品在數(shù)據(jù)的處理上有所不同,算法上都可歸結(jié)為等值面生成算法。該算法經(jīng)歷了插值成網(wǎng)、追蹤成線和填充得面[4],得到的中間成果是以輸入站點(網(wǎng)格)經(jīng)緯度為邊界的外接矩形等值面;后續(xù)還包括簡化、除重、裁切、排序、渲染、計算籠罩面積和輸出等操作,最終成果是指定范圍邊界內(nèi)的不帶島等值面,這中間的每一步都有其必要性。
將外接矩形等值面處理得到指定范圍等值面,可使用裁切操作。但GIS提供的裁切算法只針對不帶島多邊形,所以在裁切之前要將帶島多邊形簡化。簡化后的多邊形可以與指定邊界進行裁切[5],但此時存在重復(fù)多邊形問題。為了盡可能簡單地描述問題,以下例子是最容易的帶一島多邊形。(在實際情況中,帶多島及島中帶島很常見,其原理與以下例子類似,在此不作說明。)
圖4中包括兩個多邊形,多邊形A為帶島多邊形,區(qū)間為0~10,用淺色填充;多邊形B為簡單多邊形,區(qū)間為10-25,用深色填充。將帶島多邊形A簡化后得到圖4中A1和A2兩個簡單多邊形,其區(qū)間都為0~10。從圖中可以看出多邊形A2與B除了區(qū)間不同外,其它完全一致。若不處理重復(fù)多邊形A2會出現(xiàn)兩個問題:①GIS默認渲染是根據(jù)FID先后順序依次渲染各元素,若多邊形A1的FID值大于多邊形A2和B,系統(tǒng)會先渲染多邊形A2和B,導(dǎo)致這兩個多邊形被A1遮擋,出現(xiàn)等值面失真的錯誤;②計算籠罩面積時會重復(fù)計算區(qū)間為0~10(即A2所表示的區(qū)間)值,出現(xiàn)籠罩面積計算出錯的情況。

圖4 帶島多邊形簡化
以上兩種問題可以通過兩步操作來解決。針對渲染失真的情況,可以先按多邊形面積排序再渲染來實現(xiàn),多邊形按面積從大到小排序后,系統(tǒng)先渲染面積大的多邊形再渲染面積小的多邊形,這樣面積小的多邊形只會疊加在面積大的多邊形上,不會出現(xiàn)被遮蓋的情況。針對籠罩面積重復(fù)計算的情況,可以在多邊形簡化操作時,將所有島(在圖4中對應(yīng)多邊形A2)都去掉;然后利用GIS空間分析算法求得每個多邊形的實際籠罩面積。
求多邊形的實際籠罩面積存在3種情況:①多邊形內(nèi)不包含其他多邊形,如圖5中多邊形A和B,用深色圓形表示;②多邊形內(nèi)包含一個多邊形,如圖5中多邊形C所示,用中間色圓形表示;③多邊形內(nèi)包含不止一個多邊形,如圖5中多邊形D所示,用淺色矩形表示。

圖5 籠罩面積計算的3種情況
對于多邊形A和B,其籠罩面積即為多邊形面積SA和SB;對于多邊形C,其籠罩面積為SC-SB;對于多邊形D,其籠罩面積為SD-(SC+SA)。
面向站網(wǎng)(格點)雨量信息處理軟件系統(tǒng)旨在提供豐富多樣的雨量產(chǎn)品、包括實況雨量產(chǎn)品、預(yù)報雨量產(chǎn)品,距平圖產(chǎn)品和面雨量產(chǎn)品。對于起止時間固定的產(chǎn)品,無需用戶干預(yù),到固定時間點自動生成,保證用戶能即用即看;對起止時間不確定的產(chǎn)品,系統(tǒng)也提供了相應(yīng)接口,增強了與用戶互動的多樣性。系統(tǒng)能定時高效地生成各種產(chǎn)品,并能估算出不同雨量區(qū)間的籠罩面積,對長江流域防汛降雨預(yù)報具有重要的參考價值。
[1] 陳繪絢.GIS在水文信息化中的應(yīng)用和發(fā)展趨勢[J].中國科技信息,2011(1):16-17.
[2] 楊鵬.關(guān)于建設(shè)“智慧長江”的思考[J],人民長江,2014,45(23):30-34.
[3] Andy Mitchell.GIS空間分析指南[M].張旸譯.武漢:測繪出版社,2011.
[4] 蔣瑜.杜斌.盧軍.基于Delaunay三角網(wǎng)的等值線繪制算法[J].計算機應(yīng)用研究,2010,27(1):101-103.
[5] 帥向華.侯建盛.劉欽.基于地震現(xiàn)場離散點災(zāi)情報告的災(zāi)害空間分析模擬研究[J]. 地震地質(zhì),2009,31(2):321-333.
(編輯:唐湘茜)
2017-03-31
顧麗,女,長江水利委員會水文局,碩士,助理工程師.
1006-0081(2017)06-0043-04
P413
A