10月9日の早朝と午後の関東地方の地震が気になったので、9月1日〜10月9日の間に首都圏で起きたマグニチュード1.5以上の地震と、日本全国で起きたマグニチュード4.5以上の地震の震源地を地図上にプロットしてみることにした。令和になってから首都圏での自然災害が連発しているので(台風15号と台風19号による被害)、首都圏大地震(首都圏でのM6.5以上の地震)の可能性が非常に高まっているように思えるのは私だけではないはずだ。近い将来に確実に起こる首都圏巨大地震に備えておいた方が良いだろう。その前に、首都圏民は、伊勢湾台風以来60年ぶりとなる超巨大台風(上陸時の勢力がカテゴリー5になると予想されている)に対する備えも万全を期す必要がある。
import folium
import pandas as pd
df = pd.read_csv('./git/oct_sep_2019_earthquakes.csv',encoding='utf-8')
df.head()
df.tail()
9月1日〜10月9日の39日間で19131回も地震が発生しているようである。
スポンサーリンク
foliumで震源地を地図上にプロット¶
首都圏で起きたマグニチュード1.5以上の地震と、日本全国で起きたマグニチュード4.5以上の地震だけを抽出する。
df2 = df[(df['マグニチュード']>=1.5) & (df['地名'].str.contains("東京|区|埼玉|神奈川|山梨|千葉|栃木|茨城|群馬|静岡")) | (df['マグニチュード']>=4.5)]
m = folium.Map(location=[35.658099,139.741357],tiles="OpenStreetMap",zoom_start=5)
for i in range(0,len(df2)):
if df2.iloc[i]['マグニチュード']>=1.5 and df2.iloc[i]['マグニチュード']<2.0:
folium.CircleMarker([df2.iloc[i]['経度'],df2.iloc[i]['緯度']],
radius=3*df2.iloc[i]['マグニチュード'],
popup=folium.Popup('<div style="font-size: 18pt; color : black">'
+"発生日:"+df2.iloc[i]['日']+"<br>"+"発生時刻:"+df2.iloc[i]['時']+
"<br>"+"震源地:"+df2.iloc[i]['地名']+"<br>"+"マグニチュード:"+
df2.iloc[i]['マグニチュード'].astype(str)+"<br>"+"震源の深さ:"+
df2.iloc[i]['深さ'].astype(str)+"km"+'</div>',max_width=330,min_width=330,
parse_html=False),color='blue',fill_color='blue',).add_to(m)
if df2.iloc[i]['マグニチュード']>=2.0 and df2.iloc[i]['マグニチュード']<2.5:
folium.CircleMarker([df2.iloc[i]['経度'],df2.iloc[i]['緯度']],
radius=3.9*df2.iloc[i]['マグニチュード'],
popup=folium.Popup('<div style="font-size: 18pt; color : black">'
+"発生日:"+df2.iloc[i]['日']+"<br>"+"発生時刻:"+df2.iloc[i]['時']+
"<br>"+"震源地:"+df2.iloc[i]['地名']+"<br>"+"マグニチュード:"+
df2.iloc[i]['マグニチュード'].astype(str)+"<br>"+"震源の深さ:"+
df2.iloc[i]['深さ'].astype(str)+"km"+'</div>',max_width=330,min_width=330,
parse_html=False),color='red',fill_color='red',).add_to(m)
if df2.iloc[i]['マグニチュード']>=2.5 and df2.iloc[i]['マグニチュード']<3.0:
folium.CircleMarker([df2.iloc[i]['経度'],df2.iloc[i]['緯度']],
radius=3.8*df2.iloc[i]['マグニチュード'],
popup=folium.Popup('<div style="font-size: 18pt; color : black">'
+"発生日:"+df2.iloc[i]['日']+"<br>"+"発生時刻:"+df2.iloc[i]['時']+
"<br>"+"震源地:"+df2.iloc[i]['地名']+"<br>"+"マグニチュード:"+
df2.iloc[i]['マグニチュード'].astype(str)+"<br>"+"震源の深さ:"+
df2.iloc[i]['深さ'].astype(str)+"km"+'</div>',max_width=330,min_width=330,
parse_html=False),color='green',fill_color='green',).add_to(m)
if df2.iloc[i]['マグニチュード']>=3.0 and df2.iloc[i]['マグニチュード']<3.5:
folium.CircleMarker([df2.iloc[i]['経度'],df2.iloc[i]['緯度']],
radius=3.7*df2.iloc[i]['マグニチュード'],
popup=folium.Popup('<div style="font-size: 18pt; color : black">'
+"発生日:"+df2.iloc[i]['日']+"<br>"+"発生時刻:"+df2.iloc[i]['時']+
"<br>"+"震源地:"+df2.iloc[i]['地名']+"<br>"+"マグニチュード:"+
df2.iloc[i]['マグニチュード'].astype(str)+"<br>"+"震源の深さ:"+
df2.iloc[i]['深さ'].astype(str)+"km"+'</div>',max_width=330,min_width=330,
parse_html=False),color='cyan',fill_color='cyan',).add_to(m)
if df2.iloc[i]['マグニチュード']>=3.5 and df2.iloc[i]['マグニチュード']<4.0:
folium.CircleMarker([df2.iloc[i]['経度'],df2.iloc[i]['緯度']],
radius=3.6*df2.iloc[i]['マグニチュード'],
popup=folium.Popup('<div style="font-size: 18pt; color : black">'
+"発生日:"+df2.iloc[i]['日']+"<br>"+"発生時刻:"+df2.iloc[i]['時']+
"<br>"+"震源地:"+df2.iloc[i]['地名']+"<br>"+"マグニチュード:"+
df2.iloc[i]['マグニチュード'].astype(str)+"<br>"+"震源の深さ:"+
df2.iloc[i]['深さ'].astype(str)+"km"+'</div>',max_width=330,min_width=330,
parse_html=False),color='magenta',fill_color='magenta',).add_to(m)
if df2.iloc[i]['マグニチュード']>=4.0 and df2.iloc[i]['マグニチュード']<4.5:
folium.CircleMarker([df2.iloc[i]['経度'],df2.iloc[i]['緯度']],
radius=3.5*df2.iloc[i]['マグニチュード'],
popup=folium.Popup('<div style="font-size: 18pt; color : black">'
+"発生日:"+df2.iloc[i]['日']+"<br>"+"発生時刻:"+df2.iloc[i]['時']+
"<br>"+"震源地:"+df2.iloc[i]['地名']+"<br>"+"マグニチュード:"+
df2.iloc[i]['マグニチュード'].astype(str)+"<br>"+"震源の深さ:"+
df2.iloc[i]['深さ'].astype(str)+"km"+'</div>',max_width=330,min_width=330,
parse_html=False),color='purple',fill_color='purple',).add_to(m)
if df2.iloc[i]['マグニチュード']>=4.5 and df2.iloc[i]['マグニチュード']<5.0:
folium.CircleMarker([df2.iloc[i]['経度'],df2.iloc[i]['緯度']],
radius=3.4*df2.iloc[i]['マグニチュード'],
popup=folium.Popup('<div style="font-size: 18pt; color : black">'
+"発生日:"+df2.iloc[i]['日']+"<br>"+"発生時刻:"+df2.iloc[i]['時']+
"<br>"+"震源地:"+df2.iloc[i]['地名']+"<br>"+"マグニチュード:"+
df2.iloc[i]['マグニチュード'].astype(str)+"<br>"+"震源の深さ:"+
df2.iloc[i]['深さ'].astype(str)+"km"+'</div>',max_width=330,min_width=330,
parse_html=False),color='darkyellow',fill_color='darkyellow',).add_to(m)
if df2.iloc[i]['マグニチュード']>=5.0 and df2.iloc[i]['マグニチュード']<5.5:
folium.CircleMarker([df2.iloc[i]['経度'],df2.iloc[i]['緯度']],
radius=3.3*df2.iloc[i]['マグニチュード'],
popup=folium.Popup('<div style="font-size: 18pt; color : black">'
+"発生日:"+df2.iloc[i]['日']+"<br>"+"発生時刻:"+df2.iloc[i]['時']+
"<br>"+"震源地:"+df2.iloc[i]['地名']+"<br>"+"マグニチュード:"+
df2.iloc[i]['マグニチュード'].astype(str)+"<br>"+"震源の深さ:"+
df2.iloc[i]['深さ'].astype(str)+"km"+'</div>',max_width=330,min_width=330,
parse_html=False),color='violet',fill_color='violet',).add_to(m)
if df2.iloc[i]['マグニチュード']>=5.5 and df2.iloc[i]['マグニチュード']<6.0:
folium.CircleMarker([df2.iloc[i]['経度'],df2.iloc[i]['緯度']],
radius=3.2*df2.iloc[i]['マグニチュード'],
popup=folium.Popup('<div style="font-size: 18pt; color : black">'
+"発生日:"+df2.iloc[i]['日']+"<br>"+"発生時刻:"+df2.iloc[i]['時']+
"<br>"+"震源地:"+df2.iloc[i]['地名']+"<br>"+"マグニチュード:"+
df2.iloc[i]['マグニチュード'].astype(str)+"<br>"+"震源の深さ:"+
df2.iloc[i]['深さ'].astype(str)+"km"+'</div>',max_width=330,min_width=330,
parse_html=False),color='skyblue',fill_color='skyblue',).add_to(m)
if df2.iloc[i]['マグニチュード']>=6.0:
folium.CircleMarker([df2.iloc[i]['経度'],df2.iloc[i]['緯度']],
radius=3.1*df2.iloc[i]['マグニチュード'],
popup=folium.Popup('<div style="font-size: 18pt; color : black">'
+"発生日:"+df2.iloc[i]['日']+"<br>"+"発生時刻:"+df2.iloc[i]['時']+
"<br>"+"震源地:"+df2.iloc[i]['地名']+"<br>"+"マグニチュード:"+
df2.iloc[i]['マグニチュード'].astype(str)+"<br>"+"震源の深さ:"+
df2.iloc[i]['深さ'].astype(str)+"km"+'</div>',max_width=330,min_width=330,
parse_html=False),color='salmonpink',fill_color='salmonpink',).add_to(m)
m