こんにちは、DobokuLab 1期生のはたはたです。
今回は
【アプリ制作未経験が、液状化アプリを作ったら?】第3回
となります!
バックエンド担当のはたはたと、フロントエンド担当の水谷さんが交互に書いていきます。こちらで整理してありますのでご覧ください。
今回は液状化アプリがどのようにして作られたか、バックエンド側からお話ししたいと思います!
★液状化アプリはこちらから。
[blogcard url=”https://structuralengine.github.io/Liquefaction/”]
液状化プログラムのコンセプト
興味本位に思わず使いたくなるアプリ
液状化現象は地震発生時に、よく話題に挙げられるほど知名度の高い現象の一つになっています。しかし、第1弾で述べたように液状化現象を予測するには様々な情報が必要になるため、かなり理解が難しい現象だと思っています。大学の講義でも勿論取り上げられる内容であるのですが「設計ではどのように生かしているんだろう?」「条件の違いによってどのくらい影響があるのだろうか?」ということは疑問に残っていました。
検討していないことや精密性に欠ける部分は多々ありますが、条件を色々変えて解析をすると「こういう条件だと液状化が発生しやすいんだ!」とよりイメージが明確になると思います。気軽に触れるアプリを通して液状化現象により深い関心を持っていただければありがたいです。
ぜひ、土木に関心のある皆さんへ「液状化をより深く理解するための補助教材」として利用して欲しいです!
液状化ってどうやってプログラミングするの?
プログラミングの裏方にあたるバックエンドでは大きく分けて2つの作業があります。
- 設計書等を基に、液状化判定を数式化する
- 数式化したものをプログラムに落とし込む
1. 設計書等を基に、液状化判定を数式化する
いきなり、プログラムを書く前に液状化判定がどのようにして行われているか詳細に理解する必要があります。
今回は、鉄道総合技術研究所が出版されている『鉄道構造物等設計基準・同解説』(丸善出版, 2012.9)を参照して制作しました。
しかし、本格的な設計書を読むのは初めてだったのでかなり苦労しました。3週間あった製作期間の内、半分はひたすら設計書を読む作業に追われました。
特に専門的なアプリを制作する場合、バックエンドはフロントエンドに比べると形にするのに時間がかかり、土木の知見をフル活用する必要があるためかなり苦労するのかもしれません。
2. 数式化したものをプログラムに落とし込む
1が出来るとやっとプログラミングを書く作業に移ることが出来ます。今回は、Pythonという言語を使用しました。
プログラミングをまともに触ったことの無い私にとってはこちらも時間がかかりました。最初はエラーだらけで「全然分からん!」となっていました。
例えば、こんなエラー。
下では2行目(if A>=70)の最後に「:」をつけ忘れたのですが些細な違いでもプログラミングは動いてくれません。数行のプログラミングならまだ「ミス」に気が付きやすいですが、複雑になってくるとどのように訂正するか考えるだけでも大変です。
実際には、1, 2をひたすら繰返すイメージです。プログラムに落とし込んだ時、上手く行かなければ設計書を見直します!
プログラムを作る上でやってよかったこと。
プログラミングを作って行くうちにやって良かったと思った点が2点あります。
1. 大学で、土木を一生懸命学習して良かった!
当たり前じゃないかと思うのですが、私の想像以上に大学での学びを生かせました。
例えば、こちらの地震波データ。見た目は何ともなさそうですが、プログラミング上ではなんと4000~13000個の点群データとして表示されます。
おそらく、初見だったらデータの多さに発狂していたと思います。しかし、以前に大学の講義でたまたま地震波データ (Excel) をグラフにして解析する課題が出されたことがありました。当時、こんな大量のデータを処理するの、めんどくさいなと思っていましたがまさかこんな形で生かせるとは思っていませんでした。改めて、大学での学習の大切さを認識しました。
大学で勉学そこそこ頑張っているんだけど、社会に出てから役に立つのかな? 自分の力、試したいな。
そんなことを思っている方へ、バックエンドのプログラミングをぜひおすすめしたいです!
2. 周りに沢山の仲間がいて、良かった!
もちろん、独学でプログラミングを学ぶことも可能です。しかし、個人的には独学ではモチベーションを保てなかったと思います。特に、フロントエンドを担当していただいたDoboku Lab 1期生水谷さんのご協力あってこそだと思っています。
バックエンドでどんなに完璧なものが出来たとしても、フロントエンドの担当者がいなければ個人的利用に留まっていました。フロントエンドあってこそ、アプリという皆さんの手に触れやすい作品にすることが出来ました。アプリとして形になった時の達成感はハンパなかったです!!
また、プログラミングについて不明な点があれば㈱ささこうの笹澤さんに、液状化についてはDoboku Labのメンバーに相談出来たため、安心感がありました。この場を借りてアプリ開発に協力してくださった皆さんにお礼申し上げます。
プログラミングを学ぶときはなるべく多くの相談できる仲間がいるといいと思います。
まとめ
バックエンドのプログラミングは、どのようにプログラムを組むか設計図を描くことに時間がかかり、非常に大変ですが自動化出来たときの達成感は大きいです!
ぜひ、私たちと一緒にプログラミングを勉強しましょう!
次回は、初心者におすすめのプログラミング言語「Python」についてご紹介します。