王濤 曾舉 柳德江
摘 ?要: 颶風(fēng),是大西洋和北太平洋地區(qū)將強大而深厚的熱帶氣旋,一般伴隨強風(fēng)、暴雨,嚴重威 脅人們的生命財產(chǎn),對于民生、農(nóng)業(yè)、經(jīng)濟等造成極大的沖擊,是一種影響較大,危害嚴重的自然災(zāi)害。本文通過Python爬取美國各州地理空間數(shù)據(jù)和颶風(fēng)“佛羅倫薩”的相關(guān)數(shù)據(jù),通過對颶風(fēng)“佛羅倫薩”的數(shù)據(jù)進行處理,繪制颶風(fēng)移動路徑,為研究颶風(fēng)的影響和預(yù)測提供可視化數(shù)據(jù)。
關(guān)鍵詞: 地理空間數(shù)據(jù);Python;颶風(fēng);GeoDataFrame
中圖分類號: TP312 ? ?文獻標識碼: A ? ?DOI:10.3969/j.issn.1003-6970.2019.05.007
本文著錄格式:王濤,曾舉,柳德江,等. 基于Python的颶風(fēng)路徑模擬研究[J]. 軟件,2019,40(5):3337
【Abstract】: Hurricane is a strong and deep tropical cyclone in the Atlantic Ocean and the North Pacific. It is usually accompanied by strong winds and rainstorms, which seriously threatens people's lives and property, and has a great impact on people's livelihood, agriculture and economy. It is a natural disaster with great impact and serious harm. In this paper, we use Python to crawl the geospatial data of American States and the related data of Hurricane Florence. Through processing the data of Hurricane Florence, we can draw the moving path of Hurricane and provide visual data for studying the impact and prediction of Hurricane.
【Key words】: Geospatial data; Python; Hurricanel; GeoData frame
0 ?引言
颶風(fēng)“佛羅倫斯”是在美國東海岸形成的颶風(fēng),是該地區(qū)30多年來最強大的風(fēng)暴。截至美東時間2018年9月11日清晨5時,“佛羅倫薩”中心部位于北卡羅來納州東南偏東約1570公里,以每小時24公里向西北偏西移動[1]。9月12日,四級颶風(fēng)“佛羅倫斯”在撲向美國東海岸的路途上威力進一步增強。預(yù)計于9月14日晚些時候在弗吉尼亞州、北卡羅來納州和南卡羅來納州的海岸線附近登陸,強度逼近5級,估計損失達170億美元。本文通過Python語言模擬繪制颶風(fēng)“佛羅倫薩”的路徑,了解它的起源,何時何地增強,并在Python中對其更多的信息進行分析[2-3]。
1 ?地理空間數(shù)據(jù)獲取
地理空間數(shù)據(jù)在我們的日常生活中有著廣泛的應(yīng)用。例如我們從一個地方到其他地方,我們需要導(dǎo)航,導(dǎo)航APP中就集成了我們所需要的地理空間數(shù)據(jù);我們想知道某個地區(qū)的天氣狀況,需要知道它的位置信息。從地理空間數(shù)據(jù)中,不僅可以找到位置,還可以找到物體的長度,大小,面積或形狀,可以獲得對象的坐標,例如緯度,經(jīng)度和高程等。本文中所需要的颶風(fēng)數(shù)據(jù)來源于Hurricane Florence[5-7]。
颶風(fēng)移動路徑的模擬需要一定的底圖數(shù)據(jù),本文使用的美國底圖數(shù)據(jù)來自于互聯(lián)網(wǎng),包含了美國各州的邊界數(shù)據(jù)文件,其分辨率為5米,格式為GeoJSON。
2 ?底圖繪制
通過在Python中加載美國各州地理空間數(shù)據(jù),發(fā)現(xiàn)地理空間數(shù)據(jù)與Pandas DataFrame中的數(shù)據(jù)類型特征比較相似[8-9],因此,可以使用plot工具繪制底圖如下圖2所示:
由于互聯(lián)網(wǎng)中搜集到的信息中包含了阿拉斯加、夏威夷和波多黎各等地,使得美國地圖與框架相比較小。在此次颶風(fēng)“佛羅倫薩”的影響中不會涉及到該地區(qū),因此排除阿拉斯加和夏威夷地區(qū),對地圖的大小和顏色進行重新繪制如下圖3所示。
3 ?颶風(fēng)數(shù)據(jù)加載與分析
本文中加載的颶風(fēng)“佛羅倫薩”數(shù)據(jù)來源于Hurricane Florence[10-11],颶風(fēng)部分數(shù)據(jù)如圖4所示。
在加載颶風(fēng)數(shù)據(jù)之前,首先對颶風(fēng)數(shù)據(jù)的類型進行檢查、是否有缺省值。本文借助missingno檢查颶風(fēng)“佛羅倫薩”的缺失值,用可視化的方法顯示缺少的數(shù)據(jù)。例如所加載的颶風(fēng)數(shù)據(jù)中“Forecaster”列中缺少一個,如下圖所示,但是對于本文模擬颶風(fēng)移動路徑來說,不需要Forecaster列,因此可以忽略掉。
因此,在颶風(fēng)統(tǒng)計數(shù)據(jù)中,清理掉無用,保留有用數(shù)據(jù)至關(guān)重要。本文選取了時間、緯度、經(jīng)度,風(fēng)速,壓力和名稱等列數(shù)據(jù)。由于美國位于西半球,大致為西經(jīng)70度到西經(jīng)130度之間,為了與所選用的底圖數(shù)據(jù)能夠疊加,需要在經(jīng)度前面加上“-”號,使用Python處理后所加載颶風(fēng)數(shù)據(jù)如下表所示。
接下來將颶風(fēng)數(shù)據(jù)的經(jīng)度和緯度數(shù)據(jù)合并,構(gòu)建颶風(fēng)坐標,并將其進行轉(zhuǎn)換,采用GeoPoint進行可視化,如下表所示。
通過轉(zhuǎn)換,將其類型轉(zhuǎn)換為地理空間數(shù)據(jù)格式Geo DataFrame和GeoSeries,并對數(shù)據(jù)進行過濾,采用groupby包提取“name”列最小值,最大值或平均值,搜索颶風(fēng)“佛羅倫薩”的平均風(fēng)速,得到其平均風(fēng)速約為每小時74.43英里(每小時119.78公里),最大值為每小時140英里(每小時225.308公里)。
5 ?颶風(fēng)移動路徑可視化
與pandas Dataframe類似,GeoDataFrame也具有.plot屬性。本文使用GeoDataFrame中的坐標信息將颶風(fēng)移動路徑繪制出來[12]。如下圖6所示。
下面以美國地圖數(shù)據(jù)為基礎(chǔ),根據(jù)風(fēng)速對颶風(fēng)位置進行著色,可視化颶風(fēng)襲擊每個城市時的強度。如下圖7所示。
通過繪制的颶風(fēng)移動路徑可視化圖,可以看出當颶風(fēng)在東海岸附近靠岸時,颶風(fēng)最強。隨著不斷接近陸地,颶風(fēng)開始失去力量,但是風(fēng)速仍然在每小時60到77英里的范圍內(nèi),仍然會造成巨大的損失。
6 ?結(jié)論
Python是目前最流行的一門計算機程序設(shè)計語言,其在數(shù)據(jù)爬取、可視化和智能分析方面廣受歡迎,本文通過Python編寫颶風(fēng)“佛羅倫薩”的移動路徑圖,并對其進行可視化分析,為研究颶風(fēng)的影響和預(yù)報提供了基礎(chǔ)。
參考文獻
[1] 莊亞飛, 李素敏. 基于Python的ArcGIS數(shù)據(jù)屬性值順序碼處理研究[J]. 軟件, 2018, 39(7): 68-71.
[2] Shaojie Sun, Chuanmin Hu, Oscar Garcia-Pineda, Vassiliki Kourafalou, Matthieu Le Hénaff, Yannis Androulidakis. Remote sensing assessment of oil spills near a damaged platform in the Gulf of Mexico[J]. Marine Pollution Bulletin, 2018, 136.
[3] 吳大明. 美國2017年颶風(fēng)災(zāi)害應(yīng)急管理啟示[J]. 勞動保護, 2018(11): 94-97.
[4] Carlos Santos-Burgoa, John Sandberg, Erick Suárez, Ann Goldman-Hawes, Scott Zeger, Alejandra Garcia-Meza, Cynthia M Pérez, Noel Estrada-Merly, Uriyoan Colón-Ramos, Cruz María Nazario, Elizabeth Andrade, Amira Roess, Lynn Goldman. Differential and persistent risk of excess mortality from Hurricane Maria in Puerto Rico: a time-series analysis[J].?The Lancet Planetary Health, 2018, 2(11).
[5] 張小璞, 左小清. 在ArcGIS下基于Python的路網(wǎng)數(shù)據(jù)批處理方法[J]. 軟件, 2018, 39(7): 130-133
[6] 郭學(xué)兵. 基于Python的并行編程技術(shù)在批量氣象規(guī)范報表入庫處理中的應(yīng)用[J]. 軟件, 2018, 39(7): 24-29
[7] 劉翔宇, 朱大明. Arcgis中基于Python的地理數(shù)據(jù)庫批量合并方法研究[J]. 軟件, 2018, 39(7): 161-165
[8] 彭一波, 姜明明, 艾印雙. 基于Python語言的ObsPy軟件包從地震背景噪聲中提取瑞利面波經(jīng)驗格林函數(shù)的實行方案[J/OL]. 地球物理學(xué)進展: 1-25[2018-12-04]
[9] 張震. Python在遙感專業(yè)GIS開發(fā)實踐教學(xué)中的應(yīng)用與探討[J]. 黑龍江工程學(xué)院學(xué)報, 2018, 32(05): 53-56.
[10] 徐雯皓, 李忠, 蘇鑫昊. 基于 3D 引擎的汶川震前水文變化三維模擬演示系統(tǒng)設(shè)計[J]. 軟件, 2018, 39(4): 176-179
[11] M. D. Etheart, K. Pierre, N. P. D. Jean-Charles, A. M. Destine, L. L. Andrecy, N. Barthelemy, A. Greiner, C. Giese, S. Juin, E. Hulland, A. Knipes, P. Adrien, D. Fitter, D. Lafontant. A multidisciplinary joint-team efforts deployed for a cholera outbreak response post-hurricane Matthew in southern Haiti, October 2016[J]. International Journal of Infectious Diseases, 2018, 73.
[12] 郭海濤, 蔣琳. Python中實現(xiàn)地圖數(shù)據(jù)可視化[J]. 電腦編程技巧與維護, 2018(9): 105-107.