はじめに
Python使ってみたいけど、何から初めて良いかわからなかった筆者が、iRICに含まれるminicondaを使ってPython動かしてみたという記事です。
以下のような人には参考になると思います。
・iRICを使って河川の数値解析を行う人
・Python初心者
「現場のための水理学」令和版
「現場のための水理学」は、私のような河川技術者にはバイブルのような資料なのですが、北海道大学の清水先生が令和版としてリニューアルしてくれました。
そして、Pythonコードも公開されているので、誰でも水理学の勉強ができてしまいます。
iRIC3.0以降をインストール
iRICソフトウェアは、水工学に係る数値シミュレーションのプラットフォームで、無償で利用することができ、筆者も開発のお手伝いをしています。
iRIC3.0以降をインストールすると、python用仮想環境minicondaが一緒にインストールされます。スタートメニューにanaconda3 > anaconda prompt(miniconda3)がインストールされていればOKです。
必要に応じてiRICのメンテナンス更新を行い最新版にしてください。
iRICとPythonの連携は、以下の記事が参考になります。
https://qiita.com/Kazutake/items/b425d5f017dc4ad97d78
miniconda にモジュール追加
iRICで一緒にインストールされるモジュール群だけでは足りなかったようで、以下のモジュールを追加します。
anaconda prompt(miniconda3)を起動し、以下のコマンドを入力。
conda install numpy
conda install matplotlib
conda install pyyaml
conda install numba
windowsに図化ソフト追加
動画保存に必要な、imagemagickというソフトをインストールします。
動画保存には他にも方法があるようですし、動画保存の部分を使わなければ必須ではありません。
http://www.imagemagick.org/script/download.php#windows
pyファイルの保存&ソースコードの書き換え
現場のための水理学(令和版)から移流項の計算や1次元河床変動のPythonコードをgithub経由でダウンロードします。
清水先生の公開されているソースコードそのままでは、yamlファイル読み込み時(1D、2D計算)に下記エラーがでるため、一箇所書き換えが必要でした。
セキュリティ上の問題でしょうか?Pythonには詳しくないので、別の方法でも可能かもしれません。
■実行時エラー
Traceback (most recent call last):
File "main.py", line 15, in <module>
config = yaml.load(yml)
TypeError: load() missing 1 required positional argument: 'Loader'
■書き換え箇所
config = yaml.load(yml)
↓
config = yaml.safe_load(yml)
実行方法
anaconda prompt(miniconda3)で、ソースの保存フォルダに移動し、以下のようなコマンドで実行すると、結果が表示されます。
動画保存までにはやや時間がかかりますが、ちゃんと終わります。
python backward.py
python main.py config_mound
おわりに
現場のための水理学(令和版)は、移動床河川水理学の基礎知識など、参考文献がこの資料を参照するだけで網羅されるので、たいへん有用な資料です。これを期に、Pythonや水理学の勉強を初めて見たい人は是非お試しください。