dangomushi115 が 2022年03月20日21時45分54秒 に編集
コメント無し
メイン画像の変更
本文の変更
作ったもの
背景
====
以前より筆者が住んでいる地域は、周辺の地域に比べ震度が小さく、体感に比べても低めの値が出ているのではないかという気がしていました。 そこで、定量的に自宅の震度を測定できるようなシステムを作ることとしました。
作っているうちに機能を追加したり、カッコいい見た目やきれいなソースコードにしようと色々やっていたため中々出来上がりませんでしたが、先日大きな地震があったのでできは悪くともとりあえず震度が測定できるシステムを作ることとしました。
震度計測の仕組み ==== [気象庁のHP](https://www.data.jma.go.jp/eqev/data/kyoshin/kaisetsu/calc_sindo.html)によると、震度は下記の手順で求められるようです。 1. 水平2方向、上下方向の加速度を測定する →[気象庁のHPに上がっている加速度のデータ](https://www.data.jma.go.jp/eqev/data/kyoshin/jishin/index.html)は、加速度は100Hzで記録されています。 1. 加速度データをフーリエ変換し、フィルタをかけ、逆フーリエ変換をかける 1. フィルター処理済みの3成分の波形をベクトル的に合成する 1. 合成した加速度をソートし、上から0.3秒目のデータの加速度をaとしたとき、以下の数式で求められる値Iの小数第3位を四捨五入し、小数第2位を切り捨てる $$I=2log_{10}a+0.94$$ 例えば、I=5.195だったとき、小数第3位を四捨五入すると5.20となり、計測震度は5.2となる。一方、I=5.194ならば小数第3位を四捨五入すると5.19となり、計測震度は5.1となることに注意が必要です。
この処理の中で難しいポイントは、「100Hzで加速度を測定する」「フーリエ変換・逆変換を行う(それなりに計算処理能力が必要)」ことです。 計算した震度を出力する手段としては、簡単に確認できるよう[Ambient](https://ambidata.io/)を使用したいと思います。また作成するシステムは震度を出すだけでなく、後から出力された震度の妥当性を検証できるよう、加速度の測定値も記録したいと思います。 以上を踏まえ、手元にあるデバイスで簡単に実装できる仕組みとして、以下の図の通り実装することとしました。 