999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

應用MUSIC 開發北海區域自動氣象站采集系統

2016-12-14 09:39:12盧紹宗
安徽農業科學 2016年32期
關鍵詞:數據庫系統

魯 玲,盧紹宗

(廣西北海市氣象局,廣西北海 536000)

?

應用MUSIC 開發北海區域自動氣象站采集系統

魯 玲,盧紹宗

(廣西北海市氣象局,廣西北海 536000)

介紹了北海區域自動氣象站采集系統的功能設計、數據庫和數據表設計以及系統的實現,并列舉了該系統的幾個關鍵技術。該采集系統采用C#開發,通過氣象數據統一服務接口MUSIC調用全國綜合氣象信息共享系統CIMISS的地面資料,更新本地基礎氣象數據庫的自動站采集數據表,為北海市氣象現代化服務平臺提供可靠、準確的數據。通過業務應用證實,系統運行穩定、性能好。該系統對推進全國綜合氣象信息共享系統CIMISS業務化、實現業務系統與CIMISS的對接起到了示范作用,具有推廣價值。

MUSIC;自動氣象站采集系統;CIMISS;C#

隨著北海市氣象事業的不斷發展,建設北海市氣象現代化服務平臺被列為北海市氣象局的重點開發項目。該項目以提升北海市氣象局現代化建設的科技內涵、增強氣象部門業務服務能力、提高業務服務人員工作效率為目的,充分融合和利用現有業務系統,建成統一信息采集、統一數據存貯、統一加工分析處理、統一產品制作、統一信息發布的集約化、智能化的綜合氣象業務服務平臺。

針對中國氣象局推進全國綜合氣象信息共享系統(China Integrated Meteorological Information Service System,CIMISS)[1]業務化應用的要求,北海市氣象現代化服務平臺主動完成了與CIMISS的對接。數據庫系統是北海市氣象現代化服務平臺的基礎,為各種專業業務系統提供可靠、準確的數據。北海市氣象現代化服務平臺的數據庫系統采用SQL SERVER 2014管理,在當地創建基礎氣象數據庫、預警數據庫、預報數據庫和系統數據庫等[2]。北海區域自動氣象站采集系統是北海市氣象現代化服務平臺的一個后臺數據處理軟件,該采集系統通過氣象數據統一服務接口(Meteorological Unified Service Interface Community,MUSIC)調用CIMISS的北海區域地面資料,更新當地基礎氣象數據庫的自動站采集數據表和系統數據庫的采集時間表,為服務平臺的數據監控和實況信息展示模塊提供數據支撐。筆者介紹了該系統的功能設計、數據庫和數據表設計以及系統的實現,并列舉了該系統的幾個關鍵技術。

1 系統設計

1.1 系統功能設計 CIMISS是一套覆蓋全國的集數據收集與分發、質量控制與產品生成、存儲管理、共享服務于一體的國家和省級2級氣象信息共享業務平臺,以滿足目前和未來現代氣象業務、科研和服務對氣象信息的需求,發展繼“9210工程”以來的新一代氣象信息系統為目標,為氣象部門及相關行業用戶提供綜合氣象探測資料和氣象產品的共享服務[3]。氣象數據統一服務接口(MUSIC)基于國省統一的數據環境CIMISS,面向氣象業務和科研,提供全國統一、標準、豐富的數據訪問服務和應用編程接口(API),為國、省、地、縣各級應用系統提供唯一權威的數據接入服務。MUSIC針對氣象應用系統,提供多種不同的服務方式,包括客戶端調用服務、web service、REST服務和腳本服務。其中web service一般使用成熟的第三方工程實現,在CIMISS系統中使用axis2來實現。

北海區域自動氣象站采集系統開發應用了MUSIC,采用MUSIC提供的web service方式,從服務器獲取wsdl服務,通過API接口賬號使用callAPI_to_serializedStr方法,設置參數并調用接口getSurfEleByTimeAndStaID,按時間、站號檢索地面數據要素,獲取北海區域的地面逐小時資料和地面分鐘降水資料,返回JSON格式的序列化字符串。經過進一步處理,實現自動氣象站觀測數據本地入庫存儲。

1.2 數據庫與數據表設計 為了對氣象要素進行統一規范的存儲和服務,保證氣象數據的一致性和準確性,基礎氣象數據庫(db_bh_qx)和系統數據庫(db_bh_xt)的設計參考標準《QX/T 102-2009 氣象資料分類與編碼》和《QX/T 133-2011 氣象要素分類與編碼》[4-5]。建庫后,在基礎氣象數據庫(db_bh_qx)中創建自動站采集數據表(MsgMediumSmallScale)、自動站采集數據臨時表(MsgMediumSmallScaleTemp)和北海自動站站點信息表(SmallScaleStation)等數據表。在系統數據庫(db_bh_xt)中創建系統采集時間表(Collect_Time)[6]。其中,自動站采集數據表(MsgMediumSmallScale)用于存儲采集到的自動氣象站觀測要素等數據。

1.3 系統運行環境 系統開發平臺為Microsoft Visual Studio 2010,編程使用C#語言,運行于Microsoft Windows Server 2012 R2 Standard,數據庫管理軟件為SQL SERVER 2014。

2 系統實現

2.1 自定義類的設計 系統開發時設計了處理類AutoStation和AutoStationEntity,工具類DBHelperTool,配置類dbConfig和IniFile,通用類DBHelper和Loghelper。在工具類中添加WebsUtil類和Ws類。類的設計及相關說明如表1所示。

表1 類的設計及相關說明

在AutoStationEntity類中定義11個變量(stationId、stationName、stationLongitude、stationLatitude、stationAltitude、stationObserveElement、stationCity、stationCounty、stationDrainageArea、stationJB、stationCollect),然后在該類中自定義11個屬性,分別用來表示自動站的站點編號、站點名稱、站點經度、站點緯度、站點海拔、站點要素、站點所屬市、站點所屬縣、站點流域、站點級別和站點是否采集標志格式。 在AutoStation類的selectStation方法中首先實例化一個Hashtable對象hashtable,接著讀取北海自動站站點信息表(SmallScaleStation)的列值,將站點編號列值轉換為string類型后賦值給stationid;然后實例化AutoStationEntity類的一個對象autoStation,并根據讀取到的列值分別給對象autoStation定義的站點編號、站點名稱等11個屬性賦值;向hashtable中添加元素,該元素的鍵為stationid,值為autoStation;最后返回hashtable。

2.2 自動氣象站數據采集流程 OperationAutoStationData 是AutoStation類的一個方法,用于處理自動站數據,其工作流程如圖1所示。

2.3 項目配置 在配置文件CollectPath.ini中添加基礎氣象數據庫(db_bh_qx)和系統數據庫(db_bh_xt)的配置信息,包括它們的數據源IP地址、數據庫名稱、登錄用戶名及密碼等。通過dbConfig類可以讀取這些配置信息。在項目中添加app.config文件,在appSettings配置節添加鍵serverIP并設置IP地址,通過調用ws類從該指定IP地址的服務器上即可獲取wsdl服務。

2.4 系統界面 系統運行后,首先創建哈希表stationTable并初始化為null,用于存放區域自動氣象站站點信息。新建自動站處理類AutoStation對象,調用Createinstance方法創建實例并賦值給該對象[7]。連接系統數據庫(db_bh_xt)表Collect_Time,使用GetLasterCollectTime方法獲取自動氣象站最新采集時間,若該采集時間不為Null,則將最新采集時間賦值給日期控件。系統界面如圖2所示。

圖1 區域自動氣象站數據采集流程Fig.1 Collection process of regional automatic weather station data

圖2 北海區域自動氣象站采集系統界面Fig.2 The interface of collection system of Beihai regional automatic weather stations

通過系統界面的日期控件可以設置采集時間,點擊“修改”按鈕可將系統數據庫(db_bh_xt)表Collect_Time的采集時間更改為日期控件設定的時間值。點擊“啟動采集”按鈕,若stationTable表行數為0,則使用AutoStation類的selectStation方法從表SmallScaleStation獲取北海區域自動站站點信息。然后按采集時間和自動站站號通過MUSIC獲取相應的要素數據,將數據進行處理后保存到基礎氣象數據庫(db_bh_qx)的自動站采集數據表(MsgMediumSmallScale)和自動站采集數據臨時表(MsgMediumSmallScaleTemp),并更新系統采集時間表(Collect_Time)的采集時間。在實際運行中,將北海區域自動氣象站采集系統可執行文件寫進批處理文件,并設置該批處理文件每隔15 min自動運行1次。通過對基礎氣象數據庫(db_bh_qx)的訪問,在北海市氣象現代化服務平臺上可以查詢到北海區域自動站的實況數據(圖3)。

3 系統的關鍵技術

3.1 數據契約的使用 數據契約(DataContract)是服務器端和客戶端之間要傳送的自定義數據類型。一旦聲明一個類型為DataContract,該類型就可以被序列化在服務器端和客戶端之間傳送。根據實際情況,需要把每一個要傳送的成員聲明為DataMember。系統開發時,在WebsUtil類定義數據契約SK和Rain, 區域自動氣象站數據采集處理過程要用到這2種數據契約。在數據契約SK和Rain中將相關的要素字段代碼聲明為DataMember。根據MUSIC中的要素代碼定義,在數據契約SK中聲明Station_Id_C、Datetime、WIN_D_Avg_2mi、WIN_S_Avg_2mi、WIN_D_Avg_10mi等53個DataMember,在數據契約Rain中聲明Station_Id_C、Datetime、PRE等6個DataMember。

圖3 北海區域自動站實況數據查詢Fig.3 Live data query of Beihai regional automatic weather stations

3.2 JavaScriptSerializer類的使用 JavaScriptSerializer類位于System.Web.Script.Serialization命名空間下。客戶端的序列化與反序列化能力由JavaScriptSerializer類的Serialize和Deserialize 2個方法提供。通過web service方式調用方法callAPI_to_serializedStr,并將獲得的JSON字符串轉換為List類型對象,反序列化后的字符串經過處理再轉換為自動站采集數據表(MsgMediumSmallScale)的列值。程序關鍵代碼如下:

param = "userId=BENN_XXXX_XXXXXX" /*1.1 用戶名&密碼*/

+ "&pwd=XXXXXX"

+ "&interfaceId=getSurfEleByTimeAndStaID" /* 1.2 接口ID */

+ "&dataCode=SURF_CHN_MUL_HOR" /* 1.3 必選參數(按需加可選參數) */

//資料:中國地面逐小時

+ "&elements=Station_Id_C,Datetime,WIN_D_Avg_2mi,WIN_S_Avg_2mi,WIN_D_Avg_10mi,WIN_S_Avg_10mi, WIN_D_S_Max,WIN_S_Max,WIN_S_Max_OTime,WIN_D_INST,WIN_S_INST,WIN_D_INST_Max,WIN_S_Inst_Max,WIN_S_INST_Max_OTime,PRE_1h,TEM,TEM_Max,TEM_Max_OTime,TEM_Min,TEM_Min_OTime,RHU,RHU_Min,RHU_Min_OTIME,VAP,DPT,PRS,PRS_Max,PRS_Max_OTime,PRS_Min,PRS_Min_OTime,LGST,LGST_Max,LGST_Max_OTime,LGST_Min,LGST_Min_OTime,GST,GST_Max,GST_Max_Otime,GST_Min,GST_Min_OTime,GST_5cm,GST_10cm,GST_15cm,GST_20cm,GST_40Cm,GST_80cm,GST_160cm,GST_320cm,EVP_Big,PRS_Sea,VIS_HOR_10MI,VIS_Min,VIS_Min_OTime,Lat,Lon,Alti" //檢索要素:站號、站名、小時降水、氣壓、相對濕度、能見度、2 min平均風速、2 min風向等

+ "×=" + datetime.ToString("yyyyMMddHH0000") //檢索時間

+ "&staIds=" + strStationId

+ "&orderby=Station_ID_C:ASC" //排序:按照站號從小到大

+ "&limitCnt=300" //返回最多記錄數

+ "&dataFormat=json"; /* 1.4 序列化格式 */

……

WebsUtil websUtil = new WebsUtil();

string rstData = websUtil.getWsString("callAPI_to_serializedStr", param);

int index = rstData.IndexOf(""DS"");

rstData = rstData.Substring(index + 5, rstData.Length - index - 6);

JavaScriptSerializer js = new JavaScriptSerializer();

List sklist = js.Deserialize(rstData, typeof(List)) as List;

3.3 SqlHelper類的使用 SqlHelper類位于System.Data.SqlClient命名空間下,是對數據庫操作方法進行封裝的類。SqlHelper類的ExecuteNonQuery方法用于執行不返回任何行或值的命令,如非查詢類SQL語句。SqlHelper類的ExecuteReader方法執行查詢類的SQL語句或存儲過程,用于返回SqlDataReader對象,該對象包含由某一命令返回的結果集。ExecuteScalar方法通過已有的數據庫連接執行SqlCommand,返回值是該命令返回的第1行的第1列。

在方法selectStation、GetLasterCollectTime、OperationAutoStationData中使用了SqlHelper類。部分程序代碼如下:

String strsql = "SELECT [StationID],[StationName],[Province],[City],[County],[Longitude],[Latitude],[Altitude],[StationModel],[ObserveElement],[DrainageArea],[Tributaries],[StartTime],[Jb] FROM [SmallScaleStation] ";

SqlDataReader sqlreader = SqlHelper.ExecuteReader(conn, CommandType.Text, strsql);

3.4 方法重載 方法重載是指調用同一方法名,但各方法中參數的數據類型、個數或順序不同。只要類中有2個以上的同名方法,且使用的參數類型、個數或順序不同,調用時編譯器就可以判斷在哪種情況下調用哪種方法[7]。在設計DBHelper類的方法ExecuteNonQuery時用到了方法重載。程序關鍵代碼如下:

public static int ExecuteNonQuery(SqlConnection connection, CommandType commandType, string commandText)

// 執行指定數據庫連接對象的命令

{

return ExecuteNonQuery(connection, commandType, commandText, (SqlParameter[])null);

}

4 結語

北海區域自動氣象站采集系統自2016年5月在北海市氣象局進行業務試運行以來,能正常采集北海區域41個自動站的地面逐小時資料和地面分鐘降水資料,系統運行穩定、性能好,為北海市氣象現代化服務平臺的數據監控和實況信息展示模塊提供了數據支撐。該系統對推進全國綜合氣象信息共享系統CIMISS業務化、實現業務系統與CIMISS的對接起到了示范作用,具有推廣價值。

[1] 熊安元,趙芳,王穎,等.全國綜合氣象信息共享系統的設計與實現[J].應用氣象學報,2015,26(4):500-512.

[2] 李集明,王國復.氣象數據庫系統總體設計綜述[J].氣象科技,2007,35(Sl):1-5.

[3] 王旻燕,鄧莉,趙芳,等.CIMISS中氣象衛星數據存儲和服務模型[J].安徽農業科學,2012,40(8):4785-4789.

[4] 國家氣象信息中心.氣象資料分類與編碼:QX/T 102—2009[S].北京:氣象出版社,2009.

[5] 國家氣象信息中心.氣象要素分類與編碼:QX/T 133—2011[S].北京:氣象出版社,2011.

[6] 于平,李漢彬,段海花,等.市級自動氣象站數據庫顯示系統的設計與實現[J].廣東氣象,2008,30(6):57-58.

[7] 王小科.C#開發實戰寶典[M].北京:清華大學出版社,2012:159.

Development of Collection System of Beihai Regional Automatic Weather Stations Using MUSIC

LU Ling,LU Shao-zong

(Beihai Meteorological Bureau, Beihai ,Guangxi 536000)

This paper introduced the function design, the design of database and data table and system realization of collection system of Beihai regional automatic weather stations, and enumerated several key technologies of the system.The collection system was implemented by C# programming language and got the surface data of China integrated meteorological information service system using meteorological unified service interface community,updated the collection data table of automatic stations of local fundamental meteorological database,which provided accurate and reliable data for Beihai meteorological modernization service platform. The operational application indicated the system performed stably and had good characteristics. The system had a demonstration for promoting operational application of CIMISS and achieving the integration of business systems and CIMISS in Guangxi. The system had promotion value.

MUSIC;Collection system of automatic weather stations;CIMISS;C#

北海市科學技術局項目(北科合201503004,北科合20160 3001)。

魯玲(1974- ),女,廣西北海人,工程師,從事氣象信息化建設工作。

2016-09-05

S 163+.7

A

0517-6611(2016)32-0179-05

猜你喜歡
數據庫系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
主站蜘蛛池模板: 色综合中文字幕| 国产欧美视频在线| 亚洲色大成网站www国产| 国产 在线视频无码| www.狠狠| 久久久久人妻一区精品色奶水| 在线观看91精品国产剧情免费| 久久国产精品电影| 美女啪啪无遮挡| 天天摸夜夜操| 精品人妻无码中字系列| 青青国产成人免费精品视频| 国产玖玖视频| 日韩国产无码一区| 中文字幕va| 亚洲欧美成人综合| 91视频区| 亚洲视频在线观看免费视频| 欧洲高清无码在线| 亚洲国模精品一区| 毛片久久久| 99热国产这里只有精品无卡顿" | 久久精品这里只有国产中文精品| 欧洲极品无码一区二区三区| 中文字幕天无码久久精品视频免费 | 国产麻豆精品在线观看| 2021精品国产自在现线看| 精品福利国产| 91精品国产一区自在线拍| 久久久受www免费人成| 日韩高清一区 | 2018日日摸夜夜添狠狠躁| 精品一区二区三区四区五区| 在线观看的黄网| A级全黄试看30分钟小视频| 免费看a毛片| 999精品在线视频| 国产美女一级毛片| 国产视频一区二区在线观看| 亚洲成人播放| 亚洲自偷自拍另类小说| 亚洲一区二区黄色| 亚洲男女在线| 97国产在线播放| 国产欧美视频一区二区三区| 久久青草精品一区二区三区| 国产9191精品免费观看| 亚洲永久精品ww47国产| 免费va国产在线观看| 无码福利视频| 国产成人综合亚洲欧美在| a毛片在线播放| 久久精品国产精品青草app| 国产无码高清视频不卡| 成人亚洲视频| 亚洲精品色AV无码看| 亚洲av日韩av制服丝袜| 日韩少妇激情一区二区| 欧美另类精品一区二区三区| 色呦呦手机在线精品| 欧美影院久久| 亚洲精品视频网| 无码区日韩专区免费系列| 91精品啪在线观看国产| 99热免费在线| 国产在线观看一区二区三区| 波多野吉衣一区二区三区av| 原味小视频在线www国产| 精品一区二区三区自慰喷水| 免费无遮挡AV| 男女性色大片免费网站| 天天综合网色| 成人在线综合| 一级一级一片免费| 欧美一级夜夜爽www| 亚洲女同欧美在线| 99无码中文字幕视频| 国产精品第| 欧美国产日韩另类| 强乱中文字幕在线播放不卡| 好吊色国产欧美日韩免费观看| 国产在线精品99一区不卡|