これまでの地震ソフト制作をまとめてみる

この記事は 防災アプリ開発 Advent Calendar 2023 16日目の記事です。
昨日は iku55さんの記事 でした。

はじめに

あめうま と申します。
なんだかんだで、2年も地震ソフト制作を続けてきました。
製作開始から2年経った地震ソフト EarthQuickly

earthquickly.com

初心に返るためにも、これまでの地震ソフト制作を振りかえってみようと思います。 初期のころは記憶が薄くなってきたのでスクショ頼りです。

きっかけ

なぜ地震に興味を持ち、地震ソフト制作をはじめたのでしょうか。

きっかけは、2018年の大阪北部地震です。
この地震で震度5強の揺れを体験しました。

深夜にも余震が襲ってきたので、地震に対しての恐怖心が強かった記憶があります。
そんな中、YouTube地震監視ライブ(BSC24?)を見つけました。
地震発生時などに、文字や音でお知らせするシステムを見て感動を覚えました。

それから地震という現象や、緊急地震速報のシステムなどに興味が湧いていきました。
ですが、幸いにも大阪北部の地震活動は収まっていき、それ以降は地震との関わりは少なくなっていきました。

地震ソフトに触れる

2021年2月13日の福島県沖の地震
この時偶然テレビがNHKだったので、緊急地震速報の音がテレビから聞こえてきました。 震度6強などと速報される様子を見て改めて地震の怖さを知るとともに、
前述の地震監視ライブの存在を思い出しました。

最後に見た地震監視ライブとはいい意味でかけ離れており、特に滑らかな地図描画を行っていたJQuakeには特に衝撃を受けました。
それからJQuakeは自分のPCで起動しておくことにしました。自分で地震監視的なことを始めたのはこれが最初です。


手元にある最古のスクショ

2021年9月

プログラミングがそこまでできないにも関わらず、PCにはVisual Studioをインストールしていました。 WPFで簡易的なブラウザとかを作っていました。ですが、とても普段使いできるようなクオリティなものは作れませんでした。

次はどんなソフトを作ろうかな~と考えた結果、地震に関するソフトを作ろうと決心しました。常駐起動しているJQuakeやKiwi Monitorへの憧れもあったと思います。

フォルダ作成日時を見る限り、製作開始は2021年9月2日19時20分らしいです。 EEW_Monitor は後の EarthQuickly です。

Qiitaの記事とかを参考に、たった一日で強震モニタから緊急地震速報を受け取ることくらいは実装したっぽいです。 翌日に撮った最古のスクショが残っています。

左上に情報の詳細、そして右下に時計というのは、やはり他ソフトの影響を強く受けたものと思われます。

最古のEEW受信スクショたち

もちろん地図なんてものはありませんが、すべてはここから始まっています。感慨深いものがありますね。

2021年10月

スクショをもとに書いていますが、1か月ほど間が空いています。
知らない間に強震モニタ画像表示や地震履歴表示を既に実装したようです。

2021年10月16日21時48分ごろの地震
震度4の背景の色と文字の色が絶望的に相性が悪く、すごい見にくい!!!

この地震は当方でも揺れを感じました。 揺れと同時くらいにソフトも反応しており、
初めて自分のソフトが役に立った瞬間です。
地震履歴は、Yahoo地震情報のサイトからスクレイピングしていたと思います。

2021年11月


震度4の色も改善したほか、地震履歴リストも震度ごとに色分けされたり、強震モニタ最大震度を表示したりと、地震ソフトとしての中枢的な機能がここで実装されました。
今見てもこのバージョンのデザインは普通に見やすいと思います。

2021年11月から2022年冬までの開発については、別記事にも書いています。

2021年12月

地震情報アプリ界隈 Advent Calendar 2021 を見て開発のモチベーションがとても高かった時期です。 この時期に様々な機能を実装しています。


GeoJsonでの日本地図の描画


都道府県を観測した最大震度で塗りつぶし

特に塗りつぶし機能は、個人的には地震ソフト制作の上でマストで取り入れたい機能だったので、初めて塗りつぶせた時の感動は格別でした。
同じ要領で後に細分区域や市区町村の塗りつぶしも実装していくことになります。

また、地震履歴リストにもテコ入れしており、このデザインは多少修正を加えつつ現在も利用しています。

2022年1月~3月

この時期にもいろいろ実装しました。

津波情報機能は、2022年1月のフンガ・トンガ噴火をきっかけに緊急で実装しました。津波情報ウインドウは現在は廃止したものの、津波情報の取得や処理といった部分は、今もほぼそのままです。

それだけでなく、この時期には更に多くの機能を実装しました。
ただ、負荷が高すぎるため お蔵入りになった機能がほとんどです。その最たる例が市区町村を震度別に塗りつぶす機能です。

機能自体は良い感じなんですが、小さな地震であっても、描画の際のCPU使用率は100%、メモリも一つの地震を描画するごとに約300MB増え、描画には数秒を要する残念なものとなってしまいました。これを機に『パフォーマンス面を考えたプログラミング』を心掛けるようになりました。
特に地震ソフトの場合、低スペックなPCでは大地震発生時にクラッシュする危険性もあるため、絶対に心掛ける必要があると思います。

3月16日

2022年3月16日23時34分と36分に福島県沖で地震発生。
かなり大規模な地震×2 であったため、もちろん前述のような高負荷なソフトが耐えられるわけがありません。
特にデバッグも兼ねてソフトを常時起動・録画していたサブのPC(低スぺ)では、やはりソフトがクラッシュしてしまいました。
肝心な時に使えない地震ソフトほど無能なものはありません。これは本当に改善すべきことだと肝に命じました。

2022年4月~6月

4月から12月ごろにかけては 去年の記事 で書いているので、端折ります。

2022年4月29日に初めてデバッガーの方々へソフトをお渡ししました。


本当に様々なご意見をいただき、開発に多いに役立ちました。改めて感謝申し上げます。

2022年7月

安定性に一段落ついたことから、7月1日に一般向けにベータ版を公開しました。


多くの人に使っていただき、開発のモチベーションになりました。
更に多くの人からソフトに関する意見を頂戴し、よりよいソフト制作の一翼を担ったのは間違いありません。本当にありがとうございます。

2022年8月〜12月

一般向け公開後もやはり負荷が高くて重いという声を多く頂いており、負荷軽減が急務でした。

数か月に及んだ負荷軽減の結果、11月に公開したv0.6.0では最初に一般向けに公開したv0.2.0の6分の1以下の負荷まで軽減しました。
2022年11月24日リリース v0.6.0

負荷軽減の具体的な策は去年の記事を参考にしてください。

そして来たる12月に初めて 防災アプリ Advent Calendar 2022 に参加させていただき、記事を2つも書きました。去年は見る側だったのに、今年は書く側に回ることができたというのも、感慨深かったです。

2023年

3月


3月28日リリース v0.7.0

このバージョンでは画面デザインを大幅に変更しました。現在のv0.9.2のデザインは、ほぼこのバージョンで完成されました。
個人的に推しているダークテーマの画面にかなりマッチしています。数値を大きく表示し読みやすくしているほか、様々な数値データに楽に対応できるという利点もあると考えました。 これは7月に活きることになります。

5月

能登半島で大きな地震が何度も発生しました。
EarthQuicklyではPLUM法のEEW受信関連でかなりバグがあり、能登半島付近での地震ではPLUM法のEEWが発表されることが多かったため、とても相性の悪い地震でした。
これをきっかけにして、PLUM法関連の多くのバグを発見し修正することができました。
2度と見たくない震度7予想 - 2023/05/05 14:42

6月~7月

EarthQuickly一般リリースから1年が経とうとしたとき、突如として強震モニタの利用条件が更新されました。
いつかその時が来ることは想定していましたが、まさかこのタイミングとは。。。

また、強震モニタ機能は震度やPGAデータの抽出を無くし、色データのみを表示するようにしました。
しかし、これではメイン画面の上側がぽっかり空いてしまいます。代わりにP2P地震情報APIを用いた新機能を多く実装することにしました。

まず大前提としてWebSocketでの 接続に対応させ、少しでも早く情報が受け取れるように改善しました。 またP2P地震感知情報をこれまでの地震検知機能の代わりに利用しています。

※一応色データの取得表示は残していますが、今後のバージョンでは完全撤廃する予定です。

12月

今日の時点での最新バージョンは v0.9.2です。
いつ、1.0.0になるのかは誰にも分かりません。

まとめ

なんだかんだで2年以上も開発してきたEarthQuicklyのこれまでの開発をまとめました。 長い記事になりましたが、お読みいただきありがとうございました。

今後の開発も応援していただけると幸いです。