機械学習による過去データに基づく台風12号の予測・分析(台風5号ドゥスルイは2023年に福建省に上陸)

こんにちは、Weixue AI です。今日は、過去のデータに基づいた機械学習の実践 12 個の台風の予報と分析を紹介します。台風の予報と分析は、事前に予測、追跡、分析することを目的とした重要な気象研究プロジェクトです。 、台風の強さと地域への影響の可能性。台風は、沿岸地域に大規模な高潮、大雨、強風をもたらし、洪水や土砂崩れなどの二次災害を引き起こす強力かつ破壊的な気象災害です。

2023年7月21日午前8時、フィリピンの東の海上で今年5号の台風「ドゥスリ」が発生した。同日午後5時の中心はフィリピン・マニラの東約1270キロの海上にあり、中心付近の最大風力はレベル8(熱帯低気圧レベル18メートル)で、猛烈な風に強まる恐れがある。将来的にはレベル15の台風。

この記事では、過去のデータを使用して、1951 年から 2022 年の期間にアジアで発生したすべての台風を分析および予測し、台風の進路を研究します。
ここに画像の説明を挿入

台風の原因

台風は、一連の複雑な気象要因と海洋要因によって形成されます。台風が発生する主な原因は以下のとおりです。

暖かい海水温:台風はエネルギー源として暖かい海水を必要とします。通常、海水温が26.5℃を超えると台風が発達しやすくなります。熱帯と亜熱帯の海洋には、通常、台風を支えるのに十分な温水があります。

湿った大気条件: 台風の形成には、湿った大気条件、つまりより高い水蒸気含有量が必要です。海水が大気中に蒸発するときに対流雲が形成されます。この雲は水蒸気が凝縮するにつれて徐々に大きくなり、最終的には台風を形成します。

強い水平ウィンドシアの欠如: 水平ウィンドシアとは、高度ごとの水平風速の変化を指します。水平方向のウィンドシアが小さいと台風が発生しやすくなります。ウィンドシアが小さいと、台風の全体的な構造と回転を維持するのに役立ちます。

初期擾乱: 台風の形成には、通常、その始まりとして初期擾乱または擾乱波が必要です。この擾乱は、熱帯低気圧、気象前線の合流、または他の気象システムの相互作用である可能性があります。それらは、台風の発達を促進する初期の回転と上昇気流を提供することができます。

季節的な循環条件: 通常、台風の形成は夏と初秋に最も活発になります。これは、この時期の熱帯および亜熱帯地域の循環条件が低気圧の形成と強化を促進するためです。

台風の予測と解析の意義

人々の生命と財産の保護: 台風の進路と強さを予測することで、影響を受ける地域に事前に警告を発することができ、人々は台風によって引き起こされる可能性のある死傷者や財産の損失を最小限に抑えるための保護措置を講じることができます。

気象科学研究: 台風は複雑な気象システムであり、台風の形成、発達、消滅過程を研究することは、大気循環や熱力学過程を深く理解するのに役立ちます。台風の観測と分析により、気象と気候システムの理解が深まり、天気予報モデルとアルゴリズムが改善されます。

災害対応のサポート: 台風の予測と分析を通じて、危機管理部門が災害対応計画や緊急救助計画を策定するのに役立つ科学的根拠を提供できます。同時に、被災地の災害状況を事前に予測し、救助部隊の派遣や物資の配備について的を絞った指導を行うこともできる。

気候変動の研究: 地球規模の気候変動が激化するにつれて、台風の頻度と強さが変化する可能性があります。台風の予測・解析に関する長期観測・研究を通じて、気候変動が台風の活動に及ぼす影響を探り、気候変動に対処するための科学的な参考と意思決定の支援を提供することができます。

台風過去データ分析

1951 年から 2022 年の間にアジア地域で発生したすべての台風データの表: タイフーン_data.csv

ダウンロードリンク: リンク: https://pan.baidu.com/s/1FjMSnngby4qUNL2fVCg-Jg?pwd=rxfs
抽出コード: rxfs

台風指数情報テーブル:typhoon_info.csv
ダウンロードアドレス:リンク: リンク:https://pan.baidu.com/s/1giaOVpDEx9XHzCkXJs_6XQ?pwd=
2a3o 抽出コード:2a3o

データフィールド構造

,International number ID,year,month,day,hour,grade,Latitude of the center,Longitude of the center,Central pressure,Maximum sustained wind speed,Direction of the longest radius of 50kt winds or greater,The longeast radius of 50kt winds or greater,The shortest radius of 50kt winds or greater,Direction of the longest radius of 30kt winds or greater,The longeast radius of 30kt winds or greater,The shortest radius of 30kt winds or greater,Indicator of landfall or passage
0,5101,1951,2,19,6,Tropical Depression,200,1385,1010,,,,,,,, 
1,5101,1951,2,19,12,Tropical Depression,200,1385,1010,,,,,,,, 
2,5101,1951,2,19,18,Tropical Depression,230,1421,1000,,,,,,,, 
3,5101,1951,2,20,0,Tropical Cyclone of TS intensity or higher,250,1460,994,,,,,,,, 
4,5101,1951,2,20,6,Tropical Cyclone of TS intensity or higher,276,1506,994,,,,,,,, 
5,5101,1951,2,20,12,Tropical Cyclone of TS intensity or higher,289,1533,994,,,,,,,, 
6,5101,1951,2,20,18,Tropical Cyclone of TS intensity or higher,313,1575,992,,,,,,,, 
7,5101,1951,2,21,0,Tropical Cyclone of TS intensity or higher,326,1621,990,,,,,,,, 

データ読み込み分析

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import folium
import seaborn as sns

data = pd.read_csv("typhoon_data.csv", index_col=0)
info = pd.read_csv("typhoon_info.csv", index_col=0)

print(data.shape)
data.sample(5)
print(info.shape)
info.sample(5)

print(len(data["International number ID"].unique()))
vc = data["International number ID"].value_counts()

# 数据处理
data[data["year"] < 1977]["grade"].unique()
data[data["year"] >= 1977]["grade"].unique()
data = data[data["year"] >= 1977]


typhoons = data["International number ID"].unique() # Unique IDs of typhoons
info[info["Name"].str.strip() == "MAEMI"]

今年の台風5号「ドゥスリ」はフィリピンの東の海上で発生したことがわかっており、その位置はおよそ東経132.8度、北緯13.9度です。

ここで、132,1300 付近で発生した台風の進路を調べます。

similar_data = data[((data["Latitude of the center"] < 140) & (data["Latitude of the center"] > 110)) & \
                   ((data["Longitude of the center"] < 1440) & (data["Longitude of the center"] > 1240))]
similar_data.to_csv("similar_data.csv")

この付近で発生した複数の台風を見つけるために、similar_data.csv で生成されます。
ここに画像の説明を挿入

4 つの台風解析経路の 1 つを選択し、1911 年の台風、つまり 2019 年の台風 11 号バイルーを表示し、経路解析マップを生成します。

軌跡図:


maemi_data = data.copy()[data["International number ID"]==1911]

maemi_data["Elapsed Hour"] = (maemi_data["day"]-4)*24 + maemi_data["hour"]
maemi_data.head()

maemi_data = maemi_data.drop(["International number ID", "year", "month", "day", "hour"], axis=1)
maemi_data.head()

maemi_data["Longitude of the center"] /= 10
maemi_data["Latitude of the center"] /= 10

fig = plt.figure(figsize=(3,3))
plt.xlim(120, 170)
plt.ylim(5, 55)
plt.plot(maemi_data["Longitude of the center"], maemi_data["Latitude of the center"], "red")
plt.show()

ここに画像の説明を挿入

散布図

scale = maemi_data["The longeast radius of 30kt winds or greater"].fillna(60)
fig = plt.figure(figsize=(5,5))
plt.xlim(120, 170)
plt.ylim(5, 55)
plt.plot(maemi_data["Longitude of the center"], maemi_data["Latitude of the center"], "black", linewidth=1)
plt.scatter(maemi_data["Longitude of the center"], maemi_data["Latitude of the center"], s=scale/3, c=maemi_data["Maximum sustained wind speed"])
plt.show()

ここに画像の説明を挿入

マップウィンドサークル

import matplotlib.cm as cm

c = maemi_data.copy()["Maximum sustained wind speed"]
cmap = cm.jet

def rgb_to_hex(rgb):
    return '#%02x%02x%02x' % rgb
m = folium.Map(location=[38.9, 153.2], zoom_start=3, width=600, height=600)
for i in range(len(maemi_data)):
    color = cmap(c.iloc[i]/c.max())
    color = tuple([int(c*255) for c in color[:3]])
    color = rgb_to_hex(color)
    folium.Circle(location=[maemi_data.iloc[i]["Latitude of the center"], maemi_data.iloc[i]["Longitude of the center"]],
                 radius=scale.iloc[i]*1852,  #  nautical mile to meter
                 fill=True,
                 color="black",
                 fill_color=color).add_to(m)
m.save('map.html')  # 保存地图为HTML文件
import webbrowser
webbrowser.open('map.html', new=2)  # 在浏览器中打开地图

ここに画像の説明を挿入

台風中心の気圧と風力の変化

plt.title("Typhoon's Central Pressure in hPa")
plt.plot(maemi_data["Elapsed Hour"],maemi_data["Central pressure"])
plt.xlabel("Elapsed Hour")
plt.ylabel("Central Pressure")
plt.legend()
plt.show()


plt.title("Typhoon's Wind Speed in knot(kt)")
plt.plot(maemi_data["Elapsed Hour"],maemi_data["Maximum sustained wind speed"])
plt.xlabel("Elapsed Hour")
plt.ylabel("Maximum sustained wind speed")
plt.legend()
plt.show()


sns.heatmap(maemi_data.corr(), annot=True)
plt.show()

ここに画像の説明を挿入
ここに画像の説明を挿入

要約する

台風予測は、複数の情報源と解析手法に基づいており、台風の進路、強さ、影響の予測を通じて、関連地域への早期警戒と意思決定の支援を提供し、台風による死傷者や財産の損失を最小限に抑えることができます。しかし、台風は複雑で不確実性が高いため、継続的な観測と予測技術の向上は依然として予測精度を向上させる重要な方向性です。

「杜蘇瑞」は福建省南部に上陸する可能性が高く、時速10~15キロの速度で北西に進み、北西方向に進路を変える見通し。

おすすめ

転載: blog.csdn.net/weixin_42878111/article/details/131876030