王洪祥,趙 蕾,孫悅程,曹 旭
(大連市氣象信息中心,大連 116001)
氣象災害是自然災害之一,主要包括風暴、臺風、干旱、高溫、山洪、雷暴、沙塵暴、颶風、龍卷風、冰雹和暴雨(雪)等。中國是世界上自然災害發生頻繁、災害種類多,造成損失嚴重的少數國家之一。
大連地處遼東半島南端、黃海與渤海交界處,三面環海,海域經濟非常發達。但是發達的海域經濟受大風的影響非常大。由于海上大風浪造成的海事僅次于碰撞事故,死亡人數和直接經濟損失十分慘重;同時大連近幾年城市的快速發展導致城市配套設施進度不夠,夏季極端性臺風暴雨導致城市部分路段內澇嚴重。針對大連地區大風和降水兩種氣象要素基于GIS進行氣象業務分析和應用,為科學合理的氣象服務提供決策依據[1,2]。
大連氣象局最原始數據來自氣象觀測站點觀測數據,觀測數據分為國家站和業務站觀測數據。觀測數據通過網絡自動上傳到省局CIMISS平臺,大連本地通過腳本程序回調到本地Oracle數據庫進行存儲。存儲方式以站點和觀測時間為主鍵進行索引,將對應的溫、壓、濕、風等氣象要素逐條記錄進行存儲。業務應用則是根據數據庫存儲記錄分別提取風和降水要素進行加工再處理,比如根據風等級信號提取對應的風速和風向,根據數據庫小時雨量反演出近1 h、3 h、6 h、24 h雨量進行應用。
預警信號是根據本地服務制作的氣象預警信號拆分為預警編號、預警信號名稱、預警等級、預警類型、預警內容、發布單位、制作時間和發布時間和發布狀態等字段進行記錄存儲。信息中心氣象大數據模塊實時同步預警信號到本地庫進行GIS顯示[3,4]。
數據傳輸主要根據數據要素的原地址和目的地址進行構造。處理過程都是根據Python腳本后臺定時運行實現數據動態傳輸。數據都是在本地建立的Oracle數據庫進行存儲。ORACLE數據庫系統是美國ORACLE公司(甲骨文)提供的以分布式數據庫為核心的一組軟件產品,是目前最流行的客戶/服務器(CLIENT/SERVER)或B/S體系結構的數據庫之一。比如SilverStream就是基于數據庫的一種中間件。ORACLE數據庫是目前世界上使用最為廣泛的數據庫管理系統,作為一個通用的數據庫系統,它具有完整的數據管理功能;作為一個關系數據庫,它是一個完備關系的產品;作為分布式數據庫,它實現了分布式處理功能。只要在一種機型上學習了ORACLE知識,便能在各種類型的機器上使用。
大風要素主要結合船舶自動識別系統(簡稱AIS系統)進行業務應用。根據業務需要,信息中心通過船訊網提供的API接口來獲取船舶的經緯度和MMSI船舶的唯一區別號及其他相關船舶數據后,基于GIS實時顯示渤海和黃海海域的船舶航行情況。
同時根據制作單位發布的預警信號,由于此次大風報警模塊只是涉及到大風信息,所以主要從后臺提取涉及的渤海、黃海字樣內容的大風預警信號即可,其中預警信號數據庫表內容結構如表1所示。

表1 預警信號
大風模塊還利用了GIS緩沖區技術,利用arcmap加載黃渤海圖層和大連市最新底圖圖層,黃渤海距離大連市陸地底圖1 km建立緩沖區。最后發布該緩沖區服務,發布服務具體方式:在信息中心地圖服務的Arcmap軟件中依次選擇文件-共享-服務-發布服務即可。設置緩存區的目的是為了根據大風預警信號發布情況判斷船舶是否靠岸或離岸從而進行決策服務。
本地數據庫信息主要通過Python腳本在LINUX系統下定時運行獲取,獲取方式通過Python訪問省局CIMISS接口獲取雨量數據:
wsdl="http://10.86.121.55/cimiss-web/services/ws?wsdl"
params='userId=訪問cimiss賬號
&pwd=訪問cimiss密碼
&interfaceId=getSurfEleInRegionByTimeRange
&dataCode=SURF_CHN_OTHER_MIN
&adminCodes=210200
&elements=Datetime,Station_Id_C,PRE_1h
&timeRange=['+queryTimeStart+','+queryTimeEnd+']
&dataFormat=json'
client =suds.client.Client(wsdl)
result =client.service.callAPI_to_serializedStr(params)
result_data=json.loads(result)
通過result_data數據集進行2次結果查詢,相減獲取5 min雨量值(例如 08:30近5 min雨量值=08:30小時雨量值-08:25小時雨量值)進行入庫即可,入庫利用Python腳本,主要實現代碼:
conn=cx_Oracle.connect('賬號/密碼@IP/mydb')
cursor=conn.cursor()
sql="insert into AWS_PRECP(INSTIME,IIIII,OBSTIME,PRECP_HOUR,PRECP_5MIN)"
cursor.execute(sql)
conn.commit():
cursor.close()
conn.close()
降水要素根據本地Oracle數據庫國家站AWS_AUTO表和區域站AWS_REG表進行2次加工AWS_PRECP_HOURS表,原始表為5 min加密所有氣象要素表,加工表為僅包含降水要素的小時雨量表。加工處理腳本利用Python腳本后臺定時操作,核心處理代碼sql語句如下:
獲取雨量語句:sql="select sum(to_number(PRECP)) from AWS_REG where IIIII='" + sta + "' AND to_char(OBSTIME,'mi')='00' AND PRECP is not null AND OBSTIME=to_date('" + queryTimeEndxh + "','yyyy-MM-dd hh24:mi:ss')"
插入雨量語句:sql=("insert into AWS_PRECP_HOURS(INSTIME,IIIII,SNAME,OBSTIME,PRECPXH") values ('"+x.IIIII+"','"+x.NAME+"',TO_DATE('"+x.OBSTIME+"','YYYY-MM-DD HH24:MI:SS'),'"+pdhourrain(x.PREXH) +"')")
根據插入sql語句也可以得知,相關小時雨量數據表結構如表2所示。

表2 小時雨量
大風數據應用在大連市氣象局業務內網中氣象大數據模塊下海洋氣象欄目的船舶信息功能中。主要涉及到船舶類型:客滾船、漁船和其他類型;預警海域:渤海、黃海;預警信息:展示黃海和渤海中發布的大風預警信號級別和發布時間;船舶列表:以表格展示船舶名稱、類型、海域和狀態信息。該功能設有一鍵啟動預警信號按鈕,當該功能啟用時,右面展示區實時結合預警信號基于GIS顯示大連地區渤海和黃海海域船舶運行情況,并以不同預警信號對海域對應顏色進行展示,為氣象服務和決策提供技術支持。
降水數據應用主要針對雨量報警模塊,雨量報警主要根據各觀測站觀測的所有小時雨量值結合大連市當地地質災害易發區和洪澇點進行實時報警提醒功能。該功能同時結合調研省局報警平臺和氣象臺雨量報警模式進行改進設計:
1)時間默認從當前時間前1日08:00開始;
2)報警閾值:近1/3/6/12/24 h,累計降水水量進行閾值設置,單位:mm;
3)站點按照類型設定(國家站、區域站);
4)區劃:全區、大連、金州、旅順、長興島、普蘭店、瓦房店、莊河、長海;
5)雨量展示形式:表格、圖形、GIS。
主要報警形式根據設置的小時雨量閾值基于GIS動態提示和聲音報警。
業務應用自2018年11月開始在大連市氣象局業務內網使用,運行穩定,各項運行指標良好。該系統結合GIS地圖實現雨量報警和大風報警,并充分利用圖層疊加實時顯示氣象要素和其他行業數據的疊加分析應用,利用氣象要素報警和其他行業數據信息挖掘,滿足基本業務需求。借助雨量和大風與其他行業數據分析,擴展更多氣象要素和行業數據信息,加深數據融合,為以后業務研究提供支持和基礎。同時希望更多學者參與研究氣象數據和行業數據之間信息,為社會提供更好的氣象專業服務。