水工学論文集, 第 53 巻 2009 年 2 月
水工学論文集,第53巻,2009年2月

水文モデリングシステム OHyMoS の構造定義ファイル作成環境の開発
DEVELOPMENT OF A GRAPHICS-BASED EDITORFOR STRUCTURE CONFIGURATION FILES OF OHYMOS
加藤 真也1・椎葉 充晴2・市川 温3・立川 康人4
Shinya KATOU, Michiharu SHIIBA, Yutaka ICHIKAWA and Yasuto TACHIKAWA
1 学生会員 学（工）京都大学 大学院工学研究科 修士課程 (〒 615-8540 京都市西京区京都大学桂 C1）
2 正会員 工博 京都大学教授 大学院工学研究科 (〒 615-8540 京都市西京区京都大学桂 C1）
3 正会員 博（工）京都大学助教 大学院工学研究科 (〒 615-8540 京都市西京区京都大学桂 C1)
4 正会員 博（工）京都大学准教授 大学院工学研究科 (〒 615-8540 京都市西京区京都大学桂 C1)

A graphics-based editor for structure conﬁguration ﬁles is developed which helps to build a model of basin-scalehydrological processes using Object-oriented Hydrological Modeling System, OHyMoS. A hydrological model is often
composed of a large number of element models and those spatial cascades. OHyMoS is a software system to aid users
in combining element models to form a basin-scale model (a total system model) and uses a structure conﬁguration ﬁleas a structural design on how element models are connected to each other. The structure conﬁguration ﬁle is a text ﬁleand its format is plain and simple, however, the ﬁle can easily be huge for large basins. In such a case, it is impossible
for users to modify a part of the ﬁle and ﬁnd an error in the ﬁle. The editor developed in this study has a mouse-driven
working environment with a graphical user interface and provides easy and smooth handling of structure conﬁguration
ﬁles.

Key Words:

Hydrological Modeling, OHyMoS, Structure Conﬁguration File, Graphical User Interface, OhStructure

1. はじめに
我々が治水・利水計画を策定する際，水文過程を解析することは非常に重要なことである．水文過程は，雨が降り，その雨水が山腹斜面を流下し，河道に集まって河口へと流出するといったように，いくつかの水文素過程，またそれらの空間的広がりによって成り立っている．したがって，全体の水文過程を 1 つのモデルとして構築するのではなく，斜面流，河道流といった水文素過程を表すモデル（要素モデル）を個別に構築し，それらを組み合わせて 1 つの水文過程を表すモデル（全体系モデル）を構築することが望ましい．その際，対象流域が広がり，全体のシステムが複雑化してくると，水文モデルの構築方法をサポートする機構が必要となってくる．また，単なるサブルーチンパッケージではなく，システムとして全体の動きをコントロールするモデリングシステムが重要となる．
我が国においては，要素となるモデルをユーザ自身がプログラミングでき，かつそうした要素モデルを組み合わせて全体のシミュレーションモデルを容易に構成することを支援するモデリングシステム OHyMoS 1)2) 3)(Object-oriented Hydrological Modeling System) がある．OHyMoS は，水文モデルを構造的モデル化法によって作成するためのシステムであり，オブジェクト指向言語 C++ により実現されている．構造的モデル化法とは，各水文モデルに共通な構造を抽出してあらかじめモデル化しておき，個々の要素モデルは，この共通構造を引き継いで作成していく方法である．また，OHyMoSには佐藤 4) によって，オブジェクト指向言語 Java を用いて作られた OHyMoSJ もある．

OHyMoS では，構造定義ファイル（Structure Conﬁguration File）という機能を導入することにより，流出シミュレーションモデルの中の水文素過程間や空間的な連なりの構造を，プログラミングコードとは別に与えている．ユーザは定められたフォーマットに従って構
造定義ファイルを作成し，シミュレーション実行時にこのファイル名を与えることにより，構造定義ファイルに従って自動的に要素または部分系を作成・配置し，計算を実行することができる．また，構造定義ファイルの導入により，要素モデルの追加・交換作業を容易に行うことができるという利点がある．
構造定義ファイル自体はテキストファイルであり，一般的なテキストエディタなどで編集することが可能である．しかし，構造定義ファイルの作成には OHyMoSの構造に関する理解が必要であること，流域系が大規模になれば構造定義ファイルは長大化し，ファイルを- 451 -図-1 流域モデル例編集することが困難となること，ファイルを見ても流域系の全体像が掴めないことなどの難点があった．こうした問題点を解決するためには，構造定義ファイルを視覚的に把握することのできる GUI(Graphical UserInterface) を持った構造定義ファイル作成支援システムが必要であると考えられる．そこで，本研究では，構造定義ファイルおよび関連ファイルの作成を支援するシステム OhStructure 5) を開発した．

2 章では，OHyMoS と本研究の重要なポイントである構造定義ファイルについて述べる．3 章では，構造定義ファイル作成環境に必要とされる機能について述べる．4 章では，本研究で開発した構造定義ファイル作成環境について述べる．5 章では，構造定義ファイル作成環境の適用例について述べる．6 章は本研究の結論である．

2. OHyMoS と構造定義ファイルについて(1) OHyMoS について
OHyMoS では個別の要素モデルを対象とする流域にあわせて結合し，全体系モデルを構築する．この全体系モデルを構築する際に，構造定義ファイルが用いられる．全体系モデルは入力端子，出力端子を用いてデータの入出力を行い，要素モデルへ計算命令を送る．

図-2 構造定義ファイルの作成例(2) 構造定義ファイルについて
構造定義ファイルは OHyMoS を利用する上で水文モデルを作成する際の要素モデルの組み立て方を示したファイルである．
図-1 のように，二つの河川がダムに流入し，下流への水量の調節を行っているという簡単な流域モデルを考える．この流域モデルに対して構造定義ファイルを作成した例が図-2 である．二つの河川 (要素モデル：KinematicWave) に対してはそれぞれ上流の流出量 (入力データ：inﬂow-0.dat, inﬂow-1.dat) が流入するものとし，水量を調節するダムモデル（要素モデル：SimpleDamModel）
は下流への流出量 (出力データ：outﬂow.dat) を出力している．

構造定義ファイルには，入力データ，要素モデル，出要素モデル間のデータ授受は端子を用いて行われる． 力データ，データの接続に関する情報が書かれている．
要素モデルはそれぞれ受信端子を用いてデータを取得
まず，入力データ（入力端子）の個数，要素モデルのし，送信端子を用いてデータを送信する．各要素モデ個数，出力データ（出力端子）の個数をこの順に書く
ルはパラメータ・状態量・受信端子からの入力データものとする．
［InputPorts］のセクションには入力端子，を用いて水理水文学的な計算を行う．計算の結果は接 ［Components］には要素モデル，［OutputPorts］には出力続された別の要素モデルに送信される．このような手端子に関する情報をそれぞれ書く．具体的には，計算に続きを時間ステップに従って繰り返すことでシミュー用いる要素モデルの種類，入力データの形式，出力デーレーションが実行されていく．
タの形式といった情報を書いておく．
［ConnectPorts］の- 452 -セクションでは，端子を用いて行うデータの接続を指定する．具体的には，入力データをどのモデルに渡すか，要素モデルのデータをどの要素モデルに渡すのかを指定しておく．
OHyMoS ではこのような形式の構造定義ファイルを用いることで，シミュレーションモデルの構造を与えている．シミュレーション実行時は構造定義ファイルに従って全体系が作成され，計算を実行することができる．この構造定義ファイルを書き換えるだけで，要素モデルの追加や交換といった作業を容易に行うこともできる．

ルは流域の要素一つ一つの情報が羅列されたものとなるため，大規模流域の場合，直接データを編集することは困難である．大規模流域の一部のモデルを交換するなどした際に，編集作業を容易に行うことができるための機能が必要である．また，大規模な構造定義ファイルの中から一部の流域のみを抽出し，解析を行いたいという場合がある．そのため，抽出したい流域の構造定義ファイルを独立して出力する機能，同時に複数の流域を扱うことができる機能が必要と考えられる．

4. 構造定義ファイル作成環境 OhStructure
3. 構造定義ファイル作成環境が具備すべき機能
本章では，構造定義ファイルの作成環境として，どのような機能を備えているのが望ましいかを説明する．

(1) GUI 環境での構造定義ファイル作成機能
構造定義ファイルには要素モデルに関する基礎的な情報とその接続関係が記される．GUI 環境で視覚的に要素モデル同士の関係を捉えながら，その接続関係を指定できることが必要である．さらに要素同士の接続を画面上で表示するだけでなく，接続の方法や要素の情報を同時に参照できるようにする必要がある．
(2) 構造定義ファイルの誤りを検出する機能
これまで構造定義ファイルを編集する際はテキストエディタを用いていたため，入力の誤りなどが含まれることが多かった．これらの誤りの多くは OHyMoS 上で計算を行う際にエラーが出力されるため，構造定義の誤りがあることがわかるが，一部においてはエラーが出力されずにそのまま計算が行われ，シミュレーションに致命的な間違いを引き起こすこともある．したがって構造定義ファイル作成環境には，誤り自体を検出し構造定義ファイルの編集段階でエラーを出すような機能があることが望ましい．
(3) パラメータ・初期状態量ファイル作成機能
OHyMoS の要素モデルはシミュレーション計算を行うにあたって計算に用いるパラメータ，初期状態量，初期計算時刻を必要とする．要素モデルごとにこれらのデータを与える必要があるが，OHyMoS は構造定義ファイルに記載されていない要素モデルに対してデータを与えようとすると初期化段階でエラーを起こす．そのためパラメータファイル，初期状態量ファイルは厳密に作成する必要があり，構造定義ファイルに適合した形で出力されることが望ましい．
(4) 大規模流域を扱うための機能
OHyMoS は要素モデルをつなぎ合わせることで複雑な流域もモデル化することができる．構造定義ファイ3 章で示したような機能を有する構造定義ファイル
作成環境 OhStructure を開発した．ここでは，構造定義
ファイル作成環境 OhStructure について説明する．
(1) 全体構成
OhStructure の開発にはプログラミング言語 Java を用いており，Java Runtime Environment を持つ実行環境であれば，OhStructure は動作する．また，GUI の作成には Java の開発元である Sun Microsystems の提供している GUI ツールキットである Swing を用いている．
図-3 はソフトウェアの全体図を示したものである．上部のメニューバー，ツールバーはソフトウェアの全体処理，設定変更，メインウィンドウの操作に関する機能を持つ．
メインウィンドウは構造状態を設定するための主な操作を行う．要素モデルはメインウィンドウ上に碁盤目状に配置される．図-3 では上部の入力端子が明るい赤，中央部の要素モデルが青，下部の出力端子が暗い赤，現在選択中のモデルが黄緑で表示されている．
オブジェクトブラウザには登録したオブジェクト（要素モデル，入力端子，出力端子）の一覧が表示される．
一覧の中から編集したいオブジェクトを選び出し，抽出する機能を持つ．
コネクトテーブルは選択した要素モデルに関する接続情報を表示するテーブル，プロパティテーブルは選択した要素モデルの基本情報を表示するテーブルである．メッセージウィンドウはソフトウェアのエラー情報やファイルの入出力の際の記録，構造定義ファイルの誤りなどをユーザに提供する．
(2) OhStructure を用いた構造定義ファイルの作成
図-4〜図-6 は OhStructure によって構造定義ファイルを作成する過程を示したものである．ここで作成している流域モデルは 2 章にて流域例として取り上げたものである．
まず，モデルを配置するための全体系にあたるプロ
ジェクトを新規作成する．作成された新規プロジェクトにシミュレーションで使用する入力端子，要素モデル，出力端子を配置する．図-4 に示すように，ツールバーから- 453 -図-3 構造定義ファイル作成環境 OhStructure の全体構成画面

図-4 要素モデルと端子の追加

図-5 要素モデル間の接続該当する要素モデル (KinematicWave, SimpleDamModel)を選び出し，プロジェクトに追加していく．追加された要素モデルは左端のオブジェクトブラウザに列挙されていく．要素モデルの追加後は入力データ設定のための入力端子 (OhInputDouble) とデータファイル出力のための出力端子 (OhOutputDouble) を追加し，入力端子に入力データである [inﬂow-0.dat][inﬂow-1.dat]，出力端子に出力データである [outﬂow.dat] を設定する．

次に，表示された要素モデルに対してモデル間の接続を行っていく．要素モデルによっては複数の受信端子，送信端子をもつものがあるため，接続の際にどの送信端子と受信端子を接続するかを選択しつつ，すべての要素モデルを接続していく．図-5 は，2 つの河川が流れ込むダムモデルに対して接続をしようとする際，受信端子が 2 つ存在するため，どちらに接続するかを選択している．入力端子（入力データ）と出力端子（出- 454 -図-6 作成された構造定義ファイル

力データ）も要素モデルと接続し，流域の全体系が完成する．完成したプロジェクトを保存し，構造定義ファイルの出力を行う．これで構造定義ファイル作成の一連の作業は終了である．図-6 は最終的なモデルの接続状態（左）と出力された構造定義ファイル（右）である．

図-7 クラス情報設定画面 (ClassEditor)(3) OhStructure を用いた構造定義ファイルの編集・管理a) 要素モデルのクラス情報の外部参照
OhStructure で要素モデルを扱う際には要素モデルに関する情報として，要素モデルのクラス情報が必要となる．クラス情報はクラス名，新しく追加する際の基本モデル名，説明文，送信端子の情報，受信端子の情報から構成される．
要素モデルのクラス情報を追加する際には，書式にしたがって書かれたクラス情報のテキストファイルを読み込む方法と図-7 のように OhStructure が表示するウィンドウ（ClassEditor）からクラス情報を入力する方法を用意している．
b) 構造定義ファイルの誤りの検出
OhStructure は構造定義ファイルを作成するだけでなく，構造定義上の誤りをチェックする機能をもつ．ある要素モデルのモデル名とモデル番号が他の要素モデルと重複していたり，要素モデルのクラス情報と一致しない送受信端子があった場合には，メッセージウィン
ドウにエラーメッセージを出力する．
c) パラメータ・初期状態量ファイルの編集
外部からパラメータ，初期状態量ファイルをプロジェクトに読み込むことができる．外部のファイルからパラメータ，初期状態量を設定する機能とは別に，OhStructure が表示するウィンドウ（ParameterEditor）からデータを入力する方法もある．メインウィンドウから要素モデルを選択することで，図-8 のような ParameterEditor
ウィンドウが開き，要素モデルごとのパラメータ，初期状態量を個別に設定することができる．ParameterEditor
ウィンドウは上部が要素モデルのパラメータ，初期状態量を編集する際のメモ欄となっていて，パラメータや初期状態量を設定するときに注意すべき事項など，情報を自由に書くことができる．ここで設定されたパラ

図-8 パラメータ設定画面 (ParameterEditor)

メータ，初期状態量は構造定義ファイルの出力を行った際に，自動的に構造定義ファイルの形に合わせて出力される．

5. OhStructure の適用例
OhStructure の適用例として桂川上流域の例を取り上げる．図-9 は桂川上流域図であり，この流域を表す構造定義ファイルが既に存在しているとする．この流域において，日吉ダムからの放流量を上端の境界条件とした流出シミュレーションを行うために，図-9 においてピンク色で塗られた，日吉ダムより下流，かつ桂地点より上流にあたる部分の構造定義ファイルを作成したい．
OhStructure に読み込まれた構造定義ファイルには桂川上流域のすべての流域情報が含まれており，ここから必要な部分を抽出することになる．
まず，日吉ダムを含め，上流の部分は必要ないため，図-10 に示すように日吉ダムを表す要素モデルを選択し，日吉ダムモデル (hiyoshi-0) と下流の河道流追跡モデル(musk-435) の間の接続関係を削除する．さらに河道流追跡モデル (musk-435) には日吉ダムからの放流量を境界条件として与えるために入力データ [damﬂow.dat] を接続する．

- 455 -

図-10 データ接続の変更

図-9 桂川上流流域図

次に，OhStructure には，ある要素モデルを指定し，それより上流に接続する要素モデル群を抽出する機能がある．図-11 では桂地点を表す河道流追跡モデル (musk1876) に対してこの機能を用いることで，桂地点より上流にに存在する部分を抽出することができる．あらかじめ日吉ダムモデルとその下流のモデル間の接続関係が切られているため，日吉ダムを含めたその上流は選び出されず，今回必要とする部分だけが抽出される．
最後に，桂地点を表す要素モデル (musk-1876) に出
力端子 [output] を追加し，モデル群を構造定義ファイルとして出力し直すことで，図-9 にピンク色で塗られた流域だけの構造定義ファイルが作成される．また，抽出された要素モデルに付随するパラメータファイル・初期状態量ファイルも，抽出されたモデル群の形に合わせて自動的に出力される．
以前は桂川上流域の地形情報から必要な部分を切り出し，切り出した地形情報から構造定義ファイルを再度生成し直すという作業が必要であった．今回 OhStructureを用いることにより，既存の構造定義ファイルから一部を切り出し，データを付け替えるといった編集作業を瞬時に行えるようになった．また，シミュレーションに必要な部分だけを取り出すことによって，モデルの計算を省略し，流出計算にかかる時間も短縮することができる．

6. おわりに本研究では，OHyMoS を用いて水文シミュレーションを行う際に必要となる構造定義ファイルを，GUI によって作成することを支援するシステム OhStructure を開発した．構造定義ファイルをグラフィカルなソフトウェアで作成できるようになることで，構造定義ファイルの目的の一つである，要素モデルの配置・接続を図-11 桂地点より上流の抽出容易に行うことができるようになり，よりユーザ本位のモデリングシステムになった．また，作成支援の機能をもつことで構造定義ファイル作成上の誤りを減らし，シミュレーションを円滑に行えるようになった．
現在，国土技術政策総合研究所と土木学会水工学委員会を中心として進められている水文シミュレーションの標準フレームワーク（CommonMP）の開発は，OHyMoSがベースとなっている．CommonMP においても，要素モデルの接続による流域系モデルの実現と構造定義の仕組みは同様と考えられ，構造設計の GUI 化と機能の充実は本質的に重要な事項である．
参考文献
1) 高棹琢馬・椎葉充晴・堀智晴・鈴木俊朗：流出シミュレー
ション構成の新しい枠組み, 水工学論文集, 第 37 巻, pp.
805–808, 1993.
2) 高棹琢馬・椎葉充晴・市川温：構造的モデリングシステム
を用いた流出シミュレーション，水工学論文集, 第 39 巻,
pp. 141–146, 1995.
3) 京都大学大学院工学研究科 都市環境工学専攻 水文・水資源工学分野, http://hywr.kuciv.kyoto-u.ac.jp/
4) 佐藤芳洋：流出系の構造的モデリングシステム OHyMoSJの開発とその応用, 京都大学大学院工学研究科土木システ
ム工学専攻修士論文, 2004.
5) 京都大学大学院工学研究科 都市環境工学専攻 水文・水資源工学分野，構造定義ファイル作成環境 OhStructure
http://hywr.kuciv.kyoto-u.ac.jp/ohstructure/ohstructure.html- 456 -（2008.9.30 受付）