1D River Morphodynamics / Python Demo

1次元河床変動シミュレーション

100mピッチの河道データ、5区分の河床材料、流量ハイドログラフ、実測横断を入力し、不等流計算と粒径別掃流砂量により河床変化を試算するPythonデモです。

不等流
堆積
洗掘

不等流計算

標準逐次法による簡易不等流水面形を下流端から上流へ計算します。

流量CSV入力

time_h と Q_m3s のハイドログラフを補間し、各時刻の流量として使います。

実測横断対応

offset_m と rel_elev_m の横断点列から断面積・径深・水面幅を求めます。

芦田・道上型流砂式

掃流砂量式は ashida_michiue と mpm をコマンドで切り替えできます。

交換層・下層・岩盤

交換層、下層材料、岩盤高、最大洗掘深を持たせた簡易実務版です。

100 m河道測点ピッチ
5区分河床材料粒径区分
GVF簡易不等流水面形
Exner河床高更新式

サンプル計算結果の切り替え表示

1次元縦断計算の結果を、河床・水面形、河床変化量、粒度分布、D50、流量ハイドログラフ、横断形状の観点で確認できます。

河床・水面形
初期河床、最終河床、岩盤高、ピーク時水面形を縦断図として表示します。

解析フロー

河道CSV・流量CSV・横断CSVを読み込み、各時刻の水理量と粒径別掃流砂量を求め、Exner式で河床高を更新します。

  1. 河道読込100mピッチの河床高、粗度、交換層・下層粒度、岩盤高を読み込み
  2. 水理計算不等流または等流水深で水深・流速・摩擦勾配を計算
  3. 流砂量5粒径区分ごとに掃流砂量を計算
  4. 河床更新Exner式で洗掘・堆積を更新し、岩盤高と最大洗掘深で制限
  5. 粒度更新堆積時は流入土砂、侵食時は下層材料に近づける交換層モデル
  6. 図化・出力縦断図、河床変化、D50、粒度割合、CSVを出力

入力データと出力データ

デモ用CSVはWeb上からそのまま確認できるように配置しています。実データでは測量横断や観測流量に置き換えます。

ファイル内容
channel_100m.csv100mピッチ河道、初期河床高、Manning粗度、交換層粒度、下層粒度、岩盤高、最大洗掘深。
hydrograph.csv時間[h]と流量[m3/s]を持つ流量ハイドログラフ。
cross_sections.csv各測点の横断方向距離と中央河床からの相対標高。
final_profile.csv最終河床高、水深、流速、摩擦勾配、掃流力、D50、最終粒度割合。

Pythonソースサンプル

不等流、流量CSV、実測横断、芦田・道上型掃流砂量式、交換層・下層・岩盤制限を含む1次元河床変動解析のサンプルです。

scripts/bed_morph_1d_5classes_advanced.py Python
読み込み中...

実務適用時の注意

本ページの結果は、1次元河床変動解析の考え方とWeb可視化例を示すためのデモです。実河川へ適用する場合は、観測水位、流量、粒度分布、横断測量、上流給砂量、構造物条件による検証が必要です。

2次元河床変動解析への拡張

1次元版で流量・粒度・河床変化の基本挙動を確認した後、平面2次元の水深・流速・洗掘・堆積分布へ展開できます。

2次元版を見る