王濤 曾舉 柳德江



摘 ?要: 颶風,是大西洋和北太平洋地區將強大而深厚的熱帶氣旋,一般伴隨強風、暴雨,嚴重威 脅人們的生命財產,對于民生、農業、經濟等造成極大的沖擊,是一種影響較大,危害嚴重的自然災害。本文通過Python爬取美國各州地理空間數據和颶風“佛羅倫薩”的相關數據,通過對颶風“佛羅倫薩”的數據進行處理,繪制颶風移動路徑,為研究颶風的影響和預測提供可視化數據。
關鍵詞: 地理空間數據;Python;颶風;GeoDataFrame
中圖分類號: TP312 ? ?文獻標識碼: A ? ?DOI:10.3969/j.issn.1003-6970.2019.05.007
本文著錄格式:王濤,曾舉,柳德江,等. 基于Python的颶風路徑模擬研究[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 ?引言
颶風“佛羅倫斯”是在美國東海岸形成的颶風,是該地區30多年來最強大的風暴。截至美東時間2018年9月11日清晨5時,“佛羅倫薩”中心部位于北卡羅來納州東南偏東約1570公里,以每小時24公里向西北偏西移動[1]。9月12日,四級颶風“佛羅倫斯”在撲向美國東海岸的路途上威力進一步增強。預計于9月14日晚些時候在弗吉尼亞州、北卡羅來納州和南卡羅來納州的海岸線附近登陸,強度逼近5級,估計損失達170億美元。本文通過Python語言模擬繪制颶風“佛羅倫薩”的路徑,了解它的起源,何時何地增強,并在Python中對其更多的信息進行分析[2-3]。
1 ?地理空間數據獲取
地理空間數據在我們的日常生活中有著廣泛的應用。例如我們從一個地方到其他地方,我們需要導航,導航APP中就集成了我們所需要的地理空間數據;我們想知道某個地區的天氣狀況,需要知道它的位置信息。從地理空間數據中,不僅可以找到位置,還可以找到物體的長度,大小,面積或形狀,可以獲得對象的坐標,例如緯度,經度和高程等。本文中所需要的颶風數據來源于Hurricane Florence[5-7]。
颶風移動路徑的模擬需要一定的底圖數據,本文使用的美國底圖數據來自于互聯網,包含了美國各州的邊界數據文件,其分辨率為5米,格式為GeoJSON。
2 ?底圖繪制
通過在Python中加載美國各州地理空間數據,發現地理空間數據與Pandas DataFrame中的數據類型特征比較相似[8-9],因此,可以使用plot工具繪制底圖如下圖2所示:
由于互聯網中搜集到的信息中包含了阿拉斯加、夏威夷和波多黎各等地,使得美國地圖與框架相比較小。在此次颶風“佛羅倫薩”的影響中不會涉及到該地區,因此排除阿拉斯加和夏威夷地區,對地圖的大小和顏色進行重新繪制如下圖3所示。
3 ?颶風數據加載與分析
本文中加載的颶風“佛羅倫薩”數據來源于Hurricane Florence[10-11],颶風部分數據如圖4所示。
在加載颶風數據之前,首先對颶風數據的類型進行檢查、是否有缺省值。本文借助missingno檢查颶風“佛羅倫薩”的缺失值,用可視化的方法顯示缺少的數據。例如所加載的颶風數據中“Forecaster”列中缺少一個,如下圖所示,但是對于本文模擬颶風移動路徑來說,不需要Forecaster列,因此可以忽略掉。
因此,在颶風統計數據中,清理掉無用,保留有用數據至關重要。本文選取了時間、緯度、經度,風速,壓力和名稱等列數據。由于美國位于西半球,大致為西經70度到西經130度之間,為了與所選用的底圖數據能夠疊加,需要在經度前面加上“-”號,使用Python處理后所加載颶風數據如下表所示。
接下來將颶風數據的經度和緯度數據合并,構建颶風坐標,并將其進行轉換,采用GeoPoint進行可視化,如下表所示。
通過轉換,將其類型轉換為地理空間數據格式Geo DataFrame和GeoSeries,并對數據進行過濾,采用groupby包提取“name”列最小值,最大值或平均值,搜索颶風“佛羅倫薩”的平均風速,得到其平均風速約為每小時74.43英里(每小時119.78公里),最大值為每小時140英里(每小時225.308公里)。
5 ?颶風移動路徑可視化
與pandas Dataframe類似,GeoDataFrame也具有.plot屬性。本文使用GeoDataFrame中的坐標信息將颶風移動路徑繪制出來[12]。如下圖6所示。
下面以美國地圖數據為基礎,根據風速對颶風位置進行著色,可視化颶風襲擊每個城市時的強度。如下圖7所示。
通過繪制的颶風移動路徑可視化圖,可以看出當颶風在東海岸附近靠岸時,颶風最強。隨著不斷接近陸地,颶風開始失去力量,但是風速仍然在每小時60到77英里的范圍內,仍然會造成巨大的損失。
6 ?結論
Python是目前最流行的一門計算機程序設計語言,其在數據爬取、可視化和智能分析方面廣受歡迎,本文通過Python編寫颶風“佛羅倫薩”的移動路徑圖,并對其進行可視化分析,為研究颶風的影響和預報提供了基礎。
參考文獻
[1] 莊亞飛, 李素敏. 基于Python的ArcGIS數據屬性值順序碼處理研究[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年颶風災害應急管理啟示[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的路網數據批處理方法[J]. 軟件, 2018, 39(7): 130-133
[6] 郭學兵. 基于Python的并行編程技術在批量氣象規范報表入庫處理中的應用[J]. 軟件, 2018, 39(7): 24-29
[7] 劉翔宇, 朱大明. Arcgis中基于Python的地理數據庫批量合并方法研究[J]. 軟件, 2018, 39(7): 161-165
[8] 彭一波, 姜明明, 艾印雙. 基于Python語言的ObsPy軟件包從地震背景噪聲中提取瑞利面波經驗格林函數的實行方案[J/OL]. 地球物理學進展: 1-25[2018-12-04]
[9] 張震. Python在遙感專業GIS開發實踐教學中的應用與探討[J]. 黑龍江工程學院學報, 2018, 32(05): 53-56.
[10] 徐雯皓, 李忠, 蘇鑫昊. 基于 3D 引擎的汶川震前水文變化三維模擬演示系統設計[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中實現地圖數據可視化[J]. 電腦編程技巧與維護, 2018(9): 105-107.