氣象數(shù)據(jù)接口設(shè)計在運(yùn)動會的應(yīng)用

時間:2022-05-10 10:54:32

導(dǎo)語:氣象數(shù)據(jù)接口設(shè)計在運(yùn)動會的應(yīng)用一文來源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

氣象數(shù)據(jù)接口設(shè)計在運(yùn)動會的應(yīng)用

摘要:基于氣象統(tǒng)一數(shù)據(jù)環(huán)境,闡述將冬季運(yùn)動會需要的地面資料和輻射資料融合存儲,冬季運(yùn)動會氣象服務(wù)保障的統(tǒng)一服務(wù)接口,為各個賽區(qū)業(yè)務(wù)系統(tǒng)提供準(zhǔn)確、高效的氣象數(shù)據(jù)。

關(guān)鍵詞:冬運(yùn)會,氣象數(shù)據(jù),接口設(shè)計,系統(tǒng)融合

第十四屆全國冬季運(yùn)動會(十四冬)定于內(nèi)蒙古自治區(qū)舉辦,是2022年北京冬奧會前在中國舉辦的規(guī)模最大、專業(yè)性最強(qiáng)、水平最高的冬季運(yùn)動會,受到了各界高度重視。“十四冬”比賽項(xiàng)目與氣象條件緊密關(guān)聯(lián),氣象保障工作好壞是冬運(yùn)會成功的關(guān)鍵因素之一。“十四冬”主要應(yīng)用的數(shù)據(jù)有雪溫、輻射、氣溫、降水、風(fēng)速風(fēng)向、氣壓等觀測數(shù)據(jù),這些資料存儲在氣象數(shù)據(jù)環(huán)境的不同表中,在賽事氣象保障活動需要調(diào)用多張表,加大了數(shù)據(jù)獲取的繁雜度,為了更好地提供快捷、高效、準(zhǔn)確的數(shù)據(jù)支撐,文章從實(shí)際需求出發(fā),利用Python語言對氣象要素存儲進(jìn)行整合,基于氣象統(tǒng)一服務(wù)接口(MUSIC)框架,為十四冬氣象服務(wù)保障量身定制數(shù)據(jù)統(tǒng)一服務(wù)接口。

1總體設(shè)計

(1)氣象統(tǒng)一數(shù)據(jù)環(huán)境。全國綜合氣象信息共享平臺(CIMISS),是一套覆蓋全區(qū)的,集數(shù)據(jù)收發(fā)、質(zhì)量控制、產(chǎn)品生成、存儲管理于一體的業(yè)務(wù)系統(tǒng)[1],存儲的資料包括地面、高空、海洋、輻射、農(nóng)氣、數(shù)值模式、大氣成分、氣象災(zāi)害、雷達(dá)、衛(wèi)星、服務(wù)產(chǎn)品等氣象觀測數(shù)據(jù)和氣象服務(wù)產(chǎn)品[2]。“十四冬”數(shù)據(jù)環(huán)境就是依托“CIMISS”數(shù)據(jù)環(huán)境設(shè)計的。(2)氣象統(tǒng)一服務(wù)接口。氣象數(shù)據(jù)統(tǒng)一服務(wù)接口(MUSIC),是基于氣象統(tǒng)一數(shù)據(jù)環(huán)境(CIMISS),面向氣象業(yè)務(wù)和科研,提供全國統(tǒng)一、標(biāo)準(zhǔn)、豐富的數(shù)據(jù)訪問服務(wù)接口,實(shí)現(xiàn)全區(qū)各級業(yè)務(wù)系統(tǒng)唯一權(quán)威的數(shù)據(jù)服務(wù)[3]。“十四冬”統(tǒng)一服務(wù)接口是基于CIMISS和MUSIC標(biāo)準(zhǔn)規(guī)范設(shè)計和實(shí)現(xiàn)的,設(shè)計思路是,首先從氣象觀測站的數(shù)據(jù)庫提取比賽場地的觀測數(shù)據(jù),然后按照觀測時間對不同數(shù)據(jù)表提取的數(shù)據(jù)融合并存儲至CIMISS數(shù)據(jù)環(huán)境,按照MUSIC標(biāo)準(zhǔn)規(guī)范定義資料代碼、服務(wù)接口實(shí)現(xiàn)服務(wù)接口的供用戶使用。主要包括數(shù)據(jù)抽取、數(shù)據(jù)融合、數(shù)據(jù)寫入和接口配置和四部分,總體流程如圖1所示。

2實(shí)現(xiàn)方法

2.1數(shù)據(jù)提取

“十四冬”賽事主要應(yīng)用的氣象數(shù)據(jù)存儲在中心站數(shù)據(jù)庫的DATA_DMGD、DATA_DM5D、DATA_DMRD這三張表,本文基于Python語言[4]的pyodbc類庫連接數(shù)據(jù)庫并調(diào)用內(nèi)置函數(shù)按照時間和臺站信息讀取所需數(shù)據(jù),分別存儲至RS_DM5D、RS_DMRD和RS_DMGD變量,關(guān)鍵代碼如下。conn=pyodbc.connect('DRIVER={SQLServer};SERVER=ip;port=1433;DATABASE=database;UID=user;PWD=Password')cursor=conn.cursor()cursor.execute(sqlstr)rs=cursor.fetchall()

2.2數(shù)據(jù)融合

Python字典(dict)是一種無序可擴(kuò)展的數(shù)據(jù)結(jié)構(gòu),以鍵值對(key-value)的形式存儲。文中先定義了一個鍵值對為要素名稱-要素值的字典dic1,用來存放氣象要素數(shù)據(jù),然后在定義一個鍵值對為站號_時間-dic1的字典dic2,用來存放某一個臺站某一時次的dic1。數(shù)據(jù)融合思路:讀取RS_DM5D變量,將對應(yīng)要素名稱作為鍵名和要素值作為鍵值添加到字典dic1,遍歷完成后將站號_時間作為鍵名,dic1作為鍵值存儲至字典dic2;然后分別遍歷RS_DMRD和RS_DMGD變量,以變量中的站號和時間拼接成“站號_時間”格式作為字典dic2的鍵名,當(dāng)匹配成功,則將氣象要素數(shù)據(jù)添加至dic1字典中,實(shí)現(xiàn)數(shù)據(jù)融合。

2.3數(shù)據(jù)寫入

CIMISS存儲規(guī)范要求,新建的數(shù)據(jù)表需要有四級編碼(D_DATA_ID)、入庫時間(D_RYMDHM)、緯度(V05001)、經(jīng)度(V06001)、海拔高度(V07001)等管理字段,四級編碼按照國家局指導(dǎo)編訂為A.0099.0001.S001,入庫時間數(shù)據(jù)入庫的當(dāng)前系統(tǒng)時間,經(jīng)緯度和海拔高度則根據(jù)站號信息從臺站信息表讀取,然后遍歷字典dic2,讀取字典中各個要素信息,生成待入庫的SQL語句,CIMISS數(shù)據(jù)環(huán)境使用的數(shù)據(jù)庫為ORACLE數(shù)據(jù)庫,在寫入之前先判斷該記錄在庫中是否存在,不存在則調(diào)用cx_Oracle類庫實(shí)現(xiàn)數(shù)據(jù)寫入,關(guān)鍵代碼如下:tns=cx_Oracle.makedsn(ip,1521,databasename)db=cx_Oracle.connect(user,password,tns)cursor=db.cursor()cursor.execute(sql,values)db.commit()

2.4接口配置與

(1)元數(shù)據(jù)信息配置。冬運(yùn)會氣象服務(wù)保障接口的元數(shù)據(jù)信息表包括DMIN_DATA_ID_DEFINE、DMIN_DATA_ID_TABLE和DMIN_DATA_TABLE_FIELD三張表。DMIN_DATA_ID_DEFINE存儲的是資料四級編碼及資料中文名稱,DMIN_DATA_ID_TABLE存儲的是資料四級編碼和數(shù)據(jù)庫表名,DMIN_DATA_TABLE_FIELD存儲的是數(shù)據(jù)表名和數(shù)據(jù)表要素字段信息。將表名和表結(jié)構(gòu)字段信息添加至以上三張元數(shù)據(jù)表即完成元數(shù)據(jù)信息配置。(2)服務(wù)接口配置與。登錄MUSIC管理平臺,配置冬運(yùn)會氣象服務(wù)保障接口,包括基本信息和讀取接口2部分[5,6]。基本信息包括服務(wù)代碼、資料名稱、站網(wǎng)信息、數(shù)據(jù)源等;的讀取接口主要有按時間檢索地面數(shù)據(jù)要素、按時間站號檢索地面數(shù)據(jù)要素、按時間段檢索地面數(shù)據(jù)要素、按時間段臺站檢索地面數(shù)據(jù)要素、按時間段統(tǒng)計地面數(shù)據(jù)要素、按時間段站號統(tǒng)計地面數(shù)據(jù)要素、按時間段地區(qū)統(tǒng)計地面數(shù)據(jù)要素等接口,配置頁面如圖2所示,保存即完成接口。

3結(jié)語

“十四冬”氣象數(shù)據(jù)統(tǒng)一服務(wù)接口自2019年以來,數(shù)據(jù)服務(wù)的下載量為35.26GB,下載次數(shù)5400余萬次,主要服務(wù)的業(yè)務(wù)系統(tǒng)有冬運(yùn)會保障服務(wù)系統(tǒng)、呼倫貝爾氣象微信統(tǒng)一平臺、“十四冬”實(shí)況觀測展示平臺、內(nèi)蒙古氣象臺預(yù)報檢驗(yàn)平臺、內(nèi)蒙古公共氣象服務(wù)網(wǎng),接口調(diào)取數(shù)據(jù)及時、準(zhǔn)確、快捷,為冬運(yùn)會各項(xiàng)賽事預(yù)報和實(shí)況業(yè)務(wù)提供高效的基礎(chǔ)數(shù)據(jù)支撐。

參考文獻(xiàn)

[1]熊安元,趙芳,王穎,張小纓,高峰,鄧?yán)?譚小華,馬強(qiáng).全國綜合氣象信息共享系統(tǒng)的設(shè)計與實(shí)現(xiàn)[J].應(yīng)用氣象學(xué)報,2015,26(04):500-512.

[2]李志鵬,胡佳軍,楊立苑,李顯風(fēng),鄧衛(wèi)華.基于CIMISS的氣象數(shù)據(jù)處理時效監(jiān)視系統(tǒng)設(shè)計與實(shí)現(xiàn)[J].氣象與減災(zāi)研究,2016,39(04):309-313.

[3]DB41∕T1809-2019,氣象數(shù)據(jù)統(tǒng)一服務(wù)接口(MUSIC)規(guī)范[S].2019.

[4]吳伶琳,方巍.Python語言程序設(shè)計基礎(chǔ)[M].遼寧:大連理工大學(xué)出版社,2019.

[5]國家氣象信息中心.接口配置的命名規(guī)則[M].2012.

[6]國家氣象信息中心.MUSIC管理員手冊[M].2015.

作者:王家樂 單位:內(nèi)蒙古氣象信息中心