地震観測アプリを作りたい
なにげに昔から地震観測に興味を持っていた息子くん。
小学生の頃から様々なサイトやアプリ(既存のもの)をPCで起動して通知を鳴らしていました。
そして今回、本格的に自分で作ってみたいと思ったようです。
息子氏の作った地震アプリがついさっき起こった地震表示してた。
— とり子 (@siroitori0413) 2022年4月19日
最初のほうの震源地は息子氏計測の予測地点、震源地情報が入ってきてからはその地点を表示。
各地の震度計の値とかその他諸々、公開された別サイトのデータから取得してきて表示してるとのこと。 pic.twitter.com/UrIEUigQpv
思った以上にTwitterの民に反応していただきました!
現在の仕組み
息子くんから聞き取って書いてますのでざっくりとした内容紹介です。
言語・環境
言語はJavaScriptで、Electronというフレームワークを使用しています。
Electronは息子くんに教えてもらって私も使うようになりましたがWeb開発している人にとっては敷居が低くてとてもいいと思います!
地図
地図情報はOpenStreetMapというのを使用しているとのことでした。
OpenStreetMap Japan | 自由な地図をみんなの手で/The Free Wiki World Map
地震情報取得元
また現状、サイト上の地震情報は下記から集めているとのことでした。
防災科研
www.bosai.go.jp
さらにこのサイトの中でも強震モニタで表示される各地の震度計のセンサー情報と緊急地震速報の情報を取得して表示させているそうです。
NHKの地震情報
NHKの地震情報からは、確定した震度の情報を取得しているとのことでした。
www.nhk.or.jp
独自ロジック
震度計のノイズ
震度計(センサー)の値はノイズもあり正確でないこともあるそうです。
揺れを検知したとき、その周辺の震度計の値を見て独自ロジックでノイズかどうかを判定させたとのこと。この判定が安定するまで何度もパラメータを変更して試したとのことでした。
震源地
震源地の情報は確定するまで定まらないそうです。
でもその確定前の時点でも自分で予想した震源地を表示させたいが計算の仕方がわからないということで相談を受けていました。
こういうプロットから弧を抽出してその円の中心点をとりたいらしく‥
— とり子 (@siroitori0413) 2022年4月12日
朝から息子に質問されて困ってます。
どなたかわかる人いますか。
とかいって聞いて理解できるかは謎ですが😓 pic.twitter.com/KPJnCv2tqy
ツイートで呼びかけた結果、情報が集まり(私の脳みそもフル回転させて)なんとか解決できました。
「近似点から弧を抽出し、その3点の座標を通る円(三角形の外接円)の外心を計算する」というのが答えで、計算式もJavaScriptで書くプログラムに落とし込めたようです。
ありがとうございました!!
その他
最初に書いたツイートの動画を音声付きで再生してもらうとわかるのですが、「第○報どこどこ」と読み上げています。
私は知らなかったのですが緊急地震速報では第1報~最終報までで構成されているということでした。
▼ 参考
気象庁|緊急地震速報|緊急地震速報(警報)及び(予報)について
この読み上げは「棒読みちゃん」というのを使っているということでした。
また、棒読みちゃんはAquesTalkという日本語用の音声合成エンジンを使っているということで、本当はAquesTalkを使って実装したいんだけどね、と言ってました。
あれからも開発を重ねて現在は左側の地震情報も表示されるようになっています。
今後の展望
息子くんずっと言ってるんですが、どうしても気象庁から直でデータを受けて作りたいらしいんです。
調べたら気象庁からデータを受けとるには専用回線を引かねばならず初期費用・月額も結構するみたいなんです。月8万円とか言ってる…(受信したいデータにもよるとのこと)
「早急に諦めるしかないよね」と言う私に「いやだ!絶対にやりたい!」という息子くん。
じゃあやれる方法を考えてみようと言ってますが、果たしてどうなることやら。
まぁしかし冬場かなり調子悪くてやる気をなくしかけていたのでいつもの意欲的な息子くんに戻ってきているようで良かったです。
とはいえお金は出せないけど!