ごく近い将来確実に起きる首都圏巨大地震に備えよう!

その買うを、もっとハッピーに。|ハピタス

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()
経度 緯度 深さ マグニチュード 地名
0 2019/9/1 00:00:20.9 30.083611 130.951667 30 1.0 種子島近海
1 2019/9/1 00:00:21.7 37.085556 140.534444 7 0.3 福島県中通り
2 2019/9/1 00:00:42.7 37.785278 140.016667 7 0.2 山形県置賜地方
3 2019/9/1 00:06:53.7 23.983889 122.835278 11 1.9 与那国島近海
4 2019/9/1 00:07:42.7 35.868889 138.118611 11 -0.5 長野県南部
df.tail()
経度 緯度 深さ マグニチュード 地名
19126 2019/10/9 23:46::7.1 40.385000 140.702500 23 0.8 秋田県内陸北部
19127 2019/10/9 23:55:56.6 35.650556 140.818333 12 2.2 千葉県東方沖
19128 2019/10/9 23:56:48.6 30.916667 130.300278 137 1.4 種子島近海
19129 2019/10/9 23:58:14.7 24.900278 123.984444 0 1.0 石垣島近海
19130 2019/10/9 23:59:52.8 24.900000 123.968889 4 1.1 石垣島近海

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