← レポート一覧

地震計プログラム
やさしい解説書

Raspberry Shake という小さな地震計と、そのデータを表示するプログラムで使われる言葉・数値・しくみを、わかりやすく説明します。むずかしい知識がなくても読めます。

地震波とは 基礎

地震が起きると、地面の中を「波」が四方八方に広がっていきます。これを地震波といいます。池に石を投げたときの波紋に似ていますが、地面の中を伝わる点が違います。

地震計が記録しているもの
地震計は、この「地面のゆれ」を時間の順に記録しています。グラフで見ると、横軸が時間・縦軸が「どのくらいゆれたか(大きさ)」になります。

地震波には大きく分けて2種類あります。次で説明します。

P波とS波 基礎

P波

震源から最初に届く波です。「P」は英語で「最初」を意味する Primary の頭文字です。揺れは比較的小さく、建物が大きく壊れることはほとんどありません。

S波

P波より遅れて届く波です。「S」は Secondary(2番目)の頭文字です。揺れが大きく、建物に被害を与えるのは主にこのS波です。緊急地震速報は「P波を捉えて、S波が来る前に知らせる」という仕組みで動いています。

震源 P波(縦波・速い) S波(横波・遅い) 先に到着 揺れ小さい 後から到着 揺れ大きい 時間軸 P波到着 S波到着 静穏 小さな縦ゆれ(P波) 大きな横ゆれ(S波・本番) 猶予時間(緊急地震速報のしくみ)
速さのちがい
P波は1秒間に約6〜7km、S波は約3〜4km進みます。震源から100km離れた場所では、P波が届いてから約15〜20秒後にS波が来ます。緊急地震速報はこの「15〜20秒」を使って警報を出しています。

このプログラムの地震検出は、P波かS波かを区別しません。「急にエネルギーが大きくなった」という変化を捉えて反応します。設定によってはP波の時点で反応できますが、設定値によってはS波が来てやっと反応するケースもあります。

震度とは 単位

震度は「ある場所でどのくらいゆれたか」を数値で表したものです。同じ地震でも、震源に近い場所は震度が大きく、遠い場所は小さくなります。気象庁が決めたルールで計算した値(計測震度・I値)をもとに、震度0〜7の階級に分けています。

震度0
震度1
震度2
震度3
震度4
震度5弱
震度5強
震度6弱
震度6強
震度7

計測震度(I値)の計算式

気象庁の方法では、地面のゆれの加速度(ガル)をもとに、次の式でI値を計算します(実際には波形にいくつかの補正処理を加えますが、基本的な考え方はこの式です)。I値が大きいほど強いゆれです。

I = 2 × log 10 (加速度 [gal]) + 0.94
I値の範囲震度階級
0.5 未満震度0
0.5 〜 1.5震度1
1.5 〜 2.5震度2
2.5 〜 3.5震度3
3.5 〜 4.5震度4
4.5 〜 5.0震度5弱
5.0 〜 5.5震度5強
5.5 〜 6.0震度6弱
6.0 〜 6.5震度6強
6.5 以上震度7

単位:ガル(gal) 単位

地震のゆれの強さは加速度(どのくらい速く動き始めるか)で表します。その単位がガル(gal)です。

ガルってどのくらい?
1 gal = 1秒間に 1cm ずつ速くなる速さの変化(1 cm/s²)

地球の重力は約 980 gal です。震度7クラスの大地震では 1,000 gal を超えることもあります。
ふだんの静かなときは 0.001〜0.1 gal 程度のごくわずかなゆれです。

Raspberry Shake から送られてくる生データは「カウント値」という数字です。これを機種ごとに決まった感度(sensitivity)という数で割り、さらに100倍するとガル(gal)になります。

加速度 [gal] = カウント値 ÷ sensitivity × 100

STA/LTA とは アルゴリズム

地震を自動で見つけるために使われている方法で、「アルゴリズム(計算の手順)」と呼びます。1970年代から世界中の地震計で使われている、とてもシンプルで確かな方法です。

考え方は一言でいうと「今この瞬間のゆれが、ふだんのゆれより大きく跳ね上がったら地震だ」というものです。

ratio(比) = STA(今の揺れ) LTA(いつもの揺れ) 静穏時:ratio ≈ 1(今 ≈ いつも) 地震波:ratio >> 1(今 >> いつも)→ トリガ発報

STA(今この瞬間のゆれの大きさ) アルゴリズム

STAは「直近ほんの数秒間のゆれの大きさの平均」です。Short-Term Average(短い時間の平均)の頭文字です。

STA = mean( 直近 N 秒間の波形の振幅 2 ) 「直近 N 秒分のサンプルを全部二乗して平均する」

なぜ「二乗」するの?

地震の波形はプラスにもマイナスにもゆれます。プラスとマイナスをそのまま足すと打ち消し合ってほぼゼロになってしまいます。二乗(×自分自身)すると必ずプラスになるので、「ゆれの大きさだけ」を正しく取り出せます。これは音響や電気でも使われる「エネルギーの計算方法」と同じ考え方です。

サンプル 平均 評価 振幅をそのまま −3, +5, −4, +6 = 1.0 揺れを過小評価 振幅を二乗 9, 25, 16, 36 = 21.5 エネルギーを正しく表現

STAの時間を変えるとどうなる?

STAを短くする(0.5〜1秒)
P波(前ぶれ)の急なゆれをすばやく捉えられます。ただし、一瞬だけのノイズ(車の振動など)にも反応しやすくなります。
STAを長くする(3〜5秒)
短い時間のゆれが「薄められて」平均されるため、P波では反応しにくくなります。大きなS波が来て初めて反応するケースが増えます。

LTA(ふだんのゆれの大きさ) アルゴリズム

LTAは「ふだんの静かなときのゆれの大きさの平均」です。Long-Term Average(長い時間の平均)の頭文字です。STAと比べる「基準」として使います。

大事なポイント
LTAは STA(今の時間帯)より前 のデータだけを使います。

こうすることで、地震が来てSTAが急増しても、LTAはすぐには変わりません。「さっきまで静かだったのに今急に大きくなった」という変化をしっかり見つけられます。
時間軸 現在 LTA窓(例:過去20秒) ふだんのゆれだけ ← P波が来てもここはすぐには変わらない STA窓 今この瞬間 P波到着の影響を受けない ここだけ急増する

LTAの時間を変えるとどうなる?

LTAを長くする(30〜60秒)
長い時間で平均するので、電車の通過や工事の振動などの一時的なノイズに引きずられにくくなります。ただし、プログラムを起動したばかりのときはLTAが計算されるまでしばらくかかります。
LTAを短くする(5〜10秒)
直前の揺れをすぐに「ふだんの状態」と判断してしまいます。大きな地震の直後に余震が来ても「ふだんと同じくらい」と誤判断して見逃すことがあります。

ratio(STA ÷ LTA) アルゴリズム

STAをLTAで割った値をratio(レシオ)といいます。「今のゆれがふだんの何倍か」を表す数です。この数があらかじめ決めたレベル(閾値・しきい値)を超えたら「地震波が来た!」と判断します。

ratio 0 1 3.5 時間 閾値 3.5(trig) P波到着 トリガ発報 ratio ≈ 1(静穏)

LTAの時間がSTAより長いほど(例:LTA=20秒、STA=1秒)、地震波が来たときにratioが大きく跳ね上がりやすくなります。ふだん静かな場所ほど、ratio が劇的に変化するので検出しやすくなります。

地震を検出してから震度を確定するまで アルゴリズム

ratioが大きくなっただけで即座に震度は確定しません。次の2段階で処理されます。

① ratio ≥ trig(閾値) 「地震波が来た!」と判断 → トリガ発報 rt_window 秒間(60秒)待機 S波が十分来るまで待つ この間も揺れを記録し続ける ② I値(計測震度)を確定 記録 + 音声アラート(VoiceVox / say)
なぜ待つの?
気象庁の震度は、最初の前ぶれ(P波)だけでなく本番のゆれ(S波)も含めた全体で決まります。P波で反応しても、すぐに震度を決めると小さすぎる値になってしまいます。だから S波が十分来るまで待ってから確定します。

同じ地震を二重に記録しないようにする

一度地震を検出した後は、しばらくの間(det-hold秒間)は次の検出をしません。S波や余震でもう一度反応して「また別の地震が来た!」と誤って記録するのを防ぐためです。

地震を検出 det-hold 20秒間は再トリガしない S波・尾振れ → 無視 det-hold解除 再トリガ可能

設定値一覧 設定

設定名 初期値 意味
--sta 1.0 秒 「今のゆれ」を見る時間の長さ。短いほどP波(前ぶれ)に素早く反応する
--lta 20.0 秒 「ふだんのゆれ」を見る時間の長さ。長いほど周辺の雑音に惑わされにくくなる
--trig 3.5 「ふだんの何倍になったら地震と判断するか」のレベル。低いと反応しやすい分、誤検知も増える
--det-hold 20.0 秒 地震を検出した後、次の検出をしない時間。余震などの二重記録を防ぐ
--rt-window 60 秒 地震を検出してから震度を確定するまで待つ時間。S波が十分来るまで待つ
--sensitivity 機種によって異なる カウント値→加速度(gal)に変換するための数。機種ごとに決まっている

設定の調整方法

設定を変えると「反応しやすさ」と「誤検知のしにくさ」が変わります。どちらかを上げるともう一方が下がる関係(トレードオフ)です。

こんな場所・状況 おすすめの調整 理由
道路沿い・騒がしい場所 LTAを長めに(30〜60秒)
trigを高めに(4〜5)
車や工事の振動で誤反応しにくくする
静かな場所・近くの地震を早く捉えたい STAを短めに(0.5秒)
trigを低めに(3.0)
P波(前ぶれ)の弱いゆれにも素早く反応できる
余震が多い状況 det-holdを長めに(60秒) 同じ地震を何度も記録してしまうのを防ぐ
最初はそのまま使ってOK
初期値のSTA=1秒・LTA=20秒・trig=3.5 は、地震学の教科書でよく使われている定番の値です。まずはそのまま使ってみて、「誤反応が多い」「見逃している」と感じてから調整するのがおすすめです。

緊急地震速報(EEW)とは EEW

テレビやスマートフォンから突然「緊急地震速報」という音が鳴ることがありますね。これは「もうすぐ大きなゆれが来るよ!」と知らせてくれるシステムです。正式名称は緊急地震速報(EEW)といいます。

大切なポイント
EEWは「地震を予言している」のではありません。
すでに起きた地震の「前ぶれの波(P波)」をキャッチして、「本番のゆれ(S波)」が届く前にあわてて知らせているのです。

気象庁は全国に約1,000か所の地震計を置いています。どこかで地震が起きると、そのデータがすぐに集まり、数秒のうちに警報を出します。

どうやって警報を出すの? しくみ

警報が出るまでの流れを見てみましょう。

① 前ぶれ波を検知 全国の地震計が P波(前ぶれ)を キャッチする ② 場所と大きさを計算 どこで起きたか・ どのくらい大きいかを 数秒で計算する ③ 各地に警報を配信 各地でどのくらい ゆれるかを予測して テレビ・スマホに送信 ① → ③ まで かかる時間は わずか数秒!

なぜ間に合うの? 波の速さのちがい

地震の波には「P波(前ぶれ)」と「S波(本番のゆれ)」の2種類があり、速さがちがいます。さらに警報を届ける「電波」はもっとずっと速いのです。

種類 速さ(だいたい) どんなゆれ?
P波(前ぶれの波) 1秒間に 5〜7 km 小さい・縦にゆれる
S波(本番のゆれ) 1秒間に 3〜4 km 大きい・横にゆれる(建物を壊す主な原因)
電波(警報の信号) 1秒間に 30万 km(光と同じ) —(揺れではなく情報)
電波の速さがカギ
S波が「1秒1kmに満たない速さ」でじわじわ近づいてくる間に、電波の警報は「光の速さ」で日本中に届きます。この速さのちがいがあるから、ゆれる前に知らせることができるのです。

警報が届いてからゆれるまでの時間 しくみ

警報が来てから本番のゆれが来るまでの時間(「猶予時間」といいます)は、震源からどのくらい離れているかによって変わります。

時間 → 地震が 発生 前ぶれの波が 地震計に届く (数秒後) 警報が スマホに届く (さらに数秒後) 身を守る時間(数秒〜数十秒) 本番のゆれが 到着 ※ 震源のすぐ真下(直下型地震)では、時間がほぼゼロになることもあります

例:震源から100 km離れた場所の場合

起きること だいたい何秒後?
地震が発生 0秒(スタート)
前ぶれの波(P波)が近くの地震計に届く 約 3〜5秒後
警報がスマホ・テレビに届く 約 8〜10秒後
本番のゆれ(S波)が100 km地点に届く 約 25〜30秒後
15〜20秒あれば何ができる?
机の下に隠れる・コンロの火を消す・エレベーターから降りる・窓やドアを開けて逃げ道を作る——こういった「身を守る行動」ができます。

EEWが苦手なこと 注意点

EEWはとても便利ですが、完璧ではありません。いくつか苦手なことがあります。

苦手なこと なぜ?
震源のすぐ近くでは間に合わない 計算して警報を出すのに数秒かかります。震源から数km以内では、本番のゆれがほぼ同時に来てしまいます
最初の発表は「おおよそ」の予測 最初はP波だけを見て計算するので誤差があります。後から「やっぱり震度が違った」と更新されることもあります
ごくまれに「空振り」することがある 地震計の機械トラブルや落雷などで、実際には大きくないのに警報が出ることがあります
警報が鳴ったら
「また空振りかも」と油断せず、まず身を守る行動を取りましょう。何度か空振りが続くと「慣れ」が生まれて、本当に必要なときに動けなくなることがあります。

P2P地震情報とは何がちがう? 比較

このプログラムでは、気象庁のEEWとは別に、P2P地震情報というサービスからもデータを受け取っています。どちらも「地震の情報」ですが、目的がちがいます。

気象庁 EEW P2P地震情報
いつの情報? ゆれるの予告 ゆれたの記録
何のため? 身を守るための事前警告 各地で実際にどのくらいゆれたかを知るため
情報はどこから? 気象庁が管理する公式の地震計 全国のユーザーが「震度〇でした」と報告したデータ
速さは? とても速い(数秒〜十数秒) 少し遅い(報告が集まるまで数分かかる)
このプログラムでは
EEWは「今すぐ!」という声で知らせる音声アラートに使います。P2P地震情報は「地震の後、日本のどこがどのくらいゆれたか」を地図に表示するために使います。二つ合わせることで、事前の警告と事後の確認が両方できます。

よくある疑問

STA/LTAはP波(前ぶれ)を検出する方法ですか?
半分正解です。STA/LTAは「急にゆれが大きくなった」という変化を捉えます。P波でもS波でも、ふだんより大きくなれば反応します。STAが短い(1秒)場合はP波の弱いゆれにも反応できますが、STAが長い場合はS波(本番のゆれ)が来て初めて反応するケースもあります。
震度とマグニチュードはどう違う?
マグニチュード(M)は地震そのものの「エネルギーの大きさ」です。震源(地震が起きた場所)で決まる値で、どこで観測しても同じ数値です。

震度は「その場所でどのくらいゆれたか」です。同じ地震でも、震源に近い場所は震度が大きく、遠い場所は小さくなります。地面の硬さや地層によっても変わります。
LTAはSTAより必ず長くないといけないの?
はい。LTAは「STAより前の時間帯」のデータを使って「ふだんのゆれ」を計算します。LTAがSTAと同じか短いと、比べるデータがなくなってしまいます。プログラムの中でも、LTAが必ずSTAより長くなるよう決められています。
なぜ上下・南北・東西の3方向を合成して使うの?
地震波はあらゆる方向から届きます。上下(Z)・南北(N)・東西(E)の3方向を別々に見ると、地震の来る方向によっては反応しない向きが出てしまいます。3方向を√(Z²+N²+E²) という式で合成すると、どの方向から来た地震でも同じようにしっかり検出できます。
震度はS波が来てから確定するのに、なぜP波で反応するの?
目的が違います。P波への反応(トリガ)は「地震が来た!」という早めの知らせのためです。P波でいち早く反応するほど、本番のゆれ(S波)が来る前に身を守る時間が増えます。

一方震度の確定は「どのくらいゆれたか」の正確な記録です。S波まで含めた揺れ全体で計算しないと正確な値にならないため、しばらく待ってから確定します。
ratioが1より小さくなることはある?
あります。大きな地震の直後、LTA(ふだんの平均)にその地震のエネルギーが入り込んでしまうと、次に静かになったときにSTAがLTAより小さくなり、ratioが1を下回ります。「大きな地震の後しばらく次の地震を検出しにくくなる」という現象の原因です。LTAを長くするとこの影響が和らぎますが、完全には防げません。