月や太陽からの潮汐力(起潮力)を計算するPythonライブラリー
東日本大震災やスマトラ沖の地震の際、月や太陽の引力が地球に及ぼす潮汐力(起潮力)が地震発生の最後の一押しになったのではないかとの調査研究があります。
以前から、地震と潮汐力には関係があるのではと言われていますがWikipediaの『東北地方太平洋沖地震 』の項に
1976年から2011年までの期間に本震震源域で発生した Mw 5.0 以上の地震と潮汐力の関係を調査したところ、1976年からの約25年間は相関関係がなかった。しかし、2000年頃から次第に相関関係が現れ、本震の発生直前では明瞭な傾向が出現し、断層に掛かる力が最大になる時間帯に地震が多く発生していた。特に、前震とされる3月9日11時45分(三陸沖)M 7.3 の震源と本震の破壊開始点の間の領域付近には強い相関が現れていたが、本震以降は潮汐力との関係は見られなくなった。
との一文があったので、説明の元になっている研究を辿っていくと、防災科学技術研究所の方の調査のようで、日本地震学会の広報紙に以下のような調査結果を寄稿されてました。
広報紙「なゐふる」|出版物・資料|公益社団法人 日本地震学会
http://www.zisin.jp/publications/pdf/nf-vol91.pdf
ということで、地震と潮汐力の関係を自分でも確かめてみたく、潮汐力を計算する仕方を調べてたら、Pythonライブラリーに、tidegravityなる月と太陽が地球に及ぼす潮汐力を計算するうってつけのライブラリーがあったので、自分のメモ用も兼ねて、ちょっと、掲載。
使い方は以下のような感じで、潮汐力を知りたい地点の緯度、経度、時間、そして、海抜(山の上でも、地下でも構わない)まで指定できる優れもののようで、
東京都庁、海抜0mでの2018年9月25日0時0分0秒(世界標準時)から24時間、1秒毎の潮汐力の計算は以下のような感じでやるんだと思うんですけど
from datetime import datetime
from tidegravity import solve_point_corr
lat = 35.689556
lon = 139.691722
alt = 0
t0 = datetime(2018, 9, 25, 0, 0, 0)
result_df = solve_point_corr(lat, lon, alt, t0, n=60*60*24, increment='S')
result_df
結果が以下で、gmが月、gsが太陽、g0がそれらの合計で、値はその地点での重力加速度からの差分かな(たぶん)
lat lon alt gm gs g0
2018-09-25 00:00:00 35.689556 139.691722 0 0.022260 0.005552 0.027812
2018-09-25 00:00:01 35.689556 139.691722 0 0.022268 0.005556 0.027824
2018-09-25 00:00:02 35.689556 139.691722 0 0.022276 0.005560 0.027836
2018-09-25 00:00:03 35.689556 139.691722 0 0.022284 0.005564 0.027848
2018-09-25 00:00:04 35.689556 139.691722 0 0.022292 0.005568 0.027860
2018-09-25 00:00:05 35.689556 139.691722 0 0.022300 0.005572 0.027872
2018-09-25 00:00:06 35.689556 139.691722 0 0.022309 0.005576 0.027884
2018-09-25 00:00:07 35.689556 139.691722 0 0.022317 0.005580 0.027896
2018-09-25 00:00:08 35.689556 139.691722 0 0.022325 0.005584 0.027909
2018-09-25 00:00:09 35.689556 139.691722 0 0.022333 0.005588 0.027921
2018-09-25 00:00:10 35.689556 139.691722 0 0.022341 0.005592 0.027933
2018-09-25 00:00:11 35.689556 139.691722 0 0.022349 0.005596 0.027945
2018-09-25 00:00:12 35.689556 139.691722 0 0.022357 0.005600 0.027957
2018-09-25 00:00:13 35.689556 139.691722 0 0.022365 0.005604 0.027969
2018-09-25 00:00:14 35.689556 139.691722 0 0.022373 0.005608 0.027981
2018-09-25 00:00:15 35.689556 139.691722 0 0.022381 0.005612 0.027993
2018-09-25 00:00:16 35.689556 139.691722 0 0.022390 0.005616 0.028006
2018-09-25 00:00:17 35.689556 139.691722 0 0.022398 0.005620 0.028018
2018-09-25 00:00:18 35.689556 139.691722 0 0.022406 0.005624 0.028030
2018-09-25 00:00:19 35.689556 139.691722 0 0.022414 0.005628 0.028042
2018-09-25 00:00:20 35.689556 139.691722 0 0.022422 0.005632 0.028054
2018-09-25 00:00:21 35.689556 139.691722 0 0.022430 0.005636 0.028066
2018-09-25 00:00:22 35.689556 139.691722 0 0.022438 0.005640 0.028078
2018-09-25 00:00:23 35.689556 139.691722 0 0.022446 0.005644 0.028090
2018-09-25 00:00:24 35.689556 139.691722 0 0.022454 0.005648 0.028102
2018-09-25 00:00:25 35.689556 139.691722 0 0.022462 0.005652 0.028115
2018-09-25 00:00:26 35.689556 139.691722 0 0.022471 0.005656 0.028127
2018-09-25 00:00:27 35.689556 139.691722 0 0.022479 0.005660 0.028139
2018-09-25 00:00:28 35.689556 139.691722 0 0.022487 0.005664 0.028151
2018-09-25 00:00:29 35.689556 139.691722 0 0.022495 0.005668 0.028163
... ... ... ... ... ... ...
2018-09-25 23:59:30 35.689556 139.691722 0 -0.009270 0.005075 -0.004195
2018-09-25 23:59:31 35.689556 139.691722 0 -0.009262 0.005079 -0.004183
2018-09-25 23:59:32 35.689556 139.691722 0 -0.009254 0.005083 -0.004171
2018-09-25 23:59:33 35.689556 139.691722 0 -0.009246 0.005087 -0.004159
2018-09-25 23:59:34 35.689556 139.691722 0 -0.009238 0.005091 -0.004147
2018-09-25 23:59:35 35.689556 139.691722 0 -0.009230 0.005095 -0.004135
2018-09-25 23:59:36 35.689556 139.691722 0 -0.009222 0.005099 -0.004123
2018-09-25 23:59:37 35.689556 139.691722 0 -0.009214 0.005103 -0.004111
2018-09-25 23:59:38 35.689556 139.691722 0 -0.009206 0.005107 -0.004099
2018-09-25 23:59:39 35.689556 139.691722 0 -0.009198 0.005111 -0.004087
2018-09-25 23:59:40 35.689556 139.691722 0 -0.009190 0.005115 -0.004075
2018-09-25 23:59:41 35.689556 139.691722 0 -0.009182 0.005119 -0.004063
2018-09-25 23:59:42 35.689556 139.691722 0 -0.009174 0.005123 -0.004051
2018-09-25 23:59:43 35.689556 139.691722 0 -0.009166 0.005127 -0.004039
2018-09-25 23:59:44 35.689556 139.691722 0 -0.009158 0.005131 -0.004027
2018-09-25 23:59:45 35.689556 139.691722 0 -0.009150 0.005135 -0.004015
2018-09-25 23:59:46 35.689556 139.691722 0 -0.009142 0.005139 -0.004003
2018-09-25 23:59:47 35.689556 139.691722 0 -0.009134 0.005143 -0.003991
2018-09-25 23:59:48 35.689556 139.691722 0 -0.009126 0.005147 -0.003979
2018-09-25 23:59:49 35.689556 139.691722 0 -0.009118 0.005151 -0.003966
2018-09-25 23:59:50 35.689556 139.691722 0 -0.009110 0.005155 -0.003954
2018-09-25 23:59:51 35.689556 139.691722 0 -0.009102 0.005159 -0.003942
2018-09-25 23:59:52 35.689556 139.691722 0 -0.009094 0.005163 -0.003930
2018-09-25 23:59:53 35.689556 139.691722 0 -0.009086 0.005167 -0.003918
2018-09-25 23:59:54 35.689556 139.691722 0 -0.009078 0.005171 -0.003906
2018-09-25 23:59:55 35.689556 139.691722 0 -0.009070 0.005175 -0.003894
2018-09-25 23:59:56 35.689556 139.691722 0 -0.009062 0.005179 -0.003882
2018-09-25 23:59:57 35.689556 139.691722 0 -0.009054 0.005183 -0.003870
2018-09-25 23:59:58 35.689556 139.691722 0 -0.009046 0.005187 -0.003858
2018-09-25 23:59:59 35.689556 139.691722 0 -0.009038 0.005191 -0.003846
作図したいときはこんな感じ
from matplotlib import pyplot as plt
corrections = result_df['g0'].values
x=result_df.index
X=x.values
plt.plot(X,corrections)
plt.ylabel('Tidal Correction [mGals]')
plt.show()