地震は地球上で頻繁に発生し、その発生パターンや地震の特性を理解することは、地球科学や災害管理において極めて重要です。本記事では、Pythonを使用して地震データを解析し、可視化する方法に焦点を当て、地震に関する理解を深める手法を紹介します。データの取得から解析、可視化までのステップを具体的なコード例とともに解説し、地震データの魅力的な側面に迫ります。
地震データの取得
地震データの取得には、USGS(アメリカ地質調査所)が提供している地震カタログAPIを使用します。Pythonのリクエスト(requests
)モジュールを使って、地震データを取得する例を以下に示します。
import requests import pandas as pd def fetch_earthquake_data(start_date, end_date, min_magnitude=5.0): base_url = "https://earthquake.usgs.gov/fdsnws/event/1/query" # パラメータの設定 params = { 'format': 'geojson', 'starttime': start_date, 'endtime': end_date, 'minmagnitude': min_magnitude } # データの取得 response = requests.get(base_url, params=params) data = response.json() # データをDataFrameに変換 earthquakes = pd.json_normalize(data['features']) return earthquakes # 例: 直近1年間のマグニチュード5.0以上の地震データを取得 start_date = '2023-01-01' end_date = '2024-01-01' earthquake_data = fetch_earthquake_data(start_date, end_date, min_magnitude=5.0) # データの確認 print(earthquake_data.head())
このコードでは、USGSのAPIを利用して指定した期間およびマグニチュードの条件で地震データを取得しています。取得したデータはPandasのDataFrameに変換されています。
地震データの解析
地震の発生頻度の解析
取得した地震データを解析して、地震の発生頻度を可視化する方法を紹介します。MatplotlibとSeabornを使用してヒストグラムを作成し、地震の発生頻度を年ごとに可視化します。
import matplotlib.pyplot as plt import seaborn as sns # データの整形 earthquake_data['date'] = pd.to_datetime(earthquake_data['properties.time'], unit='ms') earthquake_data['year'] = earthquake_data['date'].dt.year # ヒストグラムの描画 plt.figure(figsize=(12, 6)) sns.histplot(earthquake_data['year'], bins=30, kde=False, color='skyblue') plt.title('Earthquake Frequency Over Years') plt.xlabel('Year') plt.ylabel('Number of Earthquakes') plt.show()
このコードでは、地震データから年ごとのヒストグラムを作成しています。ヒストグラムは、特定の年における地震の発生頻度を視覚的に示しています。
地震のマグニチュードの解析
次に、地震のマグニチュードの分布を解析します。同様にMatplotlibとSeabornを使用して、マグニチュードの分布をヒストグラムで可視化します。
# ヒストグラムの描画 plt.figure(figsize=(12, 6)) sns.histplot(earthquake_data['properties.mag'], bins=30, kde=False, color='salmon') plt.title('Distribution of Earthquake Magnitudes') plt.xlabel('Magnitude') plt.ylabel('Number of Earthquakes') plt.show()
このコードでは、地震データからマグニチュードの分布をヒストグラムで可視化しています。これにより、どのようなマグニチュードの地震がよく発生しているかがわかります。
地震データの可視化
地震の発生場所の可視化
地震の発生場所を地図上にプロットして可視化するために、Foliumライブラリを使用します。FoliumはLeaflet.jsを利用してインタラクティブな地図を生成するためのPythonライブラリです。
import folium from folium.plugins import MarkerCluster # 地図の初期位置を設定 map_center = [earthquake_data['geometry.coordinates'].apply(lambda x: x[1]).mean(), earthquake_data['geometry.coordinates'].apply(lambda x: x[0]).mean()] # 地図の作成 earthquake_map = folium.Map(location=map_center, zoom_start=2) # マーカークラスターの作成 marker_cluster = MarkerCluster().add_to(earthquake_map) # マーカーを地図に追加 for index, row in earthquake_data.iterrows(): folium.Marker( location=[row['geometry.coordinates'][1], row['geometry.coordinates'][0]], popup=f"<strong>Magnitude: {row['properties.mag']}</strong><br>Date: {row['date']}", icon=folium.Icon(color='red' if row['properties.mag'] >= 7 else 'orange' if row['properties.mag'] >= 5 else 'green') ).add_to(marker_cluster) # 地図を保存 earthquake_map.save('earthquake_map.html')
このコードでは、Foliumを使用して地図上に地震の発生場所
をプロットしています。マーカーの色はマグニチュードによって異なり、地図上で視覚的に地震の強さを把握できます。生成された地図はHTML形式で保存されます。
結びつけ
Pythonを使用して地震データを取得し、解析・可視化することで、地震の特性や発生パターンに関する洞察を得ることができます。データの取得から解析、可視化までのステップをコードとともに紹介しました。これらの手法を組み合わせることで、地球の地殻変動に関する深い理解を得ることができます。地震データの解析は、地球科学や災害管理の分野での重要な活動の一環となり、Pythonの強力なツールセットがそのサポートを提供しています。 🌍🔍📊