0. Abstract
- 巨大地震(M>8のもの)は多くの場合、月による潮汐応力による地球の変形が、発生のトリガとなっているらしい
- 過去に発生した地震を、統計的に扱って潮汐との関連を議論した論文もいくつかあった
- しかし、当然といえば当然なのだが、Tidal Phase Angleについて議論していても、Lunar AgeやLunar Phaseを明確に示したものは見つからなかった
- Tidal Phase Angleは、Lunar Ageとほぼ同じような振るまいとなるので、当然といえば当然か
- 一般人が自分でTidal Phase Angleを計算できるとは到底思えない
- しかし、月と太陽の位置なら自分で見ればわかる
- なので、Lunar AgeとEarthquakeの発生状況を可視化した
1. Introduction
この記事は、過去の地震が統計的にどのような 月の位置と位相の時に発生したのか
を可視化するものである。
月からの潮汐の影響を初めて議論したのは、いまから100年以上も前のSchuster (1897)[1]である。その後、地球潮汐と地震の関係については、特定の震源(群)を対象とした研究としてTanaka (2012)[4]や Ide et al. (2016)[5]といった研究がある。またTsuruoka and Ohtake (1995)[2]は、世界で発生した地震を対象にして地球潮汐との関係を議論したが、非学術領域の一般の人々からみて難解である。そのため、結局のところ月と地震の関係については、世の多くの人から見ると、いまいち要領を得ない。
そこで、月や太陽を見れば、地震が発生する確率を想起できるようにすることが、このレポートの目的である。
2. Data
2.1 Data Source
可視化対象とする地震カタログは、米国地質研究所(USGS: United States Geological Survey)が提供した(と思われる)、Significant Earthquakes, 1965-2016を利用する。
このデータは、マグニチュードMが5.5以上のものだけがカタログされている。
USGSだけではなく、日本の気象庁や防災研でも過去の地震カタログを公開している。しかしシンプルな一覧になっておらず、非常に使いにくい。そのため、上述のデータを利用する。
本来、地震はそれぞれ各地点でのプレートテクトニクスによるものなので、地域特性というものが必ず存在する。今回、全地球という広域の地震活動を対象としたため、地域特性を一切考慮していない。そのために、本職の研究者から見たときに何かしら違和感を覚える内容かもしれないことにご留意いただきたい。
2.2 Data Overview
まずはデータを読みこんで、最初の数行を確認する。
分析と可視化は、pythonを利用する。
import math
import datetime
import os, sys
import numpy as np
import pandas as pd
DATA_DIR = "/kaggle/input/earthquake-database/" + os.sep
# read data file
earthquake = pd.read_csv(
DATA_DIR+"database.csv",
sep=",",
parse_dates={'datetime':['Date', 'Time']},
encoding="utf-8",
error_bad_lines=False,
)
# treating irregular data
for idx in [3378,7512,20650]:
earthquake.at[idx, "datetime"] = earthquake.at[idx, "datetime"].split(" ")[0]
earthquake["datetime"] = pd.to_datetime(earthquake["datetime"], utc=True)
earthquake.set_index(["datetime"], inplace=True)
earthquake.head()
""" Output
Latitude Longitude Type Depth Depth Error Depth Seismic Stations Magnitude Magnitude Type Magnitude Error Magnitude Seismic Stations ... Horizontal Error Root Mean Square ID Source Location Source Magnitude Source Status inner moon_dist sun_dist
datetime
1965-01-02 13:44:18 19.246 145.616 Earthquake 131.6 NaN NaN 6.0 MW NaN NaN ... NaN NaN ISCGEM860706 ISCGEM ISCGEM ISCGEM Automatic 0.364867 4.128686e+08 1.471089e+11
1965-01-04 11:29:49 1.863 127.352 Earthquake 80.0 NaN NaN 5.8 MW NaN NaN ... NaN NaN ISCGEM860737 ISCGEM ISCGEM ISCGEM Automatic -0.996429 4.065270e+08 1.471063e+11
1965-01-05 18:05:58 -20.579 -173.972 Earthquake 20.0 NaN NaN 6.2 MW NaN NaN ... NaN NaN ISCGEM860762 ISCGEM ISCGEM ISCGEM Automatic 0.947831 4.052391e+08 1.471037e+11
1965-01-08 18:49:43 -59.076 -23.557 Earthquake 15.0 NaN NaN 5.8 MW NaN NaN ... NaN NaN ISCGEM860856 ISCGEM ISCGEM ISCGEM Automatic 0.248578 3.896846e+08 1.471106e+11
1965-01-09 13:32:50 11.938 126.427 Earthquake 15.0 NaN NaN 5.8 MW NaN NaN ... NaN NaN ISCGEM860890 ISCGEM ISCGEM ISCGEM Automatic -0.988605 3.882323e+08 1.471218e+11
"""
こんな感じのデータとなっていた。
2.3 World Map
地震の震源分布を確認する。
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
%matplotlib inline
ti = "Map of Earthquake's epicenter duaring 1965-2016"
fig = plt.figure(figsize=(18, 18), dpi=96)
plt.rcParams["font.size"] = 24
m = Basemap(projection='robin', lat_0=0, lon_0=-170, resolution='c')
m.drawcoastlines()
m.fillcontinents(color='#606060', zorder = 1)
for i in range(5,10,1):
#print(i)
tmp = earthquake[(earthquake["Magnitude"]>=i)&(earthquake["Magnitude"]<i+1)&(earthquake["Type"]=="Earthquake")]
x, y = m(list(tmp.Longitude), list(tmp.Latitude))
points = m.plot(x, y, "o", label=f"Mag.: {i}.x", markersize=0.02*float(i)**3.2, alpha=0.55+0.1*float(i-5))
plt.title(f"{ti}", fontsize=22)
plt.legend(bbox_to_anchor=(1.01, 1), loc='upper left', borderaxespad=0, fontsize=18)
plt.show()
環太平洋造山帯に、地震が集中していることが明瞭である。
っていうか日本ヤバイ。
2.4 Distribution of the Depth
震源の深さ分布を確認する。
ti = "Distribution of Earthquake's Depth"
plt.figure(figsize=(20, 12), dpi=96)
plt.rcParams["font.size"] = 24
for i in range(5,9,1):
#print(i)
tmp = earthquake[(earthquake["Magnitude"]>=i)&(earthquake["Magnitude"]<i+1)&(earthquake["Type"]=="Earthquake")]
plt.hist(tmp["Depth"], bins=50, density=True, histtype='step', linewidth=2.5, label=f"Mag.: {i}.x")
plt.legend(bbox_to_anchor=(1.02, 1), loc='upper left', borderaxespad=0, fontsize=18)
plt.xlabel("Depth, km")
plt.ylabel("Count of Earthquake (Normarized at Total surface=1)")
plt.title(f"{ti}")
plt.show()
大半の地震は、
- 深さ100㎞以下の表層部分に集中している
- 深さ550-650kmの領域にも、わずかながら発生している
ことがわかる。
このグラフだけからはわからないが、深さ550kmを超えるような地震はおそらくプレート境界型ではなく、大陸中央部の大陸地殻内部で発生した地震なのだろう。
潮汐応力や海洋潮汐を起因とする地震の発生深度は、そのメカニズムからしておよそ最大70-80kmまでとなる。
以降、可視化の対象とするデータは、80km以浅のものを対象とすることにする。
earthquake = earthquake[earthquake["Depth"]<80]
earthquake = earthquake[earthquake["Type"]=="Earthquake"]
3. Orbit calculation of the Moon and the Sun from the Earth
地球表層部における月からの潮汐応力は、以下の時に大きくなる
- 月―地球間の距離が近い時
- 起潮力は、距離の 3乗に反比例 するため 参考
- 距離の影響が強いため、太陽の影響は月のおよそ45%
- 新月か満月の時
- 太陽と月からの万有引力が同じ方向となり、万有引力のベクトルが揃うため
- 満潮か干潮の前後
- 海面の高さ変化が、地殻への荷重の変化となるため
そこで、取得した地震リストの各時刻に対して
- 月―地球間の距離
- 太陽―地球間の距離
- 震源地から見た太陽と月の位相角
- 震源地から見た月の方位と高度
を求めることにする。
3.1 Library
天体の位置計算に便利なライブラリであるAstropyを使用する。
3.2 Ephemeris for Astronomical position calculation
天体の位置計算を行う際の天文暦として、JPL (Jet Propulsion Laboratory:米国ジェット推進研究所)が公開している天文暦のうち、最新のDE432sを使用する。DE432sは、DE432より短期間(1950-2050)である代わりに、ファイルサイズが小さく(~10MB)、扱いやすい。(参考)
3.3 Obtaining of Phase Angle between the Sun and the Moon
4. Data Visualization
5. Summary
地震の発生時刻における月と太陽の位置関係を調べた。
その結果、地球全体で見たときの大きな地震(M>5.5)で以下のようなことがわかった。
- 地震の発生トリガとして、月(厳密には月軌道の特徴)は地震に関連がありそう
- 地球が月と太陽から受ける潮汐応力の変動に対応して、地震の発生件数が増減している
- 赤道付近の地震は、満月ないし新月の時に地震が発生しやすい傾向にある
- 年周期(季節変動)は確認できなかった
さらに、以下のような傾向があることも分かった。
- 特にマグニチュード8を超えるような大きな地震は、満月ないし新月の日の周辺での偏りが確認できる
- 満月ないし新月の時の地震の発生時刻は、 月の出ないし月の入り周辺の時刻で多い
本来ならば、個々の地震の震源の特徴をもとに、本当に月潮汐に起因した地震かどうかの精査を行う必要がある。例えば、特定の震源を対象とした研究としてTanaka (2012)[4]や Ide et al. (2016)[5]といった研究がある。が、そこは本職の研究者に託し、ここでは世界の地震に対する統計的な傾向の話にとどめる。
6. Future Prospects
言われるまでもなく、日本は地震大国である。そのため、過去に地震を起因とする津波や火事などを含めて、大きな災害がたびたび発生した。そのため、地震予知に大きな関心を持ち、地震予知連絡会なる組織が政府主導で運営されている。
しかし、地震はその多くがプレート破壊型の地震で、間接的に同じプレートテクトニクスを起因とする断層型地震を含めると、全地震の大半を占める(出典元は失念)。
いずれにしても、両者はともに地球プレートの破壊活動で起こるもので、また一般的に破壊活動の将来予測は、そもそも物理学的に不可能である
(よほど特殊な条件下なら不可能ではないが、そうした特殊な条件が自然にそろうことはまずない)。
したがって 「地震予知は原理的に不可能である」 が、最近は行政も防災ではなく減災に力点をシフトさせつつある。減災という観点ならば、天気予報のような感覚で発生確率を扱うことができれば、QOLの向上に寄与できる可能性もある(例えば、今週は大地震の確率が高いから、遠出は再来週にしよう、など)。
Future Work
ある程度の範囲の特定地域を対象に、同じような可視化をしてみたいと思う。
地域によっては、強く月の影響が表れるところもあるかもしれない。