「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Python を使用した包括的な気象データ分析: 気温、降水量の傾向、視覚化

Python を使用した包括的な気象データ分析: 気温、降水量の傾向、視覚化

2024 年 11 月 7 日に公開
ブラウズ:978
  • ケニアのさまざまな都市の気象データ分析と予測
    • 導入
    • データセットの概要
    • 探索的データ分析
    • 主要な気象特徴の視覚化
    • 気象状況分析
    • 都市別降雨量
    • 月平均気温
    • 月間平均降水量
    • 気象変数間の相関関係
    • ケーススタディ: 都市特有の傾向
    • 結論

ケニアのさまざまな都市の気象データ分析と予測


導入

この記事では、Python を使用して天気パターンを分析する方法を説明します。気温傾向の特定から降水量の視覚化まで、このステップバイステップのガイドは、気象分析にデータ サイエンス技術を使用することに興味がある人に最適です。実用的な洞察を得るために、コード、データ操作、および視覚化を検討します。

ケニアでは、天気は多くの分野、特に農業、観光、アウトドア活動で重要な役割を果たしています。農家、企業、イベント プランナーは、意思決定を行うために正確な気象情報を必要としています。ただし、気象パターンは地域によって大きく異なる可能性があり、現在の予測システムでは必ずしも地域に特化した洞察が得られるとは限りません。

このプロジェクトの目的は、ケニア全土のさまざまな地域の OpenWeatherMap API と Weather API からリアルタイムの気象データを収集することです。このデータはデータベースに保存され、Python を使用して分析され、次のような洞察が明らかになります。-

  • 気温の傾向
  • 降雨パターン - 湿度と風の状態

このプロジェクトでは、ケニアのさまざまな都市の気象情報を含むデータセットを分析します。データセットには、温度、湿度、気圧、風速、視程、降雨量などの要素を含む 3,000 行を超える気象観測結果が含まれています。これらの洞察を使用して、農業、観光、さらには管理などの天候に敏感なセクターにおける意思決定を支援できる、正確な地域固有の天気予報を提供することを目指しています。

データセットの概要

データセットは複数の列を使用して構造化されました:

  • Datetime - 天気がいつ記録されたかを示すタイムスタンプ。
  • 都市と国 - 気象観測の場所。
  • 緯度と経度 - 場所の地理座標。
  • 温度 (摂氏) - 記録された温度。
  • 湿度 (%) - 空気中の湿度の割合。
  • 圧力 (hPa) - ヘクトパスカル単位の大気圧。
  • 風速 (m/s) - その時の風速。
  • 雨 (mm) - ミリメートル単位で測定された降雨量。
  • 雲 (%) - 雲の範囲の割合。
  • 気象条件と天気の説明 - 天気の一般的および詳細な説明 (例:「雲」、「散在雲」)。

これは、データベース内のデータの構造です。
Comprehensive Weather Data Analysis Using Python: Temperature, Rainfall Trends, and Visualizations


探索的データ分析

分析の最初のステップには、データの基本的な探索が含まれていました。
_ データ ディメンション - データセットには 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()

Comprehensive Weather Data Analysis Using Python: Temperature, Rainfall Trends, and Visualizations

都市別の降雨量

重要な分析の 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()

この棒グラフは、観測期間中に最も多くの雨が降った都市を強調表示しており、いくつかの外れ値は他の都市と比較して顕著な降雨量を示しています。

Comprehensive Weather Data Analysis Using Python: Temperature, Rainfall Trends, and Visualizations

月平均気温

avg_temp_by_month.plot(kind='line')
plt.title('Average Monthly Temperature')

折れ線グラフは月ごとの気温の変動を明らかにし、季節の変化を示しています。

Comprehensive Weather Data Analysis Using Python: Temperature, Rainfall Trends, and Visualizations

月間平均降水量

monthly_rain.plot(kind='line')
plt.title('Average Monthly Rainfall')

同様に、降雨量が月ごとにどのように変化するかを観察するために分析されました。

Comprehensive Weather Data Analysis Using Python: Temperature, Rainfall Trends, and Visualizations

また、毎月の気温と降水量をより直感的に理解できるよう、ヒートマップを使用してデータを視覚化しました。
月平均気温と降水量のヒートマップは次のとおりです

Comprehensive Weather Data Analysis Using Python: Temperature, Rainfall Trends, and Visualizations

Comprehensive Weather Data Analysis Using Python: Temperature, Rainfall Trends, and Visualizations

気象変数間の相関関係

次に、主要な気象変数間の相関行列を計算しました:

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 リポジトリにあります)。


リリースステートメント この記事は次の場所に転載されています: https://dev.to/edvichuki/comprehensive-weather-data-analysis-using-python-temperature-rainfall-trends-and-visualizations-1off?1 権利侵害がある場合は、study_golang までご連絡ください。 @163.com 削除
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3