1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Optunaを使ったキネマ流出解析GUIアプリ(KinematicGUI_r008)を作成しました

1
Posted at

Optunaを使ってキネマ流出解析GUIアプリ(KinematicGUI_r008)を作成しました

はじめに

山地河川の小流域を対象に、複数の斜面から河道へ流入し、最下流の観測地点で計算流量と実測流量を比較するための簡易プロトタイプを作成しました。

元ネタは弊社のエクセルマクロをpythonへ変換したプログラムを使っています。

今回作成した KinematicGUI_r008 は、1本の河道に複数斜面が接続する流出解析モデルを、GUIで操作できるようにしたものです。パラメータ同定には Optuna を利用しています。

GUIアプリ

対象モデルは、まず理解しやすいように次の条件にしています。

  • 河道は1本
  • 河道長は1 km
  • 計算ピッチは100 m
  • 河道セル数は10
  • 5つの斜面が河道へ横流入
  • 最下流端で計算流量と観測流量を比較

キネマ流出解析概念図
slope_channel_concept.png

モデルの考え方

このプロトタイプでは、山地流域の流出を次のように分けて考えます。

  1. 降雨から有効雨量を計算する
  2. 各斜面で表面流を計算する
  3. 斜面流出を河道へ横流入として与える
  4. 河道内を下流へ伝播させる
  5. 最下流地点でハイドログラフを評価する

斜面流は、概念的に以下のような式で表します。

q = α h^m

ここで、q は斜面の単位幅流量、h は水深または水膜厚、α は流れやすさを表す係数、m は非線形性を表す指数です。

河道流は、以下のような流量と流水断面積の関係で表します。

Q = β A^n

ここで、Q は河道流量、A は流水断面積、β は河道の流下しやすさ、n は非線形性を表す指数です。

インストール方法

今回は exe 版を使います。
ソースファイルについて、後日gitで公開する予定です。

  1. KinematicGUI_r008.zipをダウンロードします。
  2. ZIP ファイルを任意のフォルダーに解凍します。
  3. 解凍したフォルダー内の KinematicGUI_r008.exe を実行します。

主な機能

KinematicBasinPrototype_r008_gui では、以下の操作ができます。

  • サンプルCSVの作成・読込
  • 観測雨量・観測流量CSVの読込
  • 複数斜面 + 1河道の流出計算
  • 斜面条件、河道条件、モデルパラメータの編集
  • pyqtgraphによるハイドログラフ表示
  • 河道セル別の横流入表示
  • 斜面別流出量表示
  • ピーク時刻の河道流量分布表示
  • Optunaによるパラメータ同定
  • 同定履歴とbest scoreの表示
  • 最良パラメータの計算条件への反映
  • 計算結果CSV保存
  • 同定履歴CSV保存
  • 使用方法HTML表示・保存

画面構成

タブ構成は、流出解析の流れに沿って整理しています。

キネマ概念図
計算条件
雨量・流量データ
斜面・河道条件
雨量・流量図
河道・斜面流出
パラメータ最適化
結果表
使い方・ログ

計算条件
Screenshot 2026-05-25 165442.png

パラメータ最適化
Screenshot 2026-05-25 165618.png

斜面・河道条件
Screenshot 2026-05-25 165653.png

使い方・ログ
Screenshot 2026-05-25 165719.png

パラメータ同定

パラメータ同定には Optuna を使っています。

同定対象は、主に次のパラメータです。

パラメータ 意味
hill_alpha 斜面流の流下しやすさ
hill_m 斜面流の非線形指数
channel_alpha 河道流の流下しやすさ
channel_m 河道流の非線形指数
runoff_coeff 降雨のうち直接流出に寄与する割合

GUIの「パラメータ最適化」タブでは、探索範囲、試行回数、乱数seedを設定し、Optunaによる探索を実行できます。

評価指標は、まずはRMSEを中心にしています。計算流量と観測流量の差が小さくなるようにパラメータを探索します。

RMSE = sqrt(mean((Qsim - Qobs)^2))

今後の拡張案

今回のモデルは、DEMやGISから自動で流域を構築する前段階のプロトタイプです。今後は次のような拡張を考えていきます。

  • DEMから流域・河道・斜面を自動生成する
  • 斜面ごとに異なるパラメータを持たせる
  • 複数洪水イベントで同定・検証する
  • 土壌損失、初期損失、基底流を追加する
  • GIS上で斜面と河道セルを確認できるようにする
  • 実観測雨量・流量データを使った検証機能を追加する

まとめ

KinematicGUI_r008 は、山地流域の流出解析を理解するための最小構成プロトタイプです。

複数斜面から河道へ流入し、下流観測地点で計算値と実測値を比較する流れを、GUI上で確認できます。さらに、Optunaによるパラメータ同定を組み込むことで、モデル構造と観測データの関係を試行錯誤しながら確認できるようにしました。

今後、GISやDEMと連携することで、より実流域に近い解析ツールへ拡張できると考えています。

キネマティックウェーブ流出解析に関する参考リンク集

キネマティックウェーブ法は、斜面流・河道流を物理式で簡略化して扱える一方で、適用条件や限界もあります。実務や学習で理解を深めるために、以下の資料が参考になります。

基礎理論・考え方

既存ソフト・モデルでの扱い

  • HEC-HMS Technical Reference: Kinematic Wave Transform Model
    HEC-HMSでのキネマティックウェーブ変換モデルの説明です。斜面長、勾配、粗度、面積割合、routing steps など、実装時に必要になる入力項目の整理に役立ちます。

  • US EPA: Storm Water Management Model / SWMM
    雨水流出・排水ネットワーク解析ソフトです。河道・管路の追跡では、キネマティックウェーブ法とダイナミックウェーブ法の考え方を比較する際の参考になります。

  • EPA SWMM 5.1 User’s Manual PDF
    SWMMのサブキャッチメント、地表面流、管路・河道追跡、観測値との比較などを具体的に確認できます。

貯留関数法との関係・日本語資料

実装・発展の参考

  • Bentley: Kinematic Wave Equation
    斜面流を均一勾配・均一粗度の平面流として扱う場合の説明です。到達時間や斜面分割の考え方を確認する際に参考になります。

  • Optuna Documentation
    今回のように流出モデルのパラメータをRMSEやNSEなどの評価指標で同定する場合に利用できる、Python向けハイパーパラメータ最適化ライブラリです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?