譚嘯++彭浴++鄭宇洋
摘要 為進一步提升氣象服務能力和水平,拓展氣象信息發布手段和發布渠道,使社會公眾能夠便捷地獲取準確豐富的氣象信息。本文通過運用株洲區域自動氣象站實時數據資料,并針對株洲微氣象微信公眾平臺的服務后臺進行系統設計。結果表明,運用上述系統可以迅速、高效地實現對實時氣象信息的獲取、查詢統計、預警等功能。
關鍵詞 氣象預警;信息發布;公眾服務;微信平臺;設計;實現
中圖分類號 P409 文獻標識碼 A 文章編號 1007-5739(2017)19-0216-02
近年來,強降雨導致城市內澇、山體滑坡等氣象災害頻繁發生,造成嚴重的經濟損失和社會影響,成為各界普遍關注的問題。株洲市內均勻地分布了195個區域自動氣象站監測點,覆蓋了全市的所有鄉鎮街道社區。由于區域自動氣象站每5 min向服務器端傳送一次數據,其實時降雨量監測數據對于氣象災害預警有著重要的意義。微信作為目前覆蓋范圍最廣、使用人群最多的手機軟件,在氣象公共服務中也得到了廣泛應用[1]。通過手機微信平臺的實時信息發布渠道,實現區域自動氣象站強降雨信息的實時獲取、查詢統計、預警等功能,可以給政府和人民群眾提供最新、及時、最準確的氣象資料,啟動相應的應急預案,減輕突發惡劣天氣對公眾安全造成的影響[2]。
1 系統總體設計
系統以株洲市氣象臺最新預報結論和城區195個區域自動站實時雨量數據為數據基礎,發布實時天氣預報結論、區域自動氣象站數據,推送氣象災害預警消息。
1.1 系統目標
項目主要需要解決以下3個問題:一是株洲地區1周天氣預報查詢。二是區域自動氣象站實時雨量數據查詢。預警平臺的數據由區域自動氣象站負責數據的傳輸與采集,監控中心負責對數據的接收、入庫處理,并通過微信平臺查詢區域自動氣象站降雨實況。三是依據區域自動氣象站實時降雨量和降雨強度推送強降雨預警信息。當區域自動氣象站實時降雨量達到預警閾值時,使用微信平臺編輯模式的自定義規則,在開發模式下開發接口編寫相關程序,向有關人員推送實時氣象預警信息,提供氣象服務的文本、語音及圖文信息[3]。
1.2 系統特點
該預警系統具有以下特點:一是該系統實時監測降雨數據,用戶可以在第一時間掌握實時降雨的準確信息;二是通過微信公眾服務號,提供了新的信息發布渠道;三是氣象預警狀態提示和自動推送預警信息使用戶可以快速了解緊急情況,提升了工作效率。
1.3 系統工作原理
系統使用降雨實時監測數據為預警依據。降雨實時監測數據來自株洲區域自動氣象站,自動氣象站向服務器端傳送數據的頻率是1次/5 min,系統對降雨數據實時監測,每小時從數據服務器統計小時累積雨量,監測時段分為過去1、3、6、12、24 h,并動態監測最新降雨實況。當預報未來24 h有大到暴雨以上降水過程或城區自動雨量站出現20 mm/h以上的降水時,微信平臺自動向用戶推送相關預警信息。
1.4 開發流程
微信(wx)與微信服務器(wx_server)通信獲取相關的數據,公眾號菜單的鏈接實際上是通過微信服務器跳轉到站點服務器(site_server)完成[4]。具體開發流程如下。
1.4.1 申請注冊微信號,登錄并配置服務器。這里的服務器指的是個人Web站點的服務器。填寫服務器地址(URL)、Token和EncodingAESKey。
1.4.2 服務器地址的有效性驗證。對于開發者,要求URL有效性驗證成功后才能接入生效。其后,開發者針對用戶每次向公眾號發送消息或者產生自定義菜單等,可以依據自身業務邏輯進行回復消息等響應。
1.4.3 獲取access_token。公眾號的全局唯一接口調用憑據就是access_token,各接口的調用時都需使用它。
1.4.4 程序編寫。根據系統設計進行程序的編寫。
1.5 技術選擇
站點服務器端的Web站點采用的是LNMP(Linux+Nginx+MySQL+PHP)架構,基于氣象局已有的數據資源接口,使用微信平臺的消息模版功能,實現消息推送功能。后臺管理系統采用B/S架構。信息發布以XML消息格式組裝,及時響應用戶的請求,實現天氣查詢、數據查詢、預警信息發送等相關功能。
2 系統功能設計與實現
系統由微信用戶客戶端、騰訊微信第三方服務端和氣象局微信服務器端組成。主要任務是連接接口的基礎網絡、部署服務器、設計信息接口,優化信息接口和氣象業務系統之間的信息交互。系統總體結構如圖1所示。
氣象微信服務端系統工作方式主要包括2種方式:一是信息推送。氣象服務端主動下行消息給微信第三方服務器端,通過微信下發給手機用戶。二是信息交互。手機用戶主動發送相關請求,消息上行到微信第三方服務器端,微信服務器端轉發到氣象局相關服務器端,氣象服務器端作出響應,并給予微信服務器端響應,然后通過微信服務器下行到手機用戶。
2.1 天氣預報信息查詢
此模塊通過后臺自動更新信息,用戶可以隨時查詢株洲市24 h天氣預報及未來1周的趨勢預報。還可以查詢空氣質量預報,并提供國內主要城市和湖南省內城市的天氣預報內容可供查詢。
2.2 實時降雨功能查詢
降雨量查詢功能為用戶查詢到周邊區域自動站的實時降雨量信息,用戶可以查看附近區域自動站站點實時降雨量情況,相關氣象要素來源于區域自動站最近1 h的整點小時數據。通過創建VIEW類型的菜單,點擊按鈕跳轉到數據顯示頁面。獲取access_token的2種方式如下:一是https請求方,即GEThttps://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET。二是http請求方式,即POST(請使用https協議)https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN。
編寫代碼將菜單通過post方式到wx_server,關注公眾號之后就可以看到菜單按鈕。點擊菜單(view類型)按鈕即可跳轉到相應的頁面。數據的添加:195個區域自動站的降雨數據每隔5 min添加到數據庫。數據的展示:訪問菜單鏈接(頁面),程序查詢數據庫通過http返回響應數據,查詢結果如圖2所示。
2.3 強降雨預警推送
預警功能為用戶提供短時臨近氣象預報服務。當預報員預報未來24 h有大到暴雨以上降水過程或區域自動氣象站雨量出現20 mm/h以上的降水時,即通過微信平臺推送氣象預警信息。天氣預警為用戶提供天氣預警信息,用戶可以查看到當前期間是否有預警信息。通常情況下,天氣預警為空消息,只是在有預警信號產生時,才會發布氣象預警,提醒用戶注意天氣狀況。預警信息內容為氣象預警類別、預警區域、實時天氣狀況等。預警消息的推送使用特定內容模板主動向用戶發送消息。首先在微信后臺中設置消息模板然后編寫代碼。當最新降雨量數據添加到數據庫的同時,根據設置的閾值來判斷是否推送給用戶。預警消息使用微信的模板消息功能完成,微信的模板消息功能是在需要對用戶發送服務通知時,例如刷卡提醒、服務預約成功通知等,針對某一個用戶進行提醒。但由于對服務器能力和并發量要求較高、群發消息應用數量多,通過提升服務器性能、修改模板消息調用邏輯、增加后臺并發量、縮短循環時間,能實現定向群發功能,消息發送成功后會對微信用戶進行聲音提醒,效果明顯,且群發消息速度快,提升了預警信息的可用性、及時性和有效性[5]。推送結果如圖3所示。
3 結語
本文將區域自動氣象站降雨的數據結果應用于株洲氣象微信公眾號中,并通過微信公眾平臺實現了預警方式的多元化,且更具時效性。微信預警消息推送服務使得有人民群眾可以快速了解緊急情況,提升了工作效率,提高了株洲地區氣象災害監測預警預報的水平。
4 參考文獻
[1] 湯靜,陳偉,肖衛國.微信平臺在氣象服務中的應用[J].現代農業科技,2016(4):342-343.
[2] 李志良,尹清華,王旭生,等.赤峰氣象微信公眾平臺建設初探[J].內蒙古農業科技,2014(4):66-68.
[3] 徐瓊芳,聶菊榮,馮海旭.基于微信平臺的氣象預警信息發布系統[J].氣象科技,2014,42(6):1019-1022.
[4] 盧榮瓊,龔勝眉.長沙微農直通微信的應用現狀及完善設想[J].湖南農業科學,2016(6):82-85.
[5] 高亭亭,孫偉忠,朱平.廣州天氣微信的創新設計[J].廣東氣象,2014,36(6):60-62.