巨大地震のきっかけは月なのか?->月っぽい

0. Abstract

  • 巨大地震(M>8のもの)は多くの場合、月による潮汐応力による地球の変形が、発生のトリガとなっているらしい
  • 過去に発生した地震を、統計的に扱った論文もいくつかあった
  • しかし、当然といえば当然なのだが、Tidal Phase Angleについて議論していても、Lunar AgeやLunar Phaseを明確に示したものは見つからなかった
    • Tidal Phase Angleは、Lunar Ageとほぼ同じような振るまいとなるので、当然といえば当然か
    • 一般人が自分でTidal Phase Angleを計算できるとは到底思えない
    • しかし、月と太陽の位置なら自分で見ればわかる
  • なので、Lunar AgeとEarathquakeの発生状況を可視化した

1. Introduction

この記事は、過去の地震が統計的にどのような 月の位置と位相の時に発生したのか を可視化するものである。

月からの潮汐の影響を初めて議論したのは、いまから100年以上も前のSchuster (1987)[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()

Map of Earthquake's epicenter duaring 1965-2016.png

環太平洋造山帯に、地震が集中していることが明瞭である。
っていうか日本ヤバイ。

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()

Distribution of Earthquake's Depth.png

大半の地震は、

  • 深さ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%
  • 新月か満月の時
    • 太陽と月からの万有引力が同じ方向となり、万有引力のベクトルが揃うため
  • 満潮か干潮の前後
    • 海面の高さ変化が、地殻への荷重の変化となるため

そこで、取得した地震リストの各時刻に対して

  1. 月―地球間の距離
  2. 太陽―地球間の距離
  3. 震源地から見た太陽と月の位相角
  4. 震源地から見た月の方位と高度

を求めることにする。

3.1 Library

天体の位置計算に便利なライブラリであるAstoropyを使用する。

3.2 Eephemeris 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)で以下のようなことがわかった。

  1. 統計的な観点で、地震の発生トリガとして月(厳密には月軌道の特徴)は地震に関連がありそう
  2. 地球が月と太陽から受ける潮汐応力の変動に対応して、地震の発生件数が増減している
  3. 年周期(季節変動)は確認できなかった

さらに、以下のような傾向があることも分かった。

  1. 地震は、月の公転軌道上の近地点ないし遠地点の周辺で発生することが多い
  2. 地震の発生日は、 満月ないし新月の日の周辺に若干の偏りがあるが、M>=8のような巨大地震は、明らかに新月か満月の周辺が多い
  3. 地震の発生時刻は、 月の出ないし月の入り周辺の時刻で多い

本来ならば、個々の地震の震源の特徴をもとに、本当に月潮汐に起因した地震かどうかの精査を行う必要がある。例えば、特定の震源を対象とした研究としてTanaka (2012)[4]や Ide et al. (2016)[5]といった研究がある。が、そこは本職の研究者に託し、ここでは世界の地震に対する統計的な傾向の話にとどめる。

6. Future Prospects

言われるまでもなく、日本は地震大国である。そのため、過去に地震を起因とする津波や火事などを含めて、大きな災害がたびたび発生した。そのため、地震予知に大きな関心を持ち、地震予知連絡会なる組織が政府主導で運営されている。

しかし、地震はその多くがプレート破壊型の地震で、間接的に同じプレートテクトニクスを起因とする断層型地震を含めると、全地震の大半を占める(出典元は失念)。
いずれにしても、両者はともに地球プレートの破壊活動で起こるもので、また一般的に破壊活動の将来予測は、そもそも物理学的に不可能である
(よほど特殊な条件下なら不可能ではないが、そうした特殊な条件が自然にそろうことはまずない)。

したがって 「地震予知は原理的に不可能である」 が、最近は行政も防災ではなく減災に力点をシフトさせつつある。減災という観点ならば、天気予報のような感覚で発生確率を扱うことができれば、QOLの向上に寄与できる可能性もある(例えば、今週は大地震の確率が高いから、遠出は再来週にしよう、など)。

Future Work

ある程度の範囲の特定地域を対象に、同じような可視化をしてみたいと思う。
地域によっては、強く月の影響が表れるところもあるかもしれない。

Reference

[1] Schuster, A., On lunar and solar periodicities of earthquakes, Proc. R. Soc. Lond., Vol.61, pp. 455–465 (1897).

[2] H. Tsuruoka, M. Ohtake, H. Sato,, Statistical test of the tidal triggering of earthquakes: contribution of the ocean tide loading effect, Geophysical Journal International, vol. 122, Issue 1, pp.183–194, 1995.

[3] ELIZABETH S. COCHRAN, JOHN E. VIDALE, S. TANAKA, Earth Tides Can Trigger Shallow Thrust Fault Earthquakes, Science, Vol. 306, Issue 5699, pp. 1164-1166, 2004

[4] S. Tanaka, Tidal triggering of earthquakes prior to the 2011 Tohoku‐Oki earthquake (Mw 9.1), Geophys. Res. Lett.,
39, 2012

[5] S. Ide, S. Yabe & Y. Tanaka, Earthquake potential revealed by tidal influence on earthquake size–frequency statistics, Nature Geoscience vol. 9, pp. 834–837, 2016

[6] K. Heki, Snow load and seasonal variation of earthquake occurrence in Japan, Earth and Planetary Science Letters, Vol. 207, Issues 1–4, Pages 159-164, 2003

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
問題のあるコメントを報告する

@takepan ありがとうございます

typo修正 by takepan 2019/11/14 01:21

問題のあるコメントを報告する

興味深い話ですね. 一点気になったんですが,

本来、地震はそれぞれ各地点でのプレートテクトニクスによるものなので、地域特性というものが必ず存在する。

とありますが, 地域特性もグラフを描くだけで傾向を掴めそうな気がします.

例えば, 月相で色分けすると, 以下のように満月・新月期の地震が赤道地帯に集中し, 高緯度では逆にこの傾向が弱いようにも見えます.

lunar_scatter.png

点が重なりすぎて見づらいので10度ごとのタイルに要約すると以下のようになります.

lunar_tile.png

私はこういう分野を全く知らない & 参考文献もまだ読んでないのですが, 緯度との関係についてはなにか議論されてたりするんでしょうか?

読み込みと加工

from pathlib import Path
from kaggle.api.kaggle_api_extended import KaggleApi
import numpy as np
import pandas as pd
from plotnine import *

DATASET = 'usgs/earthquake-database'
FILENAME = 'database.csv'
DATA_DIR = Path().cwd()

# download dataset
api = KaggleApi()
api.authenticate()
api.dataset_download_file(DATASET, FILENAME, path=DATA_DIR)

# read data file
earthquake = pd.read_csv(
      DATA_DIR.joinpath(FILENAME + '.zip'),
      parse_dates={'datetime': ['Date', 'Time']},
      encoding='utf-8',
      error_bad_lines=False
)

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 = earthquake.set_index(["datetime"])
earthquake = earthquake.query('Depth < 80')

#!pip install jplephem astropy
from astropy.coordinates import EarthLocation, get_body, AltAz, Longitude, Latitude, Angle
from astropy.time import Time
from astropy.coordinates import solar_system_ephemeris
solar_system_ephemeris.set('de432s')

# 各地震の震央
pos = EarthLocation(Longitude(earthquake["Longitude"], unit="deg"), Latitude(earthquake["Latitude"], unit="deg"))

# 位置を求めたい時刻一覧(地震発生時刻のリスト)
dts = Time(earthquake.index)
# 月の位置(赤道座標から地平座標へ変換)
Mpos = get_body("moon", dts).transform_to(AltAz(location=pos))
# 太陽の位置(赤道座標から地平座標へ変換)
Spos = get_body("sun", dts).transform_to(AltAz(location=pos))
# 月―太陽間の位相角(rad)
SM_angle = Mpos.position_angle(Spos).value
# Lunar Ageに相当する数値として、内積を用いる。1なら新月(日食)、-1なら満月(月食)となる
earthquake["inner"] = [np.cos(rad) for rad in SM_angle]
#earthquake["inner"] = Inner
earthquake["moon_dist"] = Mpos.distance.value
earthquake["sun_dist"] = Spos.distance.value
earthquake["moon_direction"] = Mpos.az.degree

グラフ作成

# 散布図
ggplot(earthquake, aes(x='Longitude', y='Latitude', color='inner', size='Magnitude')) + geom_point() + labs(color='Lunar Phase')

# タイル状に要約
tmp = earthquake.assign(
    Lon_binned=lambda d: pd.cut(d.Longitude, bins=np.arange(-180, 180, 10), right=True, labels=np.arange(-175, 175, 10)).astype(float),
    Lat_binned=lambda d: pd.cut(d.Latitude, bins=np.arange(-90, 90, 10), right=True, labels=np.arange(-85, 85, 10)).astype(float)
)
ggplot(tmp,
       aes(x='Lon_binned', y='Lat_binned', fill='inner', width=10, height=10)
      ) + geom_tile() + labs(x='Longitude', y='Latitude', fill='Lunar Phase')

問題のあるコメントを報告する

@s_katagiri
興味を持っていただき、ありがとうございます。そして面白い可視化、ありがとうございます。
潮汐応力の変動を大きく受ける領域が、赤道付近であることが理由だと思います。

まず赤道付近は、潮汐応力の大きさそのものが大きいです。

さらに、極域は地球自転の影響を受けにくいです。
地球が自転することにより、海の潮汐が1日2回発生するわけですが、地球自身も変形します。
この変形は、地球赤道付近(厳密には23.4度傾いています)で膨らむ場所が地球自転とともに経度方向に移動していきます。

しかし、極域はその変動がほぼありません。そのために、作成していただいた図のような結果が得られるのだと思います。

本来は、数式なども一緒に示すべきなんでしょうけど、、定性的な話だけですみません。

問題のあるコメントを報告する

非常に興味深い考察ですね。

海面の高さ変化が、地殻への荷重の変化となるため

地球は太陽の周りを公転するだけでなく、地球と月の共通重心を公転していますので、
月の重力とその遠心力(起潮力)の変化が地殻やマントル自体に及ぼす影響がダイレクトに地震を誘発する原因の可能性もあるのではないかなと思いました。

参考
https://www1.kaiho.mlit.go.jp/KAN5/soudan/faq_tpf2.html
http://home.ajisai.ne.jp/~suisen/onboro/body23.html
https://ja.wikipedia.org/wiki/%E6%9C%88%E3%81%AE%E8%BB%8C%E9%81%93

問題のあるコメントを報告する

@simgram
コメントありがとうございます。

ダイレクトに地震を誘発

たぶん、過去の本職の方の論文でも多く触れられているのですが、プレートテクトニクスによる応力に対して、月潮汐の影響はその2桁ほども小さく、ダイレクトには影響しないだろうとのことです。

ただし、月からの潮汐応力の変化の度合いは、逆にプレートテクトニクスの2桁ほど大きいとのこと。そのため、

  • 十分にプレートに歪が蓄積されている状態で
  • 外部(月)から応力変化を加えられる

と、そのタイミングで地震が発生するのではないか、ということです。

逆に言うと、プレートに歪が蓄積していなければ、月がプレートや断層を揺さぶっても、おそらく地震は発生しない。つまり、巨大地震だけが 月が最後のトリガを引いて、発生するということのようです。

。。。ということを、いろいろ論文を読み比べて理解するのは、それなりに骨が折れました。。。(笑)

問題のあるコメントを報告する

そういえば 2016年 熊本地震の、前震と本震は夜で、
どちらも明るい月が出てました。

満月かどうかは覚えてませんが :anguished:

問題のあるコメントを報告する

@boomin
丁寧にお答えいただき、誠にありがとうございます。

誤解を招く言い方をして申し訳ないのですが、ダイレクトに地震を誘発という意味は、海面の高さの変化(海水による荷重の変化)よりもむしろ、地殻やマントルへの外部からの力の変化のほうがより影響が大きいのではないのかなという意味です。
(プレートテクニクスによる力が蓄積されたことによって地震が起きることには異論はございません)

海水の慣性や海底との摩擦、水深や陸地などの影響により満潮の時刻は月の最高高度の時刻から一定時間遅れてやって来ますので、更にそこから海水の荷重の変化のタイムラグも加味すると相当なばらつきがあると予測されますので、海水の荷重の変化よりむしろ、地殻やマントルに対して直接働いている外部(月の引力や公転)の力の変化(地表面に対して水平方向の力の増大と垂直方向の力の減少)によって誘発されていると考えたほうが素直ではないかなと思った次第です。

問題のあるコメントを報告する

@simgram
なるほど一理ありますね。ただ、残念ながらそれをちゃんと評価できるほどの知識を有しておらず。。。

が、いくつかの論文を読む限りでは、特定地震の震源(域)の断層の方向も加味して、潮汐による応力変化も評価していました。
力はベクトルで向きを持つので、断層の向きによって(つまり震源:地域によって)影響を受ける程度が異なるということのようです。さらに加えて言えば、応力変化が大きいときに起きるということで、必ずしも応力の大きさが問題ではないようです。つまり、そもそもπ/2周期くらい遅れるものなのかもしれません。いずれにしろ、参照した論文は全てTidal Phase Angleについて議論しており、この値はそもそも、場所によってLunar Phaseの波から遅れがあることも織り込み済みなのかもしれません。(門外漢なので想像でしかないのですが)

地震のメカニズム自体、緻密に解明されておらず、いろいろな要因が複雑に絡み合って発生します。
そのうえで、雪やら潮汐の海面変化やらが議論されているということは、おそらくどれも決定打にはできないし、地域によって有効な外的要因も異なるのではないかと思います。そういう意味で、場所によっては、@simgram さんが言うところのダイレクトに影響を受ける地域もあるかと思います。

問題のあるコメントを報告する

@kyotoisalsosnownight

コメントありがとうございます。そうだったんですね。
2016年の熊本地震の時の値を確認してみました。

kumamoto = earthquake["2016-4-10":"2016-4-17"]
kumamoto = kumamoto[(kumamoto["Latitude"]>31)&(kumamoto["Latitude"]<33)]
kumamoto.head()

Latitude    Longitude   Type    Depth   Depth Error Depth Seismic Stations  Magnitude   Magnitude Type  Magnitude Error Magnitude Seismic Stations  ... Source  Location Source Magnitude Source    Status  p_angle inner   moon_dist   sun_dist    moon_az moon_alt
datetime                                                                                    
2016-04-14 12:26:36+00:00   32.7880 130.7042    Earthquake  9.0 1.7 NaN 6.2 MWW NaN NaN ... US  US  US  Reviewed    136.528213  -0.725713   3.819877e+08    1.500738e+11    255.215900  49.755287
2016-04-14 15:03:47+00:00   32.6973 130.7204    Earthquake  8.0 1.7 NaN 6.0 MWW NaN NaN ... US  US  US  Reviewed    138.516836  -0.749150   3.854937e+08    1.500797e+11    277.541979  17.660531
2016-04-15 16:25:06+00:00   32.7906 130.7543    Earthquake  10.0    1.7 NaN 7.0 MWW NaN NaN ... US  US  US  Reviewed    133.309973  -0.685945   3.916934e+08    1.501228e+11    279.246432  9.941127
2016-04-15 16:45:57+00:00   32.9241 130.8091    Earthquake  10.0    0.9 NaN 5.7 MWW NaN NaN ... US  US  US  Reviewed    132.340430  -0.673534   3.922257e+08    1.501232e+11    281.839741  5.725034

この時の月と太陽の位相角はおよそ135度付近で、半月の頃のようです。

もともと可視化してあった図では、M8.0以上の地震で特に新月や満月の頃に発生件数が大きくなっています。
この地震は直下型だったので、震度や被害は大きかったものの、地震の規模としては本震でもM7.0だったので、月潮汐がトリガだった可能性は高くないかもしれません。

Sign up for free and join this conversation.
If you already have a Qiita account