郭俊峰 李垚周
摘要:在信息量劇增的時(shí)代,我們需要從數(shù)據(jù)中獲取信息來(lái)分析和預(yù)測(cè)天氣情況,因此設(shè)計(jì)基于Java的氣象管理系統(tǒng),采用B/S模式,并運(yùn)用Java語(yǔ)言完成編寫(xiě),系統(tǒng)主要包含三個(gè)模塊,分別為天氣預(yù)報(bào)模塊、自然災(zāi)害預(yù)警模塊、全局觀測(cè)模塊等。該系統(tǒng)為城市提供氣象信息支持,在預(yù)防城市發(fā)生自然災(zāi)害中發(fā)揮重要作用。
關(guān)鍵詞:氣象系統(tǒng);天氣預(yù)報(bào);自然災(zāi)害
中圖分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2020)12-0066-03
在大數(shù)據(jù)、人工智能技術(shù)的推動(dòng)下,信息數(shù)據(jù)呈現(xiàn)爆發(fā)式增長(zhǎng),而數(shù)據(jù)的合理利用能為城市、政府、企業(yè)提供強(qiáng)有力的幫助。在互聯(lián)網(wǎng)時(shí)代,各行各業(yè)都在蓬勃發(fā)展,對(duì)于城市而言,隨著5G時(shí)代的來(lái)臨,氣象數(shù)據(jù)越來(lái)越豐富,氣象服務(wù)的內(nèi)容越來(lái)越廣泛,數(shù)據(jù)傳播的方式通過(guò)采集、過(guò)濾、傳遞、存儲(chǔ)等過(guò)程進(jìn)行展示。但隨著氣象類(lèi)型的增多,信息數(shù)據(jù)的格式發(fā)生變換,傳統(tǒng)的氣象系統(tǒng)無(wú)法真正利用這些數(shù)據(jù)進(jìn)行過(guò)濾、清洗,使某些城市天氣出現(xiàn)不準(zhǔn)確的情況,針對(duì)這些問(wèn)題,如何能將當(dāng)前所有氣象數(shù)據(jù)準(zhǔn)確收集起來(lái),并合理利用成為當(dāng)前各城市在預(yù)防工作中需要面對(duì)的問(wèn)題。
如今已進(jìn)入5G互聯(lián)網(wǎng)時(shí)代,天氣預(yù)測(cè)雖然在十年前就已經(jīng)被使用,但現(xiàn)如今網(wǎng)絡(luò)技術(shù)的高速發(fā)展,通過(guò)氣象系統(tǒng)+5G互聯(lián)的模式使天氣數(shù)據(jù)能得到更加合理的利用,這樣可以使用戶得到更加精準(zhǔn)的氣象信息和內(nèi)容,進(jìn)而改善城市天氣不精準(zhǔn)問(wèn)題,使智能氣象服務(wù)更智能化。
因此本文設(shè)計(jì)基于javaWeb的氣象管理系統(tǒng),通過(guò)天氣預(yù)報(bào)模塊將提取的氣象數(shù)據(jù)進(jìn)行計(jì)算,分析出精準(zhǔn)的氣象情況,供用戶進(jìn)行查看,同時(shí)包含自然災(zāi)害預(yù)警模塊、全局觀測(cè)模塊、其他用戶和權(quán)限模塊以及日志管理模塊等。
1系統(tǒng)開(kāi)發(fā)
1.1Java技術(shù)概述
Java是由詹姆斯·高斯林所創(chuàng)建,到目前為止,已經(jīng)成為世界上排名前三的計(jì)算機(jī)編程語(yǔ)言,在國(guó)內(nèi),被知名的互聯(lián)網(wǎng)公司阿里巴巴、京東等大型公司作為底層代碼所使用,并且在Hadoop生態(tài)圈,Java也被大數(shù)據(jù)領(lǐng)域如Kafka、Flume等作為底層語(yǔ)言。
Java作為一種面向?qū)ο笳Z(yǔ)言,具有三大特性,即封裝、繼承、多態(tài)。這三種特性保證了代碼之間的高內(nèi)聚低耦合,對(duì)比面向過(guò)程語(yǔ)言更加簡(jiǎn)潔易懂。同時(shí),Java之所以被廣泛使用是因?yàn)槠鋬?nèi)部獨(dú)有的Java虛擬機(jī)JVM,它保證了Java代碼可以在任何平臺(tái)上使用,具有跨平臺(tái)的作用,并且Java擁有垃圾回收機(jī)制,它發(fā)生在JVM的堆內(nèi)存中,垃圾回收機(jī)制擁有多種算法,可以保證創(chuàng)建的對(duì)象被合理清理。不需要向C++那樣,進(jìn)行手動(dòng)清理,釋放內(nèi)存。
1.2MVC技術(shù)概述
MVC模式(Model-View-Controller)又被稱作三層架構(gòu)模式,它是軟件工程中的體系架構(gòu)模型,它將系統(tǒng)分為三個(gè)部分,即視圖層、模型層和控制器。
MVC將整個(gè)系統(tǒng)的代碼按照邏輯進(jìn)行劃分,它將業(yè)務(wù)邏輯、基本數(shù)據(jù)和應(yīng)用程序接口可視化分開(kāi)的方式組織集成代碼,并將大量的業(yè)務(wù)邏輯合并到一個(gè)特定的部分。在不需要重寫(xiě)業(yè)務(wù)邏輯代碼的情況下,減少編碼時(shí)間和工作負(fù)載,同時(shí)調(diào)整接口和用戶交互的改進(jìn)和規(guī)范。
在視圖層,將數(shù)據(jù)由控制器傳到視圖層,即用戶所看到的WEB前端頁(yè)面,通過(guò)視圖將HTML,CSS樣式進(jìn)行渲染,模型層包含邏輯Service層和數(shù)據(jù)訪問(wèn)Dao層,主要負(fù)責(zé)將前端傳過(guò)來(lái)的代碼進(jìn)行邏輯處理,并在數(shù)據(jù)庫(kù)中查到對(duì)應(yīng)的數(shù)據(jù),最終返回給前端。MVC模式在氣象管理系統(tǒng)的模型圖如圖1所示。
2需求分析
2.1系統(tǒng)分析
為了更好地服務(wù)于城市和用戶,提高城區(qū)氣象服務(wù)水平,依據(jù)互聯(lián)網(wǎng)模式,提出應(yīng)用于城市與用戶的氣象管理系統(tǒng)建設(shè)。該氣象管理系統(tǒng)分為三個(gè)重要模塊,分別為天氣預(yù)報(bào)模塊、自然災(zāi)害預(yù)警模塊、全局觀測(cè)模塊等,利用這些模塊提高城區(qū)氣象信息的準(zhǔn)確性。
2.2天氣預(yù)報(bào)管理需求
天氣預(yù)報(bào)模塊主要進(jìn)行天氣預(yù)測(cè)、預(yù)測(cè)預(yù)警、雨量檢測(cè)、交通氣象、雷雪天氣、實(shí)時(shí)監(jiān)控的維護(hù),可以查看到各城市的天氣資訊、風(fēng)速、風(fēng)向等情況。
預(yù)測(cè)預(yù)警主要對(duì)各城市的天氣進(jìn)行1小時(shí)、4小時(shí)、7小時(shí)、12小時(shí)、一天、兩天、一周等天氣進(jìn)行實(shí)時(shí)修正,系統(tǒng)中會(huì)具體顯示出檔期天氣的符號(hào)、風(fēng)速、風(fēng)力、溫度、濕度、空氣質(zhì)量等,還可以查看未來(lái)一周的天氣情況,并顯示最高氣溫和最低氣溫。
2.3自然災(zāi)害模塊需求
突發(fā)自然災(zāi)害,相對(duì)于城區(qū)而言是突然爆發(fā)強(qiáng)降雨、雷電、山體滑坡、洪流等自然災(zāi)害,該模塊針對(duì)突發(fā)情況需對(duì)該城市進(jìn)行不定時(shí)快速更新訊息,顯示自然災(zāi)害預(yù)警圖標(biāo)、級(jí)別、內(nèi)容以及大致的持續(xù)時(shí)間等。并且可以查看發(fā)布信息的具體時(shí)間、日期、狀態(tài)等。
2.4全局觀測(cè)模塊需求
全局觀測(cè)模塊由衛(wèi)星云圖、雷達(dá)監(jiān)測(cè)資料、氣象信息實(shí)況資料,降雨資料等數(shù)據(jù)構(gòu)成,用于全局觀測(cè)衛(wèi)星云圖的天氣情況、并且對(duì)給定城市的天氣進(jìn)行實(shí)時(shí)雷達(dá)拍攝,每5分鐘形成一張圖片。并可以對(duì)形成后的數(shù)據(jù)進(jìn)行導(dǎo)入導(dǎo)出。
3系統(tǒng)設(shè)計(jì)
氣象管理系統(tǒng)主要服務(wù)于城區(qū)和用戶,所以在系統(tǒng)設(shè)計(jì)上,將從系統(tǒng)架構(gòu)、重要功能模塊、數(shù)據(jù)庫(kù)三方面進(jìn)行設(shè)計(jì)。
3.1系統(tǒng)架構(gòu)設(shè)計(jì)
氣象管理系統(tǒng)采用SpringMVC框架、Spring框架、Mybatis框架對(duì)系統(tǒng)后端進(jìn)行集成,前端采用LayUI框架進(jìn)行設(shè)計(jì),數(shù)據(jù)持久層使用Mysql數(shù)據(jù)庫(kù)、數(shù)據(jù)緩存層使用Redis框架,同時(shí)使用瀏覽器/服務(wù)器(B/S)架構(gòu)進(jìn)行前后端頁(yè)面交互,將Tomcat設(shè)為本系統(tǒng)的輕量級(jí)服務(wù)器,考慮到系統(tǒng)訪問(wèn)壓力過(guò)大時(shí),出現(xiàn)訪問(wèn)速度過(guò)慢等現(xiàn)象,在系統(tǒng)設(shè)計(jì)時(shí)采用Nginx進(jìn)行負(fù)載均衡,減輕單個(gè)服務(wù)器的訪問(wèn)壓力。最后在層級(jí)上采用MVC三層架構(gòu)模式進(jìn)行設(shè)計(jì)。
3.2功能模塊設(shè)計(jì)
氣象管理系統(tǒng)在模塊設(shè)計(jì)上包含三個(gè)重要功能模塊和一個(gè)系統(tǒng)管理模塊,分別為天氣預(yù)報(bào)管理模塊、自然災(zāi)害管理模塊、全局探測(cè)管理模塊、系統(tǒng)管理模塊。
天氣預(yù)報(bào)模塊在設(shè)計(jì)中根據(jù)三層架構(gòu)模式設(shè)計(jì)了Dao層、Service層、Controller層,Dao層負(fù)責(zé)和Mysql數(shù)據(jù)庫(kù)進(jìn)行交互,Service負(fù)責(zé)業(yè)務(wù)邏輯代碼的編寫(xiě)、Controller層負(fù)責(zé)將查詢的結(jié)果返回給視圖層進(jìn)行解析。該模塊包含預(yù)報(bào)預(yù)警控制類(lèi)ForAndEarlyWarningControUer,天氣預(yù)測(cè)控制類(lèi)WeatherWarning-Controller,雨量監(jiān)測(cè)控制類(lèi)RainNumberControUer,雷雪天氣控制類(lèi)ThunderAndSnowController,交通氣象控制類(lèi)TrafficMeteo-rologyController,實(shí)時(shí)監(jiān)控控制類(lèi)ReaIMonitoringController,如表1所示。
自然災(zāi)害模塊包含山體滑坡、洪流、雷電等監(jiān)測(cè)子模塊,其中山體滑坡控制類(lèi)為L(zhǎng)andSlideController,涉及的方法有山體滑坡監(jiān)測(cè)LandSlideMoniter()、山體滑坡類(lèi)型LandSlideType()、山體滑坡級(jí)別LandSlideGrade(),洪流控制類(lèi)為T(mén)orrentController,方法包含洪流類(lèi)型TorrentType()、洪流等級(jí)TorrentCrade()、雷電控制類(lèi)為T(mén)hunderController,方法包含雷電類(lèi)型ThunderType()、雷電等級(jí)ThunderGrade(),其中包含的屬性有名稱、城市、年份、日期、級(jí)別、內(nèi)容、持續(xù)時(shí)間、圖標(biāo)。映射表如表2所示。
全局探測(cè)管理模塊包含衛(wèi)星云圖控制器SatelliteCloud-ChartController、雷達(dá)監(jiān)測(cè)控制器RadarMonitoringController,氣象信息控制器MeteorInformationController,以及導(dǎo)人導(dǎo)出方法,其中氣象信息拍攝的圖片全部存儲(chǔ),根據(jù)上次發(fā)生的自然災(zāi)害情況,可以將信息數(shù)據(jù)全部導(dǎo)出來(lái)進(jìn)行分析,也可以將圖片進(jìn)行導(dǎo)入,進(jìn)行探測(cè)分析。映射表如表3所示。
系統(tǒng)管理模塊包含登錄功能、注冊(cè)功能、修改密碼功能,登錄功能包含用戶名、密碼、驗(yàn)證碼,驗(yàn)證碼根據(jù)阿拉伯?dāng)?shù)字隨機(jī)生成4位,當(dāng)其中一項(xiàng)輸入不合理時(shí),系統(tǒng)會(huì)提示輸入錯(cuò)誤及其原因等。注冊(cè)功能會(huì)根據(jù)所在省份和城市按地區(qū)注冊(cè),注冊(cè)信息可以通過(guò)手機(jī)號(hào)直接注冊(cè),系統(tǒng)注冊(cè)成功后初始密碼為123456,可以通過(guò)修改密碼功能進(jìn)行修改。系統(tǒng)用戶分為超級(jí)管理員、管理員和用戶三級(jí),每一級(jí)的權(quán)限都不相同,超級(jí)管理員具備最高權(quán)限,其他兩級(jí)具備對(duì)應(yīng)功能的權(quán)限。
3.3數(shù)據(jù)庫(kù)設(shè)計(jì)
氣象管理系統(tǒng)通過(guò)對(duì)前期調(diào)研和需求分析之后,對(duì)系統(tǒng)各模塊進(jìn)行了相應(yīng)的數(shù)據(jù)庫(kù)設(shè)計(jì),主要涉及的表包含用戶表user、角色表role、日志表log、省市縣表city、天氣預(yù)報(bào)表weather-Forecast、自然災(zāi)害表naturalDisaster、全局探測(cè)表globalDetection、氣象數(shù)據(jù)分析表dataAnalysis等,數(shù)據(jù)表及其字段名如表4所示。
4系統(tǒng)實(shí)現(xiàn)
4.1開(kāi)發(fā)環(huán)境
氣象管理系統(tǒng)所采用的開(kāi)發(fā)環(huán)境如表5所示。
4.2系統(tǒng)部署
基于Java的氣象管理系統(tǒng)通過(guò)開(kāi)源的服務(wù)器Tomcat進(jìn)行線上部署,部署成功后,可以根據(jù)不同用戶進(jìn)行訪問(wèn),如需要實(shí)現(xiàn)各國(guó)各地進(jìn)行訪問(wèn),則需將該系統(tǒng)部署到共有網(wǎng)絡(luò)中,可以購(gòu)買(mǎi)阿里云或者騰訊云等服務(wù)器。
5結(jié)論
本文運(yùn)用Java語(yǔ)言進(jìn)行編寫(xiě),采用瀏覽器/服務(wù)器模式進(jìn)行設(shè)計(jì),最終設(shè)計(jì)并實(shí)現(xiàn)基于Java的氣象管理系統(tǒng),該系統(tǒng)包含三個(gè)重要功能模塊分別為天氣預(yù)報(bào)模塊、自然災(zāi)害模塊、全局觀測(cè)模塊、通過(guò)這些模塊用戶可以實(shí)現(xiàn)實(shí)時(shí)查看所在城市當(dāng)前及未來(lái)的天氣情況,并能通過(guò)自然災(zāi)害模塊的分析查看是否發(fā)生山體滑坡、洪流等自然災(zāi)害。該系統(tǒng)可通過(guò)IP地址直接訪問(wèn),便于系統(tǒng)維護(hù),極大地提高了系統(tǒng)的安全性。
本系統(tǒng)下一步在針對(duì)自然災(zāi)害模塊和全局觀測(cè)模塊添加echar圖形分析和模塊化的日志管理等功能,使之系統(tǒng)功能更加完善。