王洪祥,趙 蕾,孫悅程,曹 旭
(大連市氣象信息中心,大連 116001)
氣象災(zāi)害是自然災(zāi)害之一,主要包括風(fēng)暴、臺(tái)風(fēng)、干旱、高溫、山洪、雷暴、沙塵暴、颶風(fēng)、龍卷風(fēng)、冰雹和暴雨(雪)等。中國(guó)是世界上自然災(zāi)害發(fā)生頻繁、災(zāi)害種類(lèi)多,造成損失嚴(yán)重的少數(shù)國(guó)家之一。
大連地處遼東半島南端、黃海與渤海交界處,三面環(huán)海,海域經(jīng)濟(jì)非常發(fā)達(dá)。但是發(fā)達(dá)的海域經(jīng)濟(jì)受大風(fēng)的影響非常大。由于海上大風(fēng)浪造成的海事僅次于碰撞事故,死亡人數(shù)和直接經(jīng)濟(jì)損失十分慘重;同時(shí)大連近幾年城市的快速發(fā)展導(dǎo)致城市配套設(shè)施進(jìn)度不夠,夏季極端性臺(tái)風(fēng)暴雨導(dǎo)致城市部分路段內(nèi)澇嚴(yán)重。針對(duì)大連地區(qū)大風(fēng)和降水兩種氣象要素基于GIS進(jìn)行氣象業(yè)務(wù)分析和應(yīng)用,為科學(xué)合理的氣象服務(wù)提供決策依據(jù)[1,2]。
大連氣象局最原始數(shù)據(jù)來(lái)自氣象觀(guān)測(cè)站點(diǎn)觀(guān)測(cè)數(shù)據(jù),觀(guān)測(cè)數(shù)據(jù)分為國(guó)家站和業(yè)務(wù)站觀(guān)測(cè)數(shù)據(jù)。觀(guān)測(cè)數(shù)據(jù)通過(guò)網(wǎng)絡(luò)自動(dòng)上傳到省局CIMISS平臺(tái),大連本地通過(guò)腳本程序回調(diào)到本地Oracle數(shù)據(jù)庫(kù)進(jìn)行存儲(chǔ)。存儲(chǔ)方式以站點(diǎn)和觀(guān)測(cè)時(shí)間為主鍵進(jìn)行索引,將對(duì)應(yīng)的溫、壓、濕、風(fēng)等氣象要素逐條記錄進(jìn)行存儲(chǔ)。業(yè)務(wù)應(yīng)用則是根據(jù)數(shù)據(jù)庫(kù)存儲(chǔ)記錄分別提取風(fēng)和降水要素進(jìn)行加工再處理,比如根據(jù)風(fēng)等級(jí)信號(hào)提取對(duì)應(yīng)的風(fēng)速和風(fēng)向,根據(jù)數(shù)據(jù)庫(kù)小時(shí)雨量反演出近1 h、3 h、6 h、24 h雨量進(jìn)行應(yīng)用。
預(yù)警信號(hào)是根據(jù)本地服務(wù)制作的氣象預(yù)警信號(hào)拆分為預(yù)警編號(hào)、預(yù)警信號(hào)名稱(chēng)、預(yù)警等級(jí)、預(yù)警類(lèi)型、預(yù)警內(nèi)容、發(fā)布單位、制作時(shí)間和發(fā)布時(shí)間和發(fā)布狀態(tài)等字段進(jìn)行記錄存儲(chǔ)。信息中心氣象大數(shù)據(jù)模塊實(shí)時(shí)同步預(yù)警信號(hào)到本地庫(kù)進(jìn)行GIS顯示[3,4]。
數(shù)據(jù)傳輸主要根據(jù)數(shù)據(jù)要素的原地址和目的地址進(jìn)行構(gòu)造。處理過(guò)程都是根據(jù)Python腳本后臺(tái)定時(shí)運(yùn)行實(shí)現(xiàn)數(shù)據(jù)動(dòng)態(tài)傳輸。數(shù)據(jù)都是在本地建立的Oracle數(shù)據(jù)庫(kù)進(jìn)行存儲(chǔ)。ORACLE數(shù)據(jù)庫(kù)系統(tǒng)是美國(guó)ORACLE公司(甲骨文)提供的以分布式數(shù)據(jù)庫(kù)為核心的一組軟件產(chǎn)品,是目前最流行的客戶(hù)/服務(wù)器(CLIENT/SERVER)或B/S體系結(jié)構(gòu)的數(shù)據(jù)庫(kù)之一。比如SilverStream就是基于數(shù)據(jù)庫(kù)的一種中間件。ORACLE數(shù)據(jù)庫(kù)是目前世界上使用最為廣泛的數(shù)據(jù)庫(kù)管理系統(tǒng),作為一個(gè)通用的數(shù)據(jù)庫(kù)系統(tǒng),它具有完整的數(shù)據(jù)管理功能;作為一個(gè)關(guān)系數(shù)據(jù)庫(kù),它是一個(gè)完備關(guān)系的產(chǎn)品;作為分布式數(shù)據(jù)庫(kù),它實(shí)現(xiàn)了分布式處理功能。只要在一種機(jī)型上學(xué)習(xí)了ORACLE知識(shí),便能在各種類(lèi)型的機(jī)器上使用。
大風(fēng)要素主要結(jié)合船舶自動(dòng)識(shí)別系統(tǒng)(簡(jiǎn)稱(chēng)AIS系統(tǒng))進(jìn)行業(yè)務(wù)應(yīng)用。根據(jù)業(yè)務(wù)需要,信息中心通過(guò)船訊網(wǎng)提供的API接口來(lái)獲取船舶的經(jīng)緯度和MMSI船舶的唯一區(qū)別號(hào)及其他相關(guān)船舶數(shù)據(jù)后,基于GIS實(shí)時(shí)顯示渤海和黃海海域的船舶航行情況。
同時(shí)根據(jù)制作單位發(fā)布的預(yù)警信號(hào),由于此次大風(fēng)報(bào)警模塊只是涉及到大風(fēng)信息,所以主要從后臺(tái)提取涉及的渤海、黃海字樣內(nèi)容的大風(fēng)預(yù)警信號(hào)即可,其中預(yù)警信號(hào)數(shù)據(jù)庫(kù)表內(nèi)容結(jié)構(gòu)如表1所示。
表1 預(yù)警信號(hào)
大風(fēng)模塊還利用了GIS緩沖區(qū)技術(shù),利用arcmap加載黃渤海圖層和大連市最新底圖圖層,黃渤海距離大連市陸地底圖1 km建立緩沖區(qū)。最后發(fā)布該緩沖區(qū)服務(wù),發(fā)布服務(wù)具體方式:在信息中心地圖服務(wù)的Arcmap軟件中依次選擇文件-共享-服務(wù)-發(fā)布服務(wù)即可。設(shè)置緩存區(qū)的目的是為了根據(jù)大風(fēng)預(yù)警信號(hào)發(fā)布情況判斷船舶是否靠岸或離岸從而進(jìn)行決策服務(wù)。
本地?cái)?shù)據(jù)庫(kù)信息主要通過(guò)Python腳本在LINUX系統(tǒng)下定時(shí)運(yùn)行獲取,獲取方式通過(guò)Python訪(fǎng)問(wèn)省局CIMISS接口獲取雨量數(shù)據(jù):
wsdl="http://10.86.121.55/cimiss-web/services/ws?wsdl"
params='userId=訪(fǎng)問(wèn)cimiss賬號(hào)
&pwd=訪(fǎng)問(wèn)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)
通過(guò)result_data數(shù)據(jù)集進(jìn)行2次結(jié)果查詢(xún),相減獲取5 min雨量值(例如 08:30近5 min雨量值=08:30小時(shí)雨量值-08:25小時(shí)雨量值)進(jìn)行入庫(kù)即可,入庫(kù)利用Python腳本,主要實(shí)現(xiàn)代碼:
conn=cx_Oracle.connect('賬號(hào)/密碼@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()
降水要素根據(jù)本地Oracle數(shù)據(jù)庫(kù)國(guó)家站AWS_AUTO表和區(qū)域站AWS_REG表進(jìn)行2次加工AWS_PRECP_HOURS表,原始表為5 min加密所有氣象要素表,加工表為僅包含降水要素的小時(shí)雨量表。加工處理腳本利用Python腳本后臺(tái)定時(shí)操作,核心處理代碼sql語(yǔ)句如下:
獲取雨量語(yǔ)句: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')"
插入雨量語(yǔ)句: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) +"')")
根據(jù)插入sql語(yǔ)句也可以得知,相關(guān)小時(shí)雨量數(shù)據(jù)表結(jié)構(gòu)如表2所示。
表2 小時(shí)雨量
大風(fēng)數(shù)據(jù)應(yīng)用在大連市氣象局業(yè)務(wù)內(nèi)網(wǎng)中氣象大數(shù)據(jù)模塊下海洋氣象欄目的船舶信息功能中。主要涉及到船舶類(lèi)型:客滾船、漁船和其他類(lèi)型;預(yù)警海域:渤海、黃海;預(yù)警信息:展示黃海和渤海中發(fā)布的大風(fēng)預(yù)警信號(hào)級(jí)別和發(fā)布時(shí)間;船舶列表:以表格展示船舶名稱(chēng)、類(lèi)型、海域和狀態(tài)信息。該功能設(shè)有一鍵啟動(dòng)預(yù)警信號(hào)按鈕,當(dāng)該功能啟用時(shí),右面展示區(qū)實(shí)時(shí)結(jié)合預(yù)警信號(hào)基于GIS顯示大連地區(qū)渤海和黃海海域船舶運(yùn)行情況,并以不同預(yù)警信號(hào)對(duì)海域?qū)?yīng)顏色進(jìn)行展示,為氣象服務(wù)和決策提供技術(shù)支持。
降水?dāng)?shù)據(jù)應(yīng)用主要針對(duì)雨量報(bào)警模塊,雨量報(bào)警主要根據(jù)各觀(guān)測(cè)站觀(guān)測(cè)的所有小時(shí)雨量值結(jié)合大連市當(dāng)?shù)氐刭|(zhì)災(zāi)害易發(fā)區(qū)和洪澇點(diǎn)進(jìn)行實(shí)時(shí)報(bào)警提醒功能。該功能同時(shí)結(jié)合調(diào)研省局報(bào)警平臺(tái)和氣象臺(tái)雨量報(bào)警模式進(jìn)行改進(jìn)設(shè)計(jì):
1)時(shí)間默認(rèn)從當(dāng)前時(shí)間前1日08:00開(kāi)始;
2)報(bào)警閾值:近1/3/6/12/24 h,累計(jì)降水水量進(jìn)行閾值設(shè)置,單位:mm;
3)站點(diǎn)按照類(lèi)型設(shè)定(國(guó)家站、區(qū)域站);
4)區(qū)劃:全區(qū)、大連、金州、旅順、長(zhǎng)興島、普蘭店、瓦房店、莊河、長(zhǎng)海;
5)雨量展示形式:表格、圖形、GIS。
主要報(bào)警形式根據(jù)設(shè)置的小時(shí)雨量閾值基于GIS動(dòng)態(tài)提示和聲音報(bào)警。
業(yè)務(wù)應(yīng)用自2018年11月開(kāi)始在大連市氣象局業(yè)務(wù)內(nèi)網(wǎng)使用,運(yùn)行穩(wěn)定,各項(xiàng)運(yùn)行指標(biāo)良好。該系統(tǒng)結(jié)合GIS地圖實(shí)現(xiàn)雨量報(bào)警和大風(fēng)報(bào)警,并充分利用圖層疊加實(shí)時(shí)顯示氣象要素和其他行業(yè)數(shù)據(jù)的疊加分析應(yīng)用,利用氣象要素報(bào)警和其他行業(yè)數(shù)據(jù)信息挖掘,滿(mǎn)足基本業(yè)務(wù)需求。借助雨量和大風(fēng)與其他行業(yè)數(shù)據(jù)分析,擴(kuò)展更多氣象要素和行業(yè)數(shù)據(jù)信息,加深數(shù)據(jù)融合,為以后業(yè)務(wù)研究提供支持和基礎(chǔ)。同時(shí)希望更多學(xué)者參與研究氣象數(shù)據(jù)和行業(yè)數(shù)據(jù)之間信息,為社會(huì)提供更好的氣象專(zhuān)業(yè)服務(wù)。