楊妍辰,姜皓嚴(yán),李明聰
(天津市東麗區(qū)氣象局 天津300300)
近年來天津地區(qū)暴雨、冰雹、雷電、大風(fēng)等氣象災(zāi)害呈增多趨勢(shì),給社會(huì)經(jīng)濟(jì)發(fā)展和人民生命財(cái)產(chǎn)帶來嚴(yán)重威脅。災(zāi)害發(fā)生后,氣象災(zāi)情收集工作便成了政府救災(zāi)部門及時(shí)了解受災(zāi)情況、緊急部署救災(zāi)任務(wù)的重要保障;在組織防災(zāi)、減災(zāi)、救災(zāi)的決策中,對(duì)氣象災(zāi)害信息準(zhǔn)確度的要求越來越高[1]。目前災(zāi)情收集上報(bào)工作所面臨的最大難點(diǎn)是災(zāi)情數(shù)據(jù)報(bào)送遲滯,因時(shí)效性影響了氣象信息瞬息變化的準(zhǔn)確性。另外,實(shí)地調(diào)查收集氣象災(zāi)情的能力不足[1],災(zāi)情的收集很大程度上依賴于基層氣象信息員對(duì)災(zāi)情信息的上報(bào),所以設(shè)計(jì)開發(fā)一種適用于基層氣象信息員的便捷手機(jī)災(zāi)情直報(bào)系統(tǒng)是很有必要的。
隨著新媒體移動(dòng)互聯(lián)網(wǎng)時(shí)代的飛速發(fā)展,微信已經(jīng)逐漸滲入人們的日常生活,也正在成為各級(jí)政府和有關(guān)部門開展公共服務(wù)和社會(huì)管理的重要途徑。多地氣象部門也開始利用微信推進(jìn)發(fā)展多元化的氣象服務(wù),微信成為了天氣預(yù)報(bào)、預(yù)警信息等氣象服務(wù)信息發(fā)布和傳播的重要渠道[2-9]。謝坤等[10]對(duì)比了微信和微博等不同新媒體氣象服務(wù)手段的傳播效果,認(rèn)為微信適合在重大天氣前推送消息,準(zhǔn)確及時(shí),送達(dá)率高。楊玫等[11]指出,微信作為實(shí)名認(rèn)證平臺(tái),能保證其用戶的真實(shí)性和對(duì)公眾號(hào)粉絲的可控性。王建嬙等[12]、許瓊芳等[13]、鄧小良等[14]對(duì)微信公眾號(hào)在預(yù)報(bào)預(yù)警發(fā)布、實(shí)時(shí)氣象要素展示、旅游氣象等不同氣象服務(wù)方向起到的作用進(jìn)行了許多探索,但對(duì)微信在災(zāi)情調(diào)查上報(bào)方面的應(yīng)用仍較少有人涉足。因此,在移動(dòng)互聯(lián)網(wǎng)飛速發(fā)展的今天,有必要實(shí)現(xiàn)通過微信平臺(tái)開展東麗區(qū)災(zāi)情收集上報(bào)工作,實(shí)現(xiàn)災(zāi)情及時(shí)有效的收集傳遞,有利于提高氣象災(zāi)害防災(zāi)、減災(zāi)、救災(zāi)的服務(wù)效果。
天津市東麗區(qū)氣象局于2013年建立官方微信公眾號(hào),目前有 1萬余關(guān)注用戶,微信公眾號(hào)不僅可以向用戶群發(fā)布文本、聲音、圖像、視頻等信息,同時(shí)也可以實(shí)現(xiàn)用戶快速錄入災(zāi)情信息、拍攝反饋實(shí)景災(zāi)情圖片及地理位置信息等功能。東麗區(qū)氣象災(zāi)情收集系統(tǒng)旨在研究利用微信公眾平臺(tái)收集氣象災(zāi)情的技術(shù),并建立存儲(chǔ)災(zāi)情信息的數(shù)據(jù)庫(kù)及災(zāi)情信息管理后臺(tái),設(shè)計(jì)實(shí)現(xiàn)適用于氣象信息員手機(jī)端的災(zāi)情上報(bào)系統(tǒng),使災(zāi)情上報(bào)和收集工作實(shí)現(xiàn)及時(shí)化、自動(dòng)化、便捷化,也使信息處理和保存更為規(guī)范,其主要研究?jī)?nèi)容包括:①微信公眾平臺(tái)災(zāi)情收集上報(bào)功能的設(shè)計(jì)與實(shí)現(xiàn);②災(zāi)情信息存儲(chǔ)數(shù)據(jù)庫(kù)的建立;③災(zāi)情信息、信息員用戶信息管理后臺(tái)的開發(fā)。
手機(jī)端氣象災(zāi)情收集上報(bào)模塊搭建于微信公眾平臺(tái)東麗區(qū)氣象局官方公眾號(hào),該模塊利用 JS-SDK接口接入微信公眾平臺(tái)。信息員通過該模塊上報(bào)氣象災(zāi)情信息,上報(bào)的災(zāi)情信息及信息員用戶信息通過PHP頁(yè)面上傳至已建好的MySQL數(shù)據(jù)庫(kù)表單,上傳采用HTML5及Java語言設(shè)計(jì)實(shí)現(xiàn)。利用HTML5網(wǎng)頁(yè)開發(fā)技術(shù)完成信息管理后臺(tái)的建立,實(shí)現(xiàn)災(zāi)情信息及信息員用戶信息的讀取與管理。東麗區(qū)氣象災(zāi)情收集系統(tǒng)架構(gòu)見圖1。
氣象災(zāi)情收集上報(bào)模塊主要包含用戶管理和災(zāi)情錄入 2項(xiàng)功能。用戶管理功能針對(duì)災(zāi)情信息上報(bào)人員的身份信息進(jìn)行審核與認(rèn)證,保證災(zāi)情信息的可靠性;災(zāi)情錄入功能為災(zāi)情上報(bào)主體部分,信息員可通過簡(jiǎn)潔明了的界面完成災(zāi)情錄入與上報(bào)。設(shè)計(jì)實(shí)現(xiàn)在單一友好界面內(nèi)完成所有操作項(xiàng)目,錄入方式包括點(diǎn)選下拉列表、內(nèi)容輸入框以及動(dòng)作執(zhí)行按鈕3種交互方式。

圖1 東麗區(qū)氣象災(zāi)情收集系統(tǒng)架構(gòu)Fig.1 Architecture of meteorological disaster collection system of Dongli District
2.2.1 用戶管理設(shè)計(jì)
用戶管理子模塊主要用于災(zāi)情信息上報(bào)人員的身份信息認(rèn)證。災(zāi)情上報(bào)工作主要由氣象信息員、氣象應(yīng)急聯(lián)絡(luò)員、氣象志愿者完成,對(duì)于已經(jīng)備案的信息員、應(yīng)急聯(lián)絡(luò)員等用戶的信息可由氣象部門根據(jù)所轄區(qū)域各街道進(jìn)行統(tǒng)一規(guī)劃編制,并于該系統(tǒng)的信息管理后臺(tái)進(jìn)行錄入和審核;而針對(duì)自主申請(qǐng)的氣象志愿者,考慮到災(zāi)情信息是政府決策所需的重要信息資料,需對(duì)該類用戶進(jìn)行實(shí)名認(rèn)證,在提供相關(guān)證明資料后,才可被認(rèn)證為有效賬戶并接納其提供的災(zāi)情信息。
用戶管理子模塊要完成用戶信息登記,包括用戶名、用戶照片、所在區(qū)域、聯(lián)系電話等。利用用戶分組接口、設(shè)置用戶備注名接口等管理各類上報(bào)人員的身份信息。
2.2.2 災(zāi)情錄入設(shè)計(jì)
災(zāi)情錄入子模塊包含以下 5個(gè)部分:災(zāi)情類別、災(zāi)情發(fā)生地點(diǎn)、災(zāi)情發(fā)生時(shí)間、災(zāi)情照片、災(zāi)情描述。災(zāi)情類別根據(jù)國(guó)家災(zāi)情直報(bào)系統(tǒng)對(duì)災(zāi)情類別的劃分并結(jié)合天津地區(qū)具體情況進(jìn)行梳理分類,采用點(diǎn)選下拉列表形式進(jìn)行選擇,災(zāi)情類別包括:暴雨、大風(fēng)、雷電、冰雹、臺(tái)風(fēng)、干旱、大霧、霾、道路結(jié)冰、沙塵暴、高溫。災(zāi)害發(fā)生的時(shí)間默認(rèn)為當(dāng)前時(shí)刻,也可通過點(diǎn)選下拉列表進(jìn)行選擇。災(zāi)情發(fā)生地點(diǎn)信息利用獲取地理位置接口(wx.getLocation)實(shí)現(xiàn)收集,災(zāi)情發(fā)生地點(diǎn)也可通過用戶填寫完成,分為兩級(jí):第一級(jí)為固定區(qū)劃的各個(gè)街道,可通過點(diǎn)選下拉列表選擇;第二級(jí)為詳細(xì)地址,通過用戶輸入將災(zāi)情發(fā)生的地點(diǎn)精細(xì)化。當(dāng)普通微信用戶(FromUserName)向公眾賬號(hào)(ToUserName)發(fā)消息時(shí),微信服務(wù)器將 POST消息的 XML數(shù)據(jù)包推送至開發(fā)者填寫的 URL上,并利用微信 JS-SDK網(wǎng)頁(yè)開發(fā)工具包中的拍照功能或從手機(jī)相冊(cè)中選圖接口(wx.chooseImage)、上傳圖片接口(wx.uploadImage)實(shí)現(xiàn)災(zāi)情圖片的收集。災(zāi)情描述部分主要包含人員傷亡、財(cái)產(chǎn)損失、災(zāi)情影響,通過點(diǎn)選下拉列表和輸入填寫內(nèi)容完成。操作界面見圖2。

圖2 災(zāi)情信息錄入操作界面Fig.2 Operation interface of disaster information input
通過互聯(lián)網(wǎng)搭建災(zāi)情信息管理后臺(tái),該平臺(tái)可完成數(shù)據(jù)庫(kù)信息的讀取,包括信息員用戶信息及通過微信上傳的災(zāi)情信息,實(shí)現(xiàn)信息員管理、災(zāi)情上報(bào)信息管理、管理員用戶設(shè)置等功能。
2.3.1 災(zāi)情信息管理后臺(tái)的搭建
災(zāi)情信息管理后臺(tái)主要用于氣象工作人員掌握信息員用戶信息及其上報(bào)的災(zāi)情信息。后臺(tái)主要包含3個(gè)模塊:信息員管理、上報(bào)信息管理、管理員。信息員管理模塊包含信息員列表、新增信息員、信息員審核3個(gè)部分,信息員列表可以查看已通過審核的信息員信息。新增信息員頁(yè)面如圖3,可以實(shí)現(xiàn)新用戶的錄入和審核,上報(bào)信息管理模塊包含災(zāi)情上報(bào)信息和實(shí)況天氣信息;災(zāi)情上報(bào)信息頁(yè)面如圖4,可以查看災(zāi)情的詳細(xì)信息包括災(zāi)情的實(shí)況照片,實(shí)況天氣信息主要指信息員上傳的非災(zāi)害性天氣實(shí)況。氣象局工作人員在收到最新災(zāi)情信息后,可通過電話聯(lián)系氣象信息員或派工作人員前往受災(zāi)地點(diǎn)進(jìn)行災(zāi)情調(diào)查,對(duì)災(zāi)情信息進(jìn)一步審核及確認(rèn)。管理員模塊主要實(shí)現(xiàn)氣象局工作人員對(duì)該平臺(tái)的管理。

圖3 災(zāi)情信息管理后臺(tái)新增信息員界面Fig.3 Adding user information interface in management background

圖4 災(zāi)情信息管理后臺(tái)災(zāi)情上報(bào)信息界面Fig.4 Reporting disaster information interface in management background
后臺(tái)用戶登錄核心代碼如下:
require("../config.php");
session_start();
if(isset($_POST['password']))
{
$name=trim($_POST['name']);
$password=trim($_POST['password']);
$strSql="select * from ".$table_admin."
where name='".$name."' and pwd='".$password."'";
$result=mysql_query($strSql,$myconn);
while($row = mysql_fetch_array($result))
{
$_SESSION['name']=$row['name'];
$_SESSION['pwd']=$row['pwd'];
$home_url = 'messenger_list.php';
header('Location:'.$home_url);
die();
}
echo "<script>alert('密碼不正確,請(qǐng)檢查!');</script>";
}
else
{
if(isset($_SESSION['name'])&& $_SESSION['name']!="")
{
header('Location:messenger_list.php');
die();
}
}
2.3.2 數(shù)據(jù)庫(kù)存儲(chǔ)
本地?cái)?shù)據(jù)庫(kù)用于存儲(chǔ)通過微信公眾平臺(tái)JS-SDK接口上報(bào)的災(zāi)情信息、上報(bào)信息員的 ID信息、上報(bào)ID的經(jīng)緯度,通過 PHP頁(yè)面上傳至已經(jīng)創(chuàng)建好的MySQL數(shù)據(jù)庫(kù)表單。MySQL數(shù)據(jù)庫(kù)表單包括信息員用戶表單和災(zāi)情信息存儲(chǔ)表單,每一條災(zāi)情信息與信息員用戶表單中的某一信息員數(shù)據(jù)相關(guān)聯(lián),實(shí)現(xiàn)災(zāi)情信息與上傳信息用戶相關(guān)聯(lián)。
數(shù)據(jù)庫(kù)核心代碼如下:
<title>建立數(shù)據(jù)庫(kù)</title>
$my_connect = mysql_connect($dbhost,$dbuser,$dbpwd); //連接數(shù)據(jù)庫(kù)
if($my_connect) //判斷是否已經(jīng)連接上
$sql="CREATE TABLE ".$table_realtime."(
ID int NOT NULL AUTO_INCREMENT,
PRIMARY KEY(ID),
didian varchar(200)NOT NULL,
shijian varchar(30)NOT NULL,
miaoshu varchar(2000)NOT NULL,
tupian varchar(20)NOT NULL,
reporter_id varchar(30)NOT NULL,
isdelete bool DEFAULT false
)";
東麗區(qū)基于微信平臺(tái)的氣象災(zāi)情收集系統(tǒng)已正式運(yùn)行,實(shí)現(xiàn)了全區(qū)各街道氣象協(xié)理員、氣象信息員用戶的錄入預(yù)審核,2016、2017年汛期氣象信息員通過該系統(tǒng)上報(bào)氣象災(zāi)情信息 50余條,包含了暴雨、大風(fēng)、冰雹等災(zāi)情。系統(tǒng)實(shí)現(xiàn)了災(zāi)情收集和上報(bào)工作及時(shí)化、自動(dòng)化、便捷化,也使災(zāi)情信息處理和保存規(guī)范化。東麗區(qū)氣象局將進(jìn)一步開發(fā),不斷豐富基于微信公眾平臺(tái)的氣象服務(wù)內(nèi)容,完善災(zāi)情收集功能,促進(jìn)氣象現(xiàn)代化建設(shè)與發(fā)展,提升東麗區(qū)氣象防災(zāi)減災(zāi)救災(zāi)應(yīng)對(duì)能力。