【流出解析】シリーズ 第8回 タンクモデルの最適化<h1>【流出解析】シリーズ 第8回 タンクモデルの最適化</h1>
NN広場
農業農村工学のための総合サイト
NNテックブログ
農業農村工学向け解説記事
NN広場 農業農村工学のための総合サイト NNテックブログ 農業農村工学向け解説記事
【流出解析】シリーズ 第8回 タンクモデルの最適化
水文・水質・気象
Excel
モデル
水文学
流出解析
タンクモデル

1.はじめに

今回の記事では,タンクモデルのパラメータの最適化とタンクモデルを使った流出量の予測をしてみたいと思います.

タンクモデル概念は単純でありながら,実際の流出量を精度よく推定できるため多くの研究などで使われています. また,計算方法もわかりやすいため学生や若手技術者の勉強にはもってこいだと思います. エクセルの標準関数とソルバーのみで計算可能であり,実際に計算に使ったエクセルファイルも公開しているので,ぜひ計算に挑戦してみてください!

計算用のワークシートは下記URLからダウンロードできます. ご自由にお使いください. タンクモデル.xlsx

【流出解析】シリーズ 一覧

【流出解析】シリーズ 第1回 流域界の決定と入力データの用意 【流出解析】シリーズ 第2回 貯留関数法【前編】 【流出解析】シリーズ 第3回 貯留関数法【後編】 【流出解析】シリーズ 第4回 流域実蒸発散量の推定―蒸発散比法― 【流出解析】シリーズ 第5回 実蒸発散量の推定―補完法― 【流出解析】シリーズ 第6回 タンクモデル 【流出解析】シリーズ 第7回 積雪・融雪モデル ―降雪量・融雪量の推定― 【流出解析】シリーズ 第8回 タンクモデルの最適化 【流出解析】シリーズ 第9回 単位図法 【流出解析】シリーズ 第10回 流出量・流出高・比流量の違い 【流出解析】シリーズ 第11回 表面流モデル【定常降雨:前編】 【流出解析】シリーズ 第12回 表面流モデル【定常降雨:後編】

2.タンクモデルの概要

タンクモデル.png

タンクモデルは流域を直列タンクに見立てたモデルです. 流出過程の物理的意味を損なわないこと,流出現象の非線形性をうまく表現できること,精度よく推定できることなどメリットが多いです. そして学生にとって一番重要なのは,わかりやすいということです.

3.キャリブレーションとバリデーションとは

最適化.png

最適化についても【流出解析】シリーズ第6回で紹介しているので,ここでは簡単におさらいしたいと思います.

タンクモデルは,16個のパラメータがわかっていれば降水量や蒸発散量から流出量を計算できるモデルです. しかし,パラメータが最初からわかっていることはほとんどないので,タンクモデルで計算された流出量が実測の流出量と一致するようにパラメータを調整します(最適化).

例えば,10年分の降水量・蒸発散量・流出量のデータがあるとします. 10年分全てのデータを使って最適化をするとします. パラメータを求めることはできますが,それがいい感じの値(あえて曖昧な表現)であるという保証はありません.

ひょっとしたら使用した10年間に限って入力データ(降水量・蒸発散量)から実測の流出量によく合う出力データ(流出量)を求められるかもしれませんが,それ以外の期間では全く実測値と合わないかもしれません. これでは,タンクモデルを使って未来の流出量を予測しようと思っても使い物になりません.

実用上全く役に立たないのは困るので,『キャリブレーション』と『バリデーション』という考え方が登場します. 例えば10年分のデータがある場合,最初の7年間で最適化をしてパラメータを求めます.このパラメータで残り3年間の流出量を計算して,実測値と大きくズレていないか確認します. ざっくり言うと,この最初の7年間で最適化することを『キャリブレーション』,残り3年間の流出量を計算して,実測値と大きくズレていないか確認することを『バリデーション』と呼びます.

つまり,キャリブレーションがいわゆる最適化であり,バリデーションは最適化がうまくいったかをチェックする作業です.

ちなみに,『キャリブレーション(Calibration)』は,日本語では『較正』と言われます. 『バリデーション(Validation)』は,日本語では『検証』と言われます.

4.対象流域の概要と使用データ

今回は生田流域にタンクモデルを適用してみます. 用意したデータは日単位の降雨量,融雪量,蒸発散量(蒸発散比法および補完法)および流出量のデータです. なお,流域面積は2031 (km2)です.

流域の概要やデータの詳細は過去の記事をご覧ください.

【流出解析】シリーズ 一覧

【流出解析】シリーズ 第1回 流域界の決定と入力データの用意 【流出解析】シリーズ 第4回 流域実蒸発散量の推定―蒸発散比法― 【流出解析】シリーズ 第5回 実蒸発散量の推定―補完法― 【流出解析】シリーズ 第7回 積雪・融雪モデル ―降雪量・融雪量の推定―

キャリブレーション(較正)期間は2010/1/1/〜2016/12/31,バリデーション(検証)期間は2017/1/1〜2019/12/31です.

エクセルファイルのワークシート「生データ」に全期間のデータを格納しています. ワークシート_生データ.png

5.計算条件

パラメータの初期値を下表の通り設定しました.

変数名 値(1/d) 変数名 値(mm) 変数名 値(1/d) 変数名 値(mm)
a1 0.2 Z1 30 b1 0.2 S1 10
a2 0.2 Z2 15 b2 0.05 S2 20
a3 0.05 Z3 10 b3 0.01 S3 50
a4 0.01 Z4 10 S4 200
a5 0.001

計算は日単位で行います.

最適化にはエクセルのソルバーを用い,アルゴリズムはGRG非線形としました. ソルバーについて↓

ソルバーを使用して最適値を求める

目的関数 MAPEまたはRMSE
設計変数 流出孔係数×5,流出孔高さ×4,浸透孔係数×3,初期水深×4
制約条件 各タンクの流出孔係数および浸透孔係数の合計が1以下.設計変数を非負とする.

MAPE,RMSEについて

MAPEとは,Mean Absolute Percentage Errorの頭文字を取ったもので,日本語では平均絶対パーセント誤差と呼ばれたりします. RMSEとは,Rooted Mean Square Errorの頭文字を取ったもので,日本語では二乗平均平方根誤差と呼ばれたりします.

\[ \begin{align} MAPE&=\dfrac{1}{n} \sum \dfrac{ \left| Q _{obs} - Q_{clc} \right|}{Q _{obs}} *100\\ RMSE &=\sqrt{\dfrac{1}{n}\sum\left( Q _{obs} - Q_{clc} \right) ^{2}} \end{align} \]

ただし,

\[ \begin{align} Q _{obs} &:観測流量(流出量)\\ Q _{clc} &:計算流量(流出量)\\ n&:データ数\\ \end{align} \]

(ざっくりした説明ですが,) 式の形からもわかる通り,MAPEは値の大小に関わらず実測流量に対して誤差が相対的にどれくらいの大きさかを見る指標です. 一方,RMSEには,実測流量の値が大きいときの実測値と計算値の一致度が強く影響することがわかります.

つまり,RMSEは高水時(大雨が降ったときの洪水や大出水)における河川流量の実測値と計算値の一致を重視し,MAPEは低水時(晴れが続いたときなど河川流量が少ないとき)も含めた全体での平均的な河川流量の実測値と計算値の一致を重視します.

6.計算結果(キャリブレーション)

キャリブレーション結果をグラフに起こすと以下のようになりました. MAPEが最小になるよう最適化しました. ハイドロハイエトグラフ_キャリブレーション.png

日流出量の実測値と推定値の比較です. 日流出量_比較_キャリブレーション.png

年流出量の実測値と推定値の比較です. 年流出量_比較_キャリブレーション.png

ちなみに,キャリブレーション用のワークシートとソルバー画面は以下の通りです. ワークシート_キャリブレーション.png SolverParameter.png

ハイドログラフを見る限り実測値と推定値はよく一致しています. 一般に流出解析ではMAPEが30%以下であれば概ね良好な結果とされているので,今回の結果(MAPE=13.6%)はなかなか良い結果だと思います.

しかし,パラメータを見てわかる通り,3段目のタンクと4段目のタンクが繋がっていません. また,高水の流出量がうまく一致していないなどいくつか問題があります.

この後,3段タンクモデルに変えてみる,RMSEを目的関数とする,流出孔係数および浸透孔係数が0より大きくなるようにする,など色々試してみましたが結果がいまいちだったので,ひとまずは「各タンクの流出孔係数および浸透孔係数の合計が1以下.設計変数を非負とする.」という制約条件のもとMAPEを最小化したときに得られたパラメータを最適なパラメータとすることにします.

7.計算結果(バリデーション)

最適なパラメータで検証期間(2017/1/1〜2019/12/31)の流出量を計算してみました. なお,初期水深には2016/12/31(較正期間の最終日)の水深を使用しました. ハイドロハイエトグラフ_バリデーション.png

当然,決定係数もMAPEも較正期間よりは下がりますが,まずまずの結果ではないでしょうか? 低減部はいまいちですね.

日流出量の実測値と推定値の比較です. 日流出量_比較_バリデーション.png

年流出量の実測値と推定値の比較です. 年流出量_比較_バリデーション.png バリデーション用ワークシートです. ワークシート_バリデーション.png

8.おわりに

最後までお付き合い頂き,ありがとうございました. タンクモデルの最適化のイメージは掴めましたか?

タンクモデルの式をエクセルに起こすと少々煩雑かもしれないですし,慣れないソルバーに苦戦する方もいるかと思います. ですが,一度ご自身でも計算をしてみると流出解析の大まかな流れやモデルの動かし方について実感が持てると思うので,皆さんもぜひタンクモデルに挑戦してみてください.

今回の記事のまとめ 1.降雨量,融雪量,蒸発散量,流出量のデータを用意する 2.データを較正(キャリブレーション)期間と検証(バリデーション)期間に分ける. 3.較正期間のデータを使って,エクセルのソルバーで流出量の計算値と実測値の誤差が小さくなるようパラメータを最適化する. 4.得られた最適パラメータを使って検証期間の流出量を計算し実測値と比較することで,パラメータの妥当性をチェックする.

本記事は学生や若手技術者向けに書いているので,わかりやすさ重視で厳密な説明を省略している部分もあります. それに伴い,今回のモデルにはいくつか改良の余地があります. 例えば, ・積雪・融雪モデルに改良菅原雪モデルを使用する ・蒸発散比法による蒸発散量をモデルへのインプットとしてみる ・最適化アルゴリズムの見直す ・面積雨量の算定方法の見直す などなど..

上記の項目について再検討することでさらに推定精度が向上するかもしれません.

今後も農業農村工学(水文学,かんがい排水,土壌物理,水理学)を中心に記事を執筆していきたいと思います. リクエスト等も受け付けておりますので,ご遠慮なく連絡ください. Twitterアカウント:エビぐんかん@6LxAi9GCOmRigUI メール:nnCreatorCircle@gmail.com

検索用Key Words: タンクモデル,菅原正巳,流出解析,長短期両用モデル,最適化,モデル,パラメータ,短期流出解析,長期流出解析,水文学,水循環,エクセル,ソルバー

【流出解析】シリーズ 一覧

【流出解析】シリーズ 第1回 流域界の決定と入力データの用意 【流出解析】シリーズ 第2回 貯留関数法【前編】 【流出解析】シリーズ 第3回 貯留関数法【後編】 【流出解析】シリーズ 第4回 流域実蒸発散量の推定―蒸発散比法― 【流出解析】シリーズ 第5回 実蒸発散量の推定―補完法― 【流出解析】シリーズ 第6回 タンクモデル 【流出解析】シリーズ 第7回 積雪・融雪モデル ―降雪量・融雪量の推定― 【流出解析】シリーズ 第8回 タンクモデルの最適化 【流出解析】シリーズ 第9回 単位図法 【流出解析】シリーズ 第10回 流出量・流出高・比流量の違い 【流出解析】シリーズ 第11回 表面流モデル【定常降雨:前編】 【流出解析】シリーズ 第12回 表面流モデル【定常降雨:後編】

引用・参考文献

(1) 菅原正巳:水文学講座7 流出解析法,共立出版株式会社,p.99-105,1972. (2) 菅原正巳:水文学講座 別巻 続・流出解析法,共立出版株式会社,1979. (3) 菅原正巳,1965.長良川流域の水収支について.水利科学.44,26-40. (4) 丸山利輔,石川重雄,大槻恭一,高瀬恵次,永井明博,田中丸治哉,駒村正治,赤江剛夫,堀野治彦,三野徹,武田育郎,金木亮一,渡辺紹裕:地域環境水文学,朝倉書店,2014,pp.67-70,77. (5) 菅原正巳,1985.タンク・モデル ―河川の流量を雨量から算出する一つのモデルについて―.地学雑誌.94-4,209-221.