この記事では、Python を使用して天気パターンを分析する方法を説明します。気温傾向の特定から降水量の視覚化まで、このステップバイステップのガイドは、気象分析にデータ サイエンス技術を使用することに興味がある人に最適です。実用的な洞察を得るために、コード、データ操作、および視覚化を検討します。
ケニアでは、天気は多くの分野、特に農業、観光、アウトドア活動で重要な役割を果たしています。農家、企業、イベント プランナーは、意思決定を行うために正確な気象情報を必要としています。ただし、気象パターンは地域によって大きく異なる可能性があり、現在の予測システムでは必ずしも地域に特化した洞察が得られるとは限りません。
このプロジェクトの目的は、ケニア全土のさまざまな地域の OpenWeatherMap API と Weather API からリアルタイムの気象データを収集することです。このデータはデータベースに保存され、Python を使用して分析され、次のような洞察が明らかになります。-
このプロジェクトでは、ケニアのさまざまな都市の気象情報を含むデータセットを分析します。データセットには、温度、湿度、気圧、風速、視程、降雨量などの要素を含む 3,000 行を超える気象観測結果が含まれています。これらの洞察を使用して、農業、観光、さらには管理などの天候に敏感なセクターにおける意思決定を支援できる、正確な地域固有の天気予報を提供することを目指しています。
データセットは複数の列を使用して構造化されました:
これは、データベース内のデータの構造です。
分析の最初のステップには、データの基本的な探索が含まれていました。
_ データ ディメンション - データセットには 3,000 行と 14 列が含まれています。
_ Null 値 - データの欠落が最小限に抑えられ、さらなる分析に対してデータセットの信頼性が保証されます。
print(df1[['temperature_celsius', 'humidity_pct', 'pressure_hpa', 'wind_speed_ms', 'rain', 'clouds']].describe())
上記のコードを使用して、温度、湿度、圧力、降雨量、雲の範囲、平均、広がりについての洞察を提供する数値列の概要統計を計算しました。
気象の特徴をより明確に理解するために、さまざまな分布をプロットしました:
温度分布
sns.displot(df1['temperature_celsius'], bins=50, kde=True) plt.title('Temperature Distribution') plt.xlabel('Temperature (Celsius)')
この分布は、都市全体の気温の一般的な広がりを明らかにします。 KDE ライン プロットは、温度の確率分布を滑らかに推定します。
降水量分布
sns.displot(df1['rain'], bins=50, kde=True) plt.title('Rainfall Distribution') plt.xlabel('Rainfall (mm/h)')
このコードは、ケニアの都市全体の降雨分布を分析します。
湿度、気圧、風速
湿度 (%)、圧力 (hPa)、および 風速 (m/s) の同様の分布プロットは、それぞれについて有益な洞察を提供します。データセット全体にわたるこれらのパラメーターのバリエーション。
気象条件 (「雲」、「雨」など) がカウントされ、円グラフを使用して視覚化され、その比例分布が示されました:
condition_counts = df1['weather_condition'].value_counts() plt.figure(figsize=(8,8)) plt.pie(condition_counts, labels=condition_counts.index, autopct='%1.1f%%', pctdistance=1.1, labeldistance=0.6, startangle=140) plt.title('Distribution of Weather Conditions') plt.axis('equal') plt.show()
重要な分析の 1 つは、都市別の総降雨量でした:
rainfall_by_city = df1.groupby('city')['rain'].sum().sort_values() plt.figure(figsize=(12,12)) rainfall_by_city.plot(kind='barh', color='skyblue') plt.title('Total Rainfall by City') plt.xlabel('Total Rainfall (mm)') plt.ylabel('City') plt.tight_layout() plt.show()
この棒グラフは、観測期間中に最も多くの雨が降った都市を強調表示しており、いくつかの外れ値は他の都市と比較して顕著な降雨量を示しています。
avg_temp_by_month.plot(kind='line') plt.title('Average Monthly Temperature')
折れ線グラフは月ごとの気温の変動を明らかにし、季節の変化を示しています。
monthly_rain.plot(kind='line') plt.title('Average Monthly Rainfall')
同様に、降雨量が月ごとにどのように変化するかを観察するために分析されました。
また、毎月の気温と降水量をより直感的に理解できるよう、ヒートマップを使用してデータを視覚化しました。
月平均気温と降水量のヒートマップは次のとおりです
次に、主要な気象変数間の相関行列を計算しました:
correlation_matrix = df1[['temperature_celsius', 'humidity_pct', 'pressure_hpa', 'wind_speed_ms', 'rain', 'clouds']].corr() correlation_matrix sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm') plt.title('Correlation Between Weather Variables')
このヒートマップにより、変数間の関係を特定することができました。たとえば、予想どおり、温度と湿度の間に負の相関関係が観察されました。
モンバサやニエリなどの個々の都市に焦点を当て、その独特の気象パターンを調査しました:
モンバサの気温傾向
plt.plot(monthly_avg_temp_msa) plt.title('Temperature Trends in Mombasa Over Time')
この都市は、年間を通して気温に大きな変動がありました。
ニエリの降雨傾向
plt.plot(monthly_avg_rain_nyr) plt.title('Rainfall Trends in Nyeri Over Time')
ニエリの降雨量データには明確な季節パターンが示されており、降水量は特定の月にピークに達しました。
この分析は、気温、降水量、その他の主要な気象変数に焦点を当て、主要都市の気象状況の包括的な概要を提供します。ヒストグラム、折れ線グラフ、円グラフ、ヒートマップなどの視覚化を使用することで、データから有意義な洞察を抽出することができました。さらなる分析には、これらの傾向を過去の気象パターンと比較したり、将来の気象傾向を予測するための予測モデリングを探索したりすることが含まれる可能性があります。
この分析の完全なコードを含む Jupyter Notebook は、私の GitHub リポジトリにあります)。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3