 計算実行環境
    
解説書   
立川康人・高橋 円
平成  年  月  日
概 要    、略して       は、 の構造定義ファイル  形式 に記述されている要素モデルのパラメータを変更し、 のコマンドライン実行環境  を用いて計算を実行するフロントエンドである。 任意の要素モデルのパラメータの一覧表示
機能、 一覧表示したパラメータを変更して計算する機能、  一連の計算をある書式に従って記述し、それに従って連続的に計算する機能、! 最適モデルパラメータを求める機能を備えている。プログラムは "#$$ %%&'"$"$からダウンロードすることができる。

目次
はじめに



 使用前の準備 起動画面









メニューバー
要素モデル名表示欄
プロジェクトファイル名表示欄
パラメタ名・値表示画面
計算方法の選択ボタン







 パラメータ値の一覧表示と変更および計算手順

 計算手順指定ファイルを用いたバッチ処理の手順









計算の手順
計算手順指定ファイルの仕様

 パラメータ同定計算の手順



はじめに
個々の水理・水文計算を実現する数値計算プログラムは数多く存在する。それらの数値計算プログラムを相互に組み合わせて利用することができれば、高度な水理・水文計算を実施することができる。しかし，個々の数値計算プログラムは通常，異なる組織に属する技術者・研究者によって独立に開発されるため、計算機環境やプログラミング言語、
計算機プログラムの構成の仕方が異なり、それらを相互に組み合わせて利用することは容易ではない。このことは、複雑で高度なシミュレーションモデルになればなるほど、それを開発した個人か研究グループしかそのソースコードを理解することができず、モデル構
造や計算アルゴリズムを評価することが難しいこと、他者が開発した要素モデルを組み合わせて、高度で複雑な水理・水文シミュレーションを構築することが困難であることを意味する。こうした課題を解決するために、国土交通省国土技術政策総合研究所が中心となって、水理・水文解析ソフトウェア統合型共通基盤  
         が開発された。
要素モデルを組み合わせて高度なシミュレーションモデルを短時間で構築する環境が、により提供された。水工シミュレーションモデルを実際の現場に利用していくためには、モデル構築環境と合わせて、に備わっていない以下の機能、¯ 多数の要素モデルのパラメータ値や初期状態量の値を容易に変更する機能¯ パラメータ値や初期状態量の値、入力ファイルを変えて、多数の水工シミュレーショ
ンを連続的に実行する機能¯ モデルパラメータを最適同定する機能の !"# 環境で要素モデルを持つ実行環境が必要になる。一つ目の機能は、
ごとにプロパティ画面を開き、パラメータ値を設定する作業を回避するために必要な機能である。要素モデルの個数が多くなると、パラメータ値や初期状態量の変更が膨大な作業となってしまう。二つ目の機能は、パラメータ値や初期状態量の値を変えて計算結果の感度分析を行う場合など、様々な条件での水工シミュレーションを連続的に実行するための機能である。三つ目の機能は、を用いてパラメータの最適同定を行う機能である。

計算実行環境 $  " %& '&&、略して &&( &) & %  は、これらの つの機能を のコマンドライン実行
環境を用いて実現するフロントエンドプログラムであり、* + を用いて開発されている。
&& は、
の構造定義ファイル , - 形式 に記述されている要素モデルのパラメータ値や初期状態量の値を自在に変更することにより、

 任意の複数の要素モデルのパラメータを表形式で一覧表示する機能、 一覧表示した要素モデルのパラメータ値を一括で変更して計算する機能、
 複数の異なる計算条件をある書式に従ってファイルに記述し、その手順に従って複数のシミュレーションを連続的に実行する機能、 最適モデルパラメータを求める機能
図 . 起動画面を実現している  。最適モデルパラメータを求めるための最適化アルゴリズムとして、/&"0 /12  3) &% 1  % 3  1 " %  04 
を用いている。

 使用前の準備
本プログラムを起動する前に以下を行う。

 本プログラム &&) を  ) と同じフォルダに置く。

 /&"0) を  ) と同じフォルダに置く。/&"0) はパラ
メータ同定計算に用いる。/&"0) を  でコンパイルして作成した場合は、  も同じフォルダにコピーする。  は  のランタイム
ライブラリであり、 の 56 の中にある。
 5&)5 5'  "# をテキストエディタで修正して、プロジェクトファイルおよび構造定義ファイルをフォルダ 7"# 作業ワークディレクト
リ7 をフルパスで指定する。
8 ではフォルダの変更設定が効かないようだ。この場合はデフォルトの &)5 3 に置く。

 起動画面
起動画面は &&) の起動時に表示される画面である。図 に起動画面を示す。以下、起動画面について説明する。

図 . ファイルメニューのイメージ

図 . 設定メニューのイメージ



メニューバー

ファイルメニューと設定メニューのイメージと項目を図 、図 、表 、表  に示す。起
動画面の「設定メニュー」「要素モデルの並び替え」についての説明を行う。構造定義
ファイルを の !"# から作る場合、要素モデルは画面上に設置した順番にファイルに表記される。本プログラムが要素モデルのパラメタを表記する際は、構造定義
ファイルに表記されている順番を元に表示するため図  のように使用者が求める順番になっていない可能性がある。そこで、並び替える機能を用いることで使用者が求める順番に構造定義ファイルを書き換え、図 6 のように表示することが出来る。
本機能は図  のように の !"# で設定された要素モデルの名称を用いる。要素モデルの名称は構造定義ファイルでも設定することができる。要素モデルに与えた名称が 7' ,,7 の形式で書かれている場合、図 6 のように構造定義ファイルを書き換える。ただし '  にはモデル名を、,, には整数が入り、整数の順番に並べ替える。さらに本プログラムの仕様により、名称の最初にある  内の数字を読み込む。例えば7' ' 7は並び替えの対象とみなさない。また要素モデルを並び替え、それを構造定義ファイルに反映する際は 79/:) 7 というファイル名で構築される。



項目名

表 . ファイルメニューの内容
内容

ファイルの読み込み ;
上書き保存 /
名前をつけて保存 0
終了 

項目名表 . 設定メニューの内容
内容

1  ) の設定
要素モデルの並び替え


の構造定義ファイルを読み込む
構造定義ファイルを更新する
新しい構造定義ファイルを作成し、保存するプログラムを終了する


を "# で起動させる 1  )のディレクトリの設定を行う
構造定義ファイル内の要素モデルを指定した順番に並び換える要素モデル名表示欄

要素モデル名表示欄には構造定義ファイルに表記されている全ての要素モデル名が格納される。パラメタ値を表示したい要素モデル名を選択することでパラメタ値が表示される。



プロジェクトファイル名表示欄

プロジェクトファイル名表示欄には計算を行うプロジェクトファイル名が表示される。デフォルトでは読み込んだ構造定義ファイルのファイル名の語尾を7) 7から7  <:) 7に換えたものが表示される 例えば、/ 3)  を読み込んだ場合 / 3  <:) が表示される。また新しい名前を付けて保存を行った場合は、新しいファイル名の語尾に対して同様のことを行い表示する。計算を行う際にはこのプロジェクトファイル名表示
欄に表記されているプロジェクトファイルを用いる。



パラメタ名・値表示画面

要素モデル名表示欄に表示された要素モデル名に設定されているパラメタ名・値を表示する画面である。なお、*/ 88 によって開発したアプリケーションには貼り付け機能が備わっていないため、下記ソースコードにより、キーボードの 7=*7 で貼り付けを行う機能を追加した。



計算方法の選択ボタン

本プログラムには三つの機能が備わっており、これらのラジオボタンより機能を選択することができる。以下、それぞれのラジオボタンについて説明する。

 並び替え前

 並び替え後

図 . 構造定義ファイルの並び替え  ラジオボタン 7/  7ラジオボタンにチェックがある場合
は、プロジェクトファイル名表示欄に表示されているプロジェクトファイルを用いて計算を一回行う。操作手順については  で説明を行う。

  ラジオボタン 7  7ラジオボタンにチェックがある場合
はパラメタの値を変えながら連続で計算を行う。連続計算を行う手順は  で説明する。

    

ラジオボタン 7   # > 7 ラジオボタンにチェックがある場合はパラメタの同定を自動で行う。チェックを入れた後は同定を行うパラメタの選択を行い、その初期値などを設定し計算を開始する。パラメタ同定を行う手順は  で説明を行う。

計算開始 ボタン 計算を開始するボタンである。7  7ラジオボタンのチェックがある場合は連続計算を行い、7   # > 7ラジオボタンのチェックがある場合はパラメタ同定の計算を行い、いずれにもチェックが無い場合は、一?

図 . パラメタの一覧表示

回の計算が行われる。

 パラメータ値の一覧表示と変更および計算手順「ファイル」「ファイルの読み込み」から構造定義ファイル , - 形式 を選択する
ことで、図  のようにパラメタ名・値表示画面にパラメタ名と値が表示される。プロジェ
クトファイルではなく、構造定義ファイルを読み込むことに注意する。また、構造定義
ファイルとプロジェクトファイルは 5&)5 5'  "# で設定した 7"# 作業ワークディレクトリ7 に置くこと。ここに置かないとコマンドライン環境でのである 1  ) が正常に動作しない。デフォルトフォルダは &)5 3である。
図  のように要素パラメータの値を変更することができる。演算要素モデルを選択すれ
ば、モデルパラメータの値や初期状態量を変更することができる。出力用要素モデルや入力用要素モデルを選択すれば、出力ファイルや入力ファイルのフォルダやファイル名を変更することができる。
パラメタの変更を行った後は、「ファイル」「上書き保存」、もしくは「ファイル」「名前を付けて保存」からパラメタを修正した構造定義ファイルを保存することができる。パ
ラメータを修正して新たに計算する場合は、構造定義ファイルを保存した後、実施すること。保存しないと修正したパラメータ値が計算に反映されない。計算に用いられるプロ
ジェクトファイルは、プロジェクトファイル名表示欄に表示されているプロジェクトファ
イルである。
計算に用いられる の "# である 1  ) は「登録」「1  ) の登録」から設定することができる。デフォルトでは 7.5   :55&)
56 51  )7 を設定している。パラメータの更新などが完了した後に、7計算開
始7ボタンを押せば、1  ) による計算が行われる。

@

図 . 要素モデルの選択

 計算手順指定ファイルを用いたバッチ処理の手順


計算の手順

条件の異なる複数の計算を連続して実施するバッチ処理について説明する。変更するパ
ラメータ値や入力ファイル、出力ファイル名を記述する、所定の形式に従うテキストファ
イルを用意し、この計算手順に従って一連の計算を一度に実施する。この形式の計算手順を指定するファイルを「計算手順指定ファイル」とよぶことにする。
計算手順指定ファイルを用意した後、図  のように 7  7 ラジオボタンにチェックを入れた後に7計算開始7ボタンを押すと、上記ファイルの読み込みを行い、一連の計算が実施される。
計算手順指定ファイルでは、プロジェクトファイルのフルパスを指定する。構造定義
ファイルの読み込みは必要ない。仮に読み込んだとしても、バッチ処理による計算には影響しない。プロジェクトファイルを計算ごとに指定し、そのプロジェクトファイルをもとにパラメータ値などの変更を設定して計算をする仕様となっている。
連続した計算ではログを出力する。ログは 1  ) と同じフォルダに出力される。
ファイル名は 7   )7 である。出力要素モデルによるファイル出力先のフォルダ
は、自動的に作成される。ただし、環境によってはフォルダの自動生成が有効でないことがあるため、その場合は利用者があらかじめフォルダを用意する必要がある。



計算手順指定ファイルの仕様

計算手順指定ファイルの拡張子は 77 または 737 とする。計算手順指定ファイルは
 で書かれた固有の説明行の後に情報を記述する。一回分の計算の情報は  と    の間に記述する。計算手順指定ファイルはどのフォルダにあっても構わない。行頭に + がある行はコメント行とみなされる。改行のみからなる空行は読み飛ばされる。計算手順の情報は以下の順番に記述する。

 

図 . 7  7ラジオボタンをチェック時の画面

一回分の計算手順の開始を表す。

  ! "対象とするプロジェクトファイル（構造定義ファイルではない）のフルパスを記述する。

  # $

パラメータ値の変更したい要素モデルの名称を記述する。具体的には以下の構造定義ファイルの中のA7$  " %& '/ : 

1 7がモデル名称である。
ソースコード . 要素モデルのモデル名称

  
  ! "#$%&'% "()* +( *% ! "#$%&'% "()* +&( *%
'+  , - ./ 0   1 + # "+
2 
&&&
3

3

 % 演算要素モデルのパラメタ値や入・出力要素モデルのファイル名を記述する。変更しないパラメータも含めて、すべてのパラメータを記述する必要がある。具体的には、構造定義ファイルの中の上で指定する要素モデルの中に記述されている¯   3 情報 パラメータ情報 で指定する *6 $A  *A7 887
5 などとなっている * で指定されている値¯ # / 情報 初期状態情報 の *6 $A  *A77 5 などとなっている * で指定されている値B

を並べて指定する。構造定義ファイルの *6 $ に対応するすべての値を、記
載順に、空白あるいはタブで区切って指定する。変更しない場合も値を指定しなくてはならない。
ソースコード . 要素モデルのパラメータ値および初期状態値
4%%
5 % 6  7 8'7 4 2 タイムステップ（秒）   79,:  5 ) 3
5 % 6  8;%  2 流域面積<;<=>?@   79,:  5 ) 3
5 % 6  8 2 貯留係数<   79,:  5 ) 3
5 % 6  84 2 貯留係数<   79,:  5 )&/ 3
5 % 6  87  2 遅滞時間<7:<=+%@   79,:  5 ) 3
5 % 6  8( 2 <次流出率<(   79,:  5 )& 3
5 % 6  80  2 飽和雨量<0 <=@   79,:  5 ) 3
5 % 6  80 2 初期損失雨量<0<=@   79,:  5 ) 3
5 % 6  8A6 2 基底流量<A6<=?3 @   79,:  5 ) 3
34%%
  '
5 % 6  8A 2 初期流出高 B3+%C   79,:  5 ) 33  'D&$ ! " '

出力要素モデルの出力先を変更する。要素モデル名、出力先が書かれている *6 の $ 名、新しい出力先ディレクトリを 行に分けて表記する。ここではディレクトリのみを変更するため、ファイル名の箇所には「C」を入れる。

 $ ! " ' 入力要素モデルの読み取り先を変更する。要素モデル名、読み取り先が書かれている *6 の $ 名、新しい読み取り先ディレクトリを行に分けて表記する。ここではディレクトリのみを変更するため、ファイル名の箇所には「C」を入れる。
複数の要素モデルのパラメタ値を変更する場合は      3  と   % を繰り返し表記することで可能となる。同時に、複数の種類の出力要素モデルや入力要素モデルの情報を変更した場合は、;3 D 1 や # 3 D 1  を繰り返し表記することで可能となる。

  
一回分の計算手順の終了を表す。
以下に例を示す。行頭の + マークはコメント行を表す記号である。
ソースコード . 計算手順指定ファイルの例
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE= *) 8  %@=- 8 %*%@FG+G *+ > $ G4G H*)GG 8 % "()* 4%I*(= 8 8J8 % %@ ! "#$%&'% "()* +

&H

=4 % %8! )@E 5 % 6  7 8'7 4 2 タイムステップ（秒）   79,:  5 ) 3
E 5 % 6  8;%  2 流域面積<;<=>?@   79,:  5 ) 3
E 5 % 6  8 2 貯留係数<   79,:  5 ) 3
E 5 % 6  84 2 貯留係数<   79,:  5 )&/ 3
E 5 % 6  87  2 遅滞時間<7:<=+%@   79,:  5 ) 3
E 5 % 6  8( 2 <次流出率<(   79,:  5 )& 3
E 5 % 6  80  2 飽和雨量<0 <=@   79,:  5 ) 3
E 5 % 6  80 2 初期損失雨量<0<=@   79,:  5 ) 3
E 5 % 6  8A6 2 基底流量<A6<=?3 @   79,:  5 ) 3
E 5 % 6  8A 2 初期流出高 B3+%C   79,:  5 ) 3   &/  &    8=9))8 %*%8+ "@Eモデル名
#*&4%%&' &1% '5( 
Eディレクトリー情報に関する
9!%1% ( 2 1 +4 +
E新たなディレクトリー&G9))  G)  ) *) G* GK=)8 %*%8+ "@Eモデル名
Eディレクトリー情報に関する
E新たなディレクトリー= *)8@

EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE= *) 8  %@=- 8 %*%@FG+G *+ > $ G4G H*)GG 8 % "()* 4%I*(= 8 8J8 % %@ ! "#$%&'% "()* +

&H

=4 % %8! )@E 5 % 6  7 8'7 4 2 タイムステップ（秒）   79,:  5 ) 3
E 5 % 6  8;%  2 流域面積<;<=>?@   79,:  5 ) 3
E 5 % 6  8 2 貯留係数<   79,:  5 ) 3
E 5 % 6  84 2 貯留係数<   79,:  5 )&/ 3
E 5 % 6  87  2 遅滞時間<7:<=+%@   79,:  5 ) 3
E 5 % 6  8( 2 <次流出率<(   79,:  5 )& 3
E 5 % 6  80  2 飽和雨量<0 <=@   79,:  5 ) 3
E 5 % 6  80 2 初期損失雨量<0<=@   79,:  5 ) 3
E 5 % 6  8A6 2 基底流量<A6<=?3 @   79,:  5 ) 3
E 5 % 6  8A 2 初期流出高 B3+%C   79,:  5 ) 3   &/  &    =9))8 %*%8+ "@Eモデル名
#*&4%%&' &1% '5( 
Eディレクトリー情報に関する
9!%1% ( 2 1 +4 +
E新たなディレクトリー&G9))  G)  ) *) G* GK=)8 %*%8+ "@Eモデル名
Eディレクトリー情報に関する
E新たなディレクトリー= *) 8@
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
D パラメータ同定計算の手順/&"0 法 /12  3) &% 1   を用いてパラメータ同定を行う。
/&"0 法のプログラム /&"0) は、
&& の中で 1  ) と交互によばれて、最適モデルパラメータを求める。ここで用いた /&"0) は多田によって :  B8を用いてコーディングされたプログラム  である。
/&"0) は の実行プログラムをを置くフォルダ 5&)
56 に置く。 で /&"0) を作成した場合は、 のランタイムライ
ブラリ   も同じところにコピーする。
7   # > 7ラジオボタンにチェックを入れると図  のようにパラメタ値の表の右側にパラメタ名が表記された列が新たに加わる。この時、新しく加わった列のセ図 . 7   # >

7ラジオボタンをチェックした後の画面

ルは全て「C」となっている。また本プログラムでは入力要素モデルと出力要素モデルはパラメタの同定を行えない仕様になっている。
この機能ではグループごとにパラメータの同定を行うことができる。図 ( にグループの設定例を示す。同じグループには 8 以上の同じ整数を「C」に設定する。パラメータを変更しない場合は「C」のままにしておく。同じグループ内のパラメータ値は同じ値が常に代入されることになるため、異なるパラメータを同一グループに設定することはできない。
パラメタをグループ化し終えた後に7計算開始7ボタンを押すと、図 ) のようにパラメ
タの各グループの値を設定する画面が開く。用いる整数の順番に意味はないが、連続した整数を用いる必要がある。図 ) のように設定画面では以下の  項目を設定する必要がある。計算結果のデータファイルが存在しない場合は、7参照7ボタンから選択することが出来ないため、フルパスを直接入力する。

¯ 計算回数¯ パラメタの初期値、最小値、最大値¯ 比較する観測データと計算データのフルパス¯ 目的関数¯ データの時間表記 E  E3¯ 計算結果のファイルへの出力の有無

目的関数は下記の  つを用意している。 . 計算時間数、 . 実績流量、  . 実
績ピーク流量、  . 実績ピーク時刻、 . 計算流量、  . 計算ピーク流量、
 . 計算ピーク時刻である。

*' 指標 ハイドロ全体における各時刻の流量誤差を評価する。


A






F
 


図 (. パラメータのグループ化

図 ). パラメータの値の範囲設定

流量誤差比率 ピーク流量に対する誤差比率を評価する。
 A















 



ピーク流量誤差比率 ピーク時の流量比を評価する。
 A    

ピーク生起位相差 ピークの時間の是れを評価する。


A 







流出ボリューム誤差 流出ボリュームを評価する。


 A




計算結果および観測データのデータ形式は図 のようである。この形式は の /* 出力要素モデルを用いた場合の形式である。 行目から 行目はヘッダで、 行'//*:D(*8
データ区分( 時系列E ( D8
858B58@ .88.88( ? 
858B58@ ?.88.88(  ?@8?
858B58@ @.88.88( 88888@@B
図. 観測データと計算データのファイル形式

図 . パラメータの値の同定の過程
目以降がデータとなる。 行目以降の一つ目のカンマの次の数値を計算値あるいは観測値
として読み込む。二つ目のカンマ以降にデータが記述されている場合は読み飛ばされる。
現時点のプログラムでは、時間は見ていない。計算結果と観測データの始まりと終わりの時間は同じで、時間間隔も同じでなければならない。
設定終了後 7;$7 ボタンを押すと計算が始まる。また同時に図  のような画面が表示され計算番号、目的関数の値、パラメタ値が表示される。7G ;37 チェックボック
スにチェックがある場合、計算終了後に図  の内容が 1  ) と同じディレクトリー
下の 7 3  6G7 に出力される。またこのファイルでは目的関数が一番良いものに「C」が付いている。

参考文献
 
 高橋 円 . 
論文( 8( 13.55  H   <35の多重実行環境の開発と治水評価への適用( 京都大学修士学位

I  D ( /  1 /  1 (   *< $ !3 . ;3    1 /&"0 6 3 4
1    6  1( J    '  (( 33 ?K( BB 多田 毅 . 13.55 <35555