• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      城鎮(zhèn)天氣預報采集系統(tǒng)的設計與實現(xiàn)

      2018-06-02 08:50魯玲
      電腦知識與技術(shù) 2018年10期
      關(guān)鍵詞:北海市數(shù)據(jù)表天氣預報

      摘要:介紹了城鎮(zhèn)天氣預報采集系統(tǒng)的功能設計、數(shù)據(jù)庫和數(shù)據(jù)表設計以及系統(tǒng)的實現(xiàn),并列舉了該系統(tǒng)設計的幾個關(guān)鍵技術(shù)。該采集系統(tǒng)采用C#開發(fā),通過廣西氣象寬帶網(wǎng)采集城鎮(zhèn)天氣預報數(shù)據(jù),更新當?shù)鼗A氣象數(shù)據(jù)庫的數(shù)據(jù)表,為北海市氣象現(xiàn)代化服務平臺提供預報數(shù)據(jù)。通過業(yè)務應用證實,系統(tǒng)運行穩(wěn)定、性能好。

      關(guān)鍵詞:城鎮(zhèn)天氣預報采集系統(tǒng);氣象現(xiàn)代化;C#

      中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2018)10-0075-03

      Abstract: This paper introduced the function design, the design of database and data table and system implementation of collection system of urban weather forecast and enumerated several key technologies of the system. The collection system was implemented by C#. The system got the data of urban weather forecast through Guangxi meteorological broadband network, updated the data table of local fundamental meteorological database, which provided weather forecast data for Beihai meteorological modernization service platform. The operational application indicated the system performed stably and had good characteristics.

      Key words: Collection System of Urban Weather Forecast; modernization of meteorology; C#

      北海市氣象現(xiàn)代化服務平臺是北海市氣象局業(yè)務單位使用的一個綜合業(yè)務處理平臺。該平臺具有氣象數(shù)據(jù)信息采集、監(jiān)控、查詢、展示、統(tǒng)計等功能,將各種氣象實況數(shù)據(jù)、氣象預報數(shù)據(jù)等與GIS技術(shù)結(jié)合優(yōu)化,為北海市氣象局日常業(yè)務提供技術(shù)輔助。北海市氣象現(xiàn)代化服務平臺集預報制作、預警應急、天氣監(jiān)測、分析指揮等功能為一體,充分融合和利用現(xiàn)有業(yè)務系統(tǒng),建成統(tǒng)一信息采集、統(tǒng)一數(shù)據(jù)存貯、統(tǒng)一加工分析處理、統(tǒng)一產(chǎn)品制作、統(tǒng)一信息發(fā)布的集約化、智能化的綜合氣象業(yè)務服務平臺。[1]

      城鎮(zhèn)天氣預報采集系統(tǒng)是北海市氣象現(xiàn)代化服務平臺的一個后臺數(shù)據(jù)處理軟件。該采集系統(tǒng)通過廣西氣象寬帶網(wǎng)獲取指定目錄下的城鎮(zhèn)天氣預報文件列表,對相關(guān)文件進行解碼入庫,更新當?shù)財?shù)據(jù)庫的數(shù)據(jù)信息,為服務平臺的數(shù)據(jù)監(jiān)控和城鎮(zhèn)預報信息展示等模塊提供數(shù)據(jù)支撐。該文介紹了該系統(tǒng)的功能設計、數(shù)據(jù)庫和數(shù)據(jù)表設計以及系統(tǒng)的實現(xiàn),并列舉了系統(tǒng)開發(fā)使用的關(guān)鍵技術(shù)。

      1 系統(tǒng)設計

      1.1 城鎮(zhèn)天氣預報文件簡介

      城鎮(zhèn)天氣預報文件命名遵循《國內(nèi)氣象數(shù)據(jù)交換文件命名規(guī)范》,具體文件名為:

      Z_SEVP_C_CCCC_YYYYMMDDhhmmss_P_RFFC-SPCC-YYYYMMDDhhmm-FFFxx.TXT。

      城鎮(zhèn)天氣預報文件為ASCII文件,每個文件可以由一份或多份公報組成,每份公報的格式如下:

      “ZCZC

      FSCI50 CCCC YYGGgg (BBB)

      產(chǎn)品描述

      產(chǎn)品代碼、預報的起報時間年月日時(世界時)

      總站數(shù)

      (第一個站):站號,經(jīng)度(度), 緯度(度), 海拔高度,時效個數(shù)(時效可擴充),預報產(chǎn)品個數(shù)(預報要素可擴充)

      12 預報結(jié)果 ………

      24 預報結(jié)果……………………

      ………………………………………

      (第n個站):站號,經(jīng)度(度), 緯度(度), 海拔高度,時效個數(shù)(時效可擴充)、預報產(chǎn)品個數(shù)(預報要素可擴充)

      12 預報結(jié)果 ………

      24 預報結(jié)果……………………

      ………………………………………

      NNNN”

      城鎮(zhèn)天氣預報的預報要素主要應包含最高溫度、最低溫度、風向、風速和天氣現(xiàn)象五個要素。[2]

      1.2 系統(tǒng)功能設計

      城鎮(zhèn)天氣預報采集系統(tǒng)通過廣西氣象寬帶網(wǎng)定時掃描FTP服務器的相關(guān)目錄,獲取北海市指定站點在指定采集時間之后生成的城鎮(zhèn)天氣預報文件名列表,對相關(guān)文件進行解碼入庫,更新當?shù)鼗A氣象數(shù)據(jù)庫的城鎮(zhèn)預報采集數(shù)據(jù)表、城鎮(zhèn)預報采集數(shù)據(jù)臨時表和系統(tǒng)數(shù)據(jù)庫的采集時間表。此外,系統(tǒng)記錄運行日志信息。

      1.3 數(shù)據(jù)庫與數(shù)據(jù)表設計

      為了對氣象要素進行統(tǒng)一規(guī)范的存儲和服務,保證氣象數(shù)據(jù)的一致性和準確性,基礎氣象數(shù)據(jù)庫(db_bh_qx)和系統(tǒng)數(shù)據(jù)庫(db_bh_xt)的設計參考標準《QX/T 102-2009 氣象資料分類與編碼》、《QX/T 133-2011 氣象要素分類與編碼》。[3-4]建庫后,在基礎氣象數(shù)據(jù)庫(db_bh_qx)中創(chuàng)建城鎮(zhèn)預報采集數(shù)據(jù)表(ForecastInfo)、城鎮(zhèn)預報采集數(shù)據(jù)臨時表(ForecastInfoTemp)和特殊服務站點信息表(SpecialServiceStation)等數(shù)據(jù)表。在系統(tǒng)數(shù)據(jù)庫(db_bh_xt)中創(chuàng)建系統(tǒng)采集時間表(Collect_Time)等數(shù)據(jù)表。其中,城鎮(zhèn)預報采集數(shù)據(jù)表(ForecastInfo)和城鎮(zhèn)預報采集數(shù)據(jù)臨時表(ForecastInfoTemp)的表結(jié)構(gòu)是相同的,在這2個表中創(chuàng)建StationID、DateChar、TimeChar、Ntimes、AreaName、Title、NElement、Temperature、Humid、Wind、WindD、Press、Rain、CloudTotal、CloudLow、Weather、Visible、MaxHumid、MinHumid、MaxTemp、MinTemp、Rain24、Rain12、CloudTotal12、CloudLow12、Weather12、Wind12、WindD12、Change、StationName、Longitude、Latitude、Altitude、City、County等字段,分別表示區(qū)站號、預報起報的日期、時次、時效、地市編碼、產(chǎn)品描述、預報要素個數(shù)、溫度、濕度、風力、風向、氣壓、降水量、總云量、低云量、天氣現(xiàn)象、是否可見、最大濕度、最小濕度、最高溫度、最低溫度、24小時降水量、12小時降水量、12小時總云量、12小時低云量、12小時天氣現(xiàn)象、12小時風力、12小時風向、是否修改重新采集、站點名稱、經(jīng)度、緯度、測站高度、地市、區(qū)縣等。城鎮(zhèn)預報采集數(shù)據(jù)表(ForecastInfo)用于存儲所有采集到的城鎮(zhèn)天氣預報數(shù)據(jù),城鎮(zhèn)預報采集數(shù)據(jù)臨時表(ForecastInfoTemp)用于存儲采集到的最近3個月的城鎮(zhèn)天氣預報數(shù)據(jù)。氣象現(xiàn)代化服務平臺城鎮(zhèn)預報信息展示模塊需要從城鎮(zhèn)預報采集數(shù)據(jù)臨時表(ForecastInfoTemp)查詢數(shù)據(jù)。

      在數(shù)據(jù)庫管理系統(tǒng)創(chuàng)建及調(diào)度作業(yè)定時維護城鎮(zhèn)預報采集數(shù)據(jù)臨時表(ForecastInfoTemp)的數(shù)據(jù),以確保該表只存儲最近3個月的城鎮(zhèn)天氣預報數(shù)據(jù),有利于提高數(shù)據(jù)查詢效率,從而提高平臺性能。

      1.4 系統(tǒng)運行環(huán)境

      城鎮(zhèn)天氣預報采集系統(tǒng)運行于Microsoft Windows Server 2012 R2 Standard,開發(fā)平臺為Microsoft Visual Studio 2010,編程使用C#語言,數(shù)據(jù)庫管理軟件為SQL SERVER 2014。

      2 系統(tǒng)實現(xiàn)

      2.1 自定義類的設計

      通過對城鎮(zhèn)天氣預報采集系統(tǒng)進行合理的功能分解,系統(tǒng)開發(fā)時設計了處理類CityForecast,配置類dbConfig和IniFile,工具類DBHelperTool,通用類DBHelper和Loghelper。其中處理類CityForecast的設計及相關(guān)說明如表1所示。

      配置類dbConfig用于獲取系統(tǒng)配置文件的路徑及配置文件的有關(guān)信息,IniFile類用于讀取初始化文件。工具類DBHelperTool用于建立數(shù)據(jù)庫連接,通用類DBHelper用于執(zhí)行非查詢類SQL語句,Loghelper類用于記錄系統(tǒng)運行日志。

      2.2 城鎮(zhèn)天氣預報數(shù)據(jù)采集流程

      writeToDB 是CityForecast類的一個方法,用于實現(xiàn)解析報文及入庫功能,其工作流程如圖1所示。

      采集系統(tǒng)在對城鎮(zhèn)天氣預報文件進行處理時,將每行報文視為一個ArrayList集合類對象arrylist[],每個對象轉(zhuǎn)換成字符串后再進行分割,生成新的String類對象data。

      下面以城鎮(zhèn)天氣預報文件Z_SEVP_C_BFBH_20170923083000_P_RFFC-SPCC-201709231200-16812.TXT為例,說明城鎮(zhèn)預報數(shù)據(jù)采集流程。

      該文件的前5行內(nèi)容如下:

      “ZCZC

      FSCI50 BFBH 230830

      2017092312時北海市氣象臺預報產(chǎn)品

      SPCC 2017092312

      3”

      從第6行至第50行是北海市3個站點的站點信息和14個時效的預報結(jié)果。

      首先設置數(shù)組data,將每行報文轉(zhuǎn)換為字符串line,將每個字符串line再分割成21個數(shù)組data。若i=0,解析報文;i++(此時i=1),columnflag=false;若i=1,i++(此時i=2),從第2行獲取“BFBH”;若i=2,從第3行獲取預報的起報時間并轉(zhuǎn)換為世界時;i++(此時i=3)。若i=3,i++(此時i=4);若i=4,i++(此時i=5),columnflag=true;若i=5,且(columnflag == true && sequrFlag == false)從第6行獲取區(qū)站號信息和預報時效個數(shù)等信息,為做好報文質(zhì)量控制,此處要判斷本方法參數(shù)中是否包含本市區(qū)站號。若不包含,則i=i+squrecont+1(此時i=5+14+1=20,即轉(zhuǎn)到下一個區(qū)站號開始的那一行。若包含該區(qū)站號,則將第6行的相關(guān)數(shù)據(jù)賦值給longitude和latitude;將方法參數(shù)哈希表賦值給數(shù)組strstation,然后將數(shù)組元素再賦值給相關(guān)變量。i++(此時i=6),sequrFlag=true。若i>=6且sequrFlag=true,循環(huán)將該站點的所有預報時效的預報信息獲取。i=jisuanxunhuan=i+squrecount=6+14=20,sequrFlat=false。若i=20,處理第20個報文數(shù)組,即報文的第21行。若i=20,columnflag == true且sequrFlag == false,按獲取第1個站點預報信息的方法獲取第2個站點的所有預報時效的預報信息。i=jisuanxunhuan=i+squrecount=21+14=35,sequrFlat=false。若i=35, 則處理第35個報文數(shù)組,即報文的第36行。若i=35,columnflag == true 且sequrFlag == false,按獲取第1個站點預報信息的方法獲取第3個站點的所有預報時效的預報信息。

      為了保障系統(tǒng)的健壯性,在編寫程序時對可能產(chǎn)生異常的程序代碼進行監(jiān)控,使用異常處理語句“try…catch”處理異常,可以避免程序執(zhí)行時可能導致中斷的各種錯誤。

      2.3 項目配置

      在項目配置文件中添加城鎮(zhèn)天氣預報采集參數(shù),包括FTP服務器IP地址、城鎮(zhèn)天氣預報采集目錄、登錄用戶名及密碼等。此外,還要添加基礎氣象數(shù)據(jù)庫(db_bh_qx)和系統(tǒng)數(shù)據(jù)庫(db_bh_xt)的配置信息。通過dbConfig類可以讀取這些配置信息。

      2.4 系統(tǒng)界面

      城鎮(zhèn)天氣預報采集系統(tǒng)界面如圖2所示:

      在實際應用中,編寫一個批處理文件,該批處理文件代碼如下:

      “ taskkill /f /im 城鎮(zhèn)天氣預報采集系統(tǒng).exe

      start "" "D:\北海數(shù)據(jù)采集\城鎮(zhèn)天氣預報采集系統(tǒng).exe" ”

      在任務計劃程序中設置該批處理文件無限期每隔1小時自動運行一次,則可正常采集北海城鎮(zhèn)天氣預報數(shù)據(jù)。

      3 系統(tǒng)設計關(guān)鍵技術(shù)

      3.1 DotNetBar組件的使用

      DotNetBar組件提供了類似office 2007風格的用戶界面組件,相對于.NET默認界面更加美觀。在系統(tǒng)安裝該組件后,打開Visual Studio 2010軟件,鼠標右擊項目,選擇“屬性”,將目標框架更改為.NET Framework 4。鼠標右擊項目,選擇“添加引用”,在“.NET”中選擇組件“DevComponents.DotNetBar”,在程序代碼中添加using DevComponents.DotNetBar即可使用該組件。

      3.2 文件及I/O操作類的使用

      實現(xiàn)文件收集、文件處理需要對文件進行大量的操作。C#中與文件、文件夾及文件讀寫有關(guān)的類都位于System.IO命名空間下,該命名空間包含允許在數(shù)據(jù)流和文件上進行同步/異步讀取及寫入的類。系統(tǒng)開發(fā)時用到了System.IO命名空間中的Directory、FileInfo、FileStream、StreamReader等類。[5]

      3.3 ArrayList集合的使用

      ArrayList類位于System.Collections命名空間下,它可以動態(tài)地添加和刪除元素。ArrayList的容量可以根據(jù)需要自動擴充,提供添加、刪除和插入某一范圍元素的方法。[4]采集系統(tǒng)在對城鎮(zhèn)天氣預報文件進行處理時,將每行報文視為一個ArrayList集合類對象arrylist[],每個對象轉(zhuǎn)換成字符串后再進行分割,生成新的String類對象data。

      3.4 SqlHelper類的使用

      SqlHelper類位于System.Data.SqlClient命名空間下,是對數(shù)據(jù)庫操作方法進行封裝的類。它可以簡化我們重復寫的那些數(shù)據(jù)庫連接語句,使用者可以更方便地對數(shù)據(jù)庫進行操作。SqlHelper類主要有ExecuteReader、ExecuteScalar、ExecuteNonQuery等方法。

      系統(tǒng)開發(fā)時,在編寫GetLasterCollectTime、SaveToDB、writeToDB方法代碼中使用了SqlHelper類。

      4 結(jié)束語

      北海城鎮(zhèn)天氣預報采集系統(tǒng)界面簡潔友好,性能穩(wěn)定可靠。在北海市氣象局進行業(yè)務運行以來,能正常采集北海城鎮(zhèn)天氣預報數(shù)據(jù),為北海市氣象現(xiàn)代化服務平臺的數(shù)據(jù)監(jiān)控和城鎮(zhèn)預報信息展示模塊等提供了數(shù)據(jù)支撐。系統(tǒng)程序代碼易于管理和維護,對類似系統(tǒng)的開發(fā)有參考價值。

      參考文獻:

      [1] 魯玲, 盧紹宗. 應用MUSIC開發(fā)北海區(qū)域自動氣象站采集系統(tǒng)[J]. 安徽農(nóng)業(yè)科學, 2016, 44(32): 179-183.

      [2] 王萍, 唐兵兵, 耿晉玲. 精細化城鎮(zhèn)天氣預報的有效打包和傳輸[J]. 氣象研究與應用, 2009, 30(增刊1): 182-183.

      [3] 熊安元, 王伯民, 王穎, 等. 氣象資料分類與編碼[S]. 中華人民共和國氣象行業(yè)標準QX/T 102-2009. 北京: 氣象出版社, 2009.

      [4] 熊安元, 朱燕君, 王伯民, 等. 氣象要素分類與編碼[S]. 中華人民共和國氣象行業(yè)標準QX/T 133-2011. 北京: 氣象出版社, 2011.

      [5] 王小科, 賽奎春, 劉志銘, 等. C#開發(fā)實戰(zhàn)寶典[M]. 北京: 清華大學出版社, 2012: 134, 407, 408.

      猜你喜歡
      北海市數(shù)據(jù)表天氣預報
      北海市西村港跨海大橋主橋總體設計
      北海市馮家江水質(zhì)監(jiān)測與評價
      基于列控工程數(shù)據(jù)表建立線路拓撲關(guān)系的研究
      測不準的天氣預報
      天氣預報的前世今生
      中期天氣預報
      小小天氣預報員
      圖表
      基于VSL的動態(tài)數(shù)據(jù)表應用研究
      北海市少年兒童圖書館舉行“2013全國少年兒童閱讀年”啟動儀式
      河津市| 鹤壁市| 威海市| 汉沽区| 红安县| 清河县| 金山区| 柳江县| 海城市| 保山市| 海盐县| 攀枝花市| 安新县| 义乌市| 石棉县| 临泽县| 周口市| 白河县| 桦甸市| 高邮市| 石狮市| 鹿邑县| 龙江县| 宜春市| 吉首市| 武鸣县| 德昌县| 增城市| 蓬安县| 正安县| 高州市| 阳春市| 湘阴县| 德保县| 武鸣县| 枣强县| 保亭| 兴文县| 瑞安市| 龙游县| 洞口县|