(57)【要約】【課題】浸水シミュレーションでは、１回の洪水で破堤箇所を０または１か所に限定することが一般的であるが、現実には、１回の洪水で破堤箇所が２以上になることがあり、従来の方法では、現実の水害で発生し得るシナリオの一部だけが評価され、それ以外のシナリオが無視されることになる一方で、破堤箇所を限定しないとシナリオ数が非常に多くなってしまう。【解決手段】浸水シミュレーションプログラムとして、破堤点の数をｉ（ｉは１以上の整数）として当該ｉ個の箇所が破堤するシナリオを受け付ける第１のステップと、（ｉ−１）個の箇所が破堤するシナリオの浸水シミュレーションの結果をロードする第２のステップと、ロードした浸水シミュレーションの結果から、ｉ個目の破堤点が破堤する時刻を算出する第３のステップと、算出したｉ個目の破堤点が破堤する時刻を開始時刻として浸水シミュレーションを実行する第４のステップとを有する。【選択図】  図８
2020034633.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが実行する浸水シミュレーションプログラムであって、
任意の１箇所が破堤点として破堤するシナリオを受け付ける第１のステップと、
越流のみで０箇所が破堤するシナリオの浸水シミュレーションの結果をロードする第２のステップと、
ロードした前記浸水シミュレーションの結果から、前記任意の１箇所の破堤点が破堤する時刻を算出する第３のステップと、
算出した前記任意の１箇所の破堤点が破堤する時刻を開始時刻として浸水シミュレーションを実行する第４のステップと
を有する浸水シミュレーションプログラム。
【請求項２】
コンピュータが実行する浸水シミュレーションプログラムであって、
破堤点の数をｉ（ｉは２以上の整数）として当該ｉ個の箇所が破堤するシナリオを受け付ける第１のステップと、
（ｉ−１）個の箇所が破堤するシナリオの浸水シミュレーションの結果をロードする第２のステップと、
ロードした前記浸水シミュレーションの結果から、前記ｉ個目の破堤点が破堤する時刻を算出する第３のステップと、
算出した前記ｉ個目の破堤点が破堤する時刻を開始時刻とした浸水シミュレーションを実行する第４のステップと
を有する浸水シミュレーションプログラム。
【請求項３】
請求項２に記載の浸水シミュレーションプログラムであって、
前記第２のステップで、前記（ｉ−１）個の箇所が破堤するシナリオの浸水シミュレーションにより破堤しない結果が得られた場合には、先の前記第１のステップで受け付けた前記シナリオを無効にすると共に、後に続く前記第３および前記第４のステップをスキップする
ことを特徴とする浸水シミュレーションプログラム。
【請求項４】
請求項３に記載の浸水シミュレーションプログラムであって、
前記破堤点の最大個数としてｉｍａｘの入力を受け付け、
前記ｉを０から順次１ずつ増やして前記ｉｍａｘまで行う繰り返しステップに合わせて、下記（Ａ）の処理を繰り返すことを特徴とする浸水シミュレーションプログラム。
（Ａ）前記ｉｍａｘから前記破堤点をｉ個選び、選んだ組み合わせの数の前記ｉ個の箇所が破堤するシナリオを作成し、作成した当該シナリオそれぞれについて前記第１のステップから前記第４のステップを実行する。
【請求項５】
請求項１〜４のいずれか１項に記載の浸水シミュレーションプログラムであって、
前記第４のステップで実行した浸水シミュレーションの結果を地図データ上に重ねてウィンドウとして表示する表示ステップを
有する浸水シミュレーションプログラム。
【請求項６】
請求項５に記載の浸水シミュレーションプログラムおよび地図データ並びに当該浸水シミュレーションプログラムの実行に必要なデータを格納する記憶部と、
前記浸水シミュレーションプログラムを実行するプロセッサと、
請求項５に記載のウィンドウを表示する出力部と、
ユーザの操作入力を受け付ける入力部と
を備える浸水シミュレーションシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、洪水氾濫による浸水をシミュレーションするコンピュータプログラムおよびそれを使用した浸水シミュレーションシステムに関する。
【背景技術】
【０００２】
水害対策では、浸水深を想定することが不可欠である。たとえば、水害に遭ってはいけない建物の床高の決定、非常用電源の据え付け高さの決定などでは、想定浸水深が最も重要な要素である。この想定浸水深に関する情報源として、行政機関が作成する「浸水想定区域図」が挙げられる。
【０００３】
「浸水想定区域図」は、特定の条件下においてその地域で想定すべき最大の浸水深を提供するものである。浸水深は、想定する破堤シナリオ（堤防のどの区間が、どの水位で、どのように決壊するのか）によって大きく異なる。この特性を考慮し、「浸水想定区域図」では、次の工程が採用される（非特許文献１）。
【０００４】
まず、特定の条件下（たとえば、１００年に一度の大雨による河川増水など）で想定される破堤シナリオを複数用意する。この破堤シナリオでは、破堤に関する諸条件（破堤点、破堤開始水位、破堤敷高など）が定義される。
次に、それらのシナリオごとに、浸水シミュレーションを行う。これにより、対象地域に展開されたメッシュのセルごとに、浸水深が求まる。
最後に、これらメッシュのセルごとに、すべてのシナリオにおいて最大の浸水深を求める（この処理は、「最大包絡」と呼ばれる）。
【０００５】
一方で、特許文献１には、破堤点ごと、時系列ごとに浸水想定区域を表示し、破堤後の浸水の時間経過による浸水状況の変化をアニメーションで表示する「動く浸水想定区域ビューワーシステム」が記載されている。
【０００６】
このシステムでは、ユーザが破堤点を１か所指定すると、その地点が破堤すると想定した場合の浸水深分布が地図上にアニメーション表示される。つまり、ユーザが指定した破堤シナリオに関する浸水シミュレーション結果が提示される。ユーザは、破堤開始から何時間後に、どこが浸水するかを把握することができる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−８３１６７号公報
【非特許文献】
【０００８】
【非特許文献１】国土交通省水管理・国土保全局河川環境課水防企画室、国土技術政策総合研究所河川研究部水害研究室、「洪水浸水想定区域図作成マニュアル（第４版）」、平成２７年７月
【非特許文献２】国土交通省水管理・国土保全局河川環境課水防企画室、「浸水想定区域図データ電子化ガイドライン（第２版）」、平成２７年７月
【発明の概要】
【発明が解決しようとする課題】
【０００９】
浸水シミュレーションでは、河川流量および堤防決壊個所（破堤点）を入力とし、河川の堤防決壊による都市の浸水域、浸水深をシミュレーションするところ、１回の洪水で破堤する箇所を０または１か所に限定することが一般的である。上述の特許文献１、非特許文献１でもこの仮定を採用している。
ところが、現実の水害ではしばしば、１回の洪水で破堤する箇所が２以上になることがある。つまり、従来の方法では、現実の水害で発生し得るシナリオの一部だけが評価され、それ以外のシナリオが無視されることになる。
【００１０】
ある地域の浸水が、他の地域の浸水に大きな影響を与える場合、ある地域だけで水害リスクを減らすと、他の地域の水害リスクが増えてしまいかねない。この問題を回避するため、河川整備の際には「上下流・本支川バランス」を保つことが求められる。地域ごとの水害リスクが同程度であるか評価するためには、１回の洪水で破堤する箇所が２以上になるシナリオについても評価する必要がある。
【００１１】
にもかかわらず、上述したように１回の洪水で破堤する箇所を０または１か所に限定する理由は、限定しないとシナリオ数が非常に多くなるためである。しかし、多くのシナリオすべてをシミュレーションすることは、非現実的である。想定破堤点の数がＡ、そのうち破堤する箇所がＢの場合、シナリオ数はＣｏｍｂｉｎ（Ａ，Ｂ）で表される。ただし、Ｃｏｍｂｉｎ（Ａ，Ｂ）は、Ａ個からＢ個を選択するときの組み合わせの数を返す関数を示す。たとえば、想定破堤点の数Ａ＝１００の場合、１回の洪水で破堤する箇所を０または１か所に限定するとシナリオ数は１０１個であるが、限定しないと２の１００乗（１０の３０乗）個になる。
【００１２】
本発明は、上述した課題を解決するために、多数のシナリオのシミュレーションを効率的に実行する浸水シミュレーションに関するコンピュータプログラムを提供することである。
【課題を解決するための手段】
【００１３】
本発明に係る浸水シミュレーションプログラムは、破堤点の数をｉ（ｉは１以上の整数）として当該ｉ個の箇所が破堤するシナリオを受け付ける第１のステップと、（ｉ−１）個の箇所が破堤するシナリオの浸水シミュレーションの結果をロードする第２のステップと、ロードした浸水シミュレーションの結果から、ｉ個目の破堤点が破堤する時刻を算出する第３のステップと、算出したｉ個目の破堤点が破堤する時刻を開始時刻として浸水シミュレーションを実行する第４のステップとを有することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、多数のシナリオのシミュレーションを効率的に実行することにより、浸水シミュレーションにかかる計算時間を大幅に短縮することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明に係る浸水シミュレーションを実行するコンピュータシステムの構成を示す概略ブロック図である。
【図２】浸水解析結果データ１４２の破堤点データのデータ構造２１０の一例を示す図である。
【図３】浸水解析結果データ１４２の破堤シナリオデータのデータ構造３１０の一例を示す図である。
【図４】浸水解析結果データ１４２の河川水位時系列データのデータ構造４１０の一例を示す図である。
【図５】浸水解析結果データ１４２のメッシュ定義データのデータ構造５１０の一例を示す図である。
【図６】浸水深時系列メッシュデータ１４３のデータ構造の一例を示す図である。
【図７】メッシュの位置を示す図である。
【図８】浸水シミュレーションプログラム１２１の処理を示すフローチャートである。
【図９】浸水シミュレーションプログラム１２１のステップ８０５で実行する処理の詳細を示すフローチャートである。
【図１０】破堤シナリオに関するユーザの指示を受け付けるＧＵＩを示す図である。
【図１１】地図上に浸水深時系列を重ねて表示するＧＵＩを示す図である。
【図１２】ＰＣ１００によって実行される処理の流れを示すシーケンス図である。
【発明を実施するための形態】
【００１６】
以下、本発明を実施するための形態として、実施例について添付図面に基づいて説明する。
実施例の説明に先立ち、本発明で新たに導入する概念である、シナリオの重複関係について説明する。本発明は、このシナリオの重複関係を使うことで計算時間の短縮を図るものである。
【００１７】
ここで、シナリオの重複とは、あるシナリオと別のシナリオが、途中まで同一の結果になることを指す。具体的には、破堤点がｉ個あるシナリオにおいて、ｉ個目が破堤する時刻までは、ｉ−１個が破堤したシナリオと全く同じに推移することである。たとえば、破堤点が１個のシナリオにおいて、そこが破堤する時刻までは、破堤点は０個である。したがって、このシナリオは、破堤時刻まで破堤点が０個のシナリオ（破堤がなく越流のみのシナリオ）と全く同じに推移する。
【００１８】
このように、シナリオの重複関係を利用することで、あるシナリオの一部期間のシミュレーションを省くことができる。たとえば、０個が破堤するシナリオをシミュレーションして保存しておけば、その結果を、１個が破堤するシナリオのシミュレーション結果の一部として使うことができる。
【００１９】
さらに、特定の破堤点の組合せを含むシナリオのシミュレーションを省くことができる。ここで、ｉ箇所が破堤すると仮定したシミュレーションにおいて、破堤点Ｘの水位が低く、この破堤点Ｘが破堤しなかった場合を考える。この場合、さらにｋか所の破堤点を加えたとしても（ｋは１以上の整数）、破堤点Ｘが破堤することはない。
【００２０】
なぜなら、破堤箇所が多いほど、破堤点Ｘの水位が低くなるためである。たとえば、ＢＰ１とＢＰ２の２か所を破堤点としたシナリオにおいて、ＢＰ１が破堤し、ＢＰ２が破堤しなかったとする。この場合、ＢＰ１、ＢＰ２および別の破堤箇所ＢＰ３が破堤するシナリオは起こりえない。これを利用することで、シナリオの数を大幅に削減することができることになる。
【００２１】
以上のように、シナリオに重複関係がある理由は、浸水シミュレーションにおいて、破堤するかしないかは予め分からないとする一方で、破堤する場合の諸条件は予め分かるとしていることによる。ある破堤点が破堤するかしないかは、予め推定できないと仮定され、破堤するかしないかのどちらも解析する必要があるとみなされる。一方、その箇所が破堤する場合の諸条件（破堤開始水位、破堤敷高など）は、工学的手法により予め推定できると仮定される。言い換えると、たとえば、ある破堤点について、破堤開始水位が異なるシナリオや破堤敷高が異なるシナリオを評価したい、という実務上のニーズはまれである。このため、シナリオで異なる条件は破堤するかしないかだけであり、破堤した場合の条件は同一となる。このことが、シナリオに重複関係をもたらす原因である。
【実施例】
【００２２】
図１は、本発明に係る浸水シミュレーションプログラムを実行するコンピュータシステムの構成を示す概略ブロック図である。
【００２３】
本実施例によるコンピュータシステムは、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）１００によって構成され、併せて、入出力部１１０を備える。入出力部１１０は、キーボード１１１およびマウス１１２などから成る入力部と、ディスプレイ１１３などから成る出力部とによって構成される。ユーザは、入力部のキーボード１１１またはマウス１１２から命令を入力し、出力部のディスプレイ１１３から結果を視覚的に確認することができる。
【００２４】
また、ＰＣ１００は、内部に少なくともメモリ１２０およびＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１３０を備える。メモリ１２０には、本発明に係る浸水シミュレーションプログラム１２１が展開される。この浸水シミュレーションプログラム１２１は、ＣＰＵ１３０が実行する命令によって構成される。
【００２５】
ＣＰＵ１３０は、浸水シミュレーションプログラム１２１の命令に従い演算を実行し、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１４０へのアクセスおよび入出力部１１０との情報の交換などを行う。
【００２６】
以下の説明において、浸水シミュレーションプログラム１２１が実行する処理は、実際には、浸水シミュレーションプログラム１２１に記述された命令に従いＣＰＵ１３０によって実行される処理である。
【００２７】
ＨＤＤ１４０には、少なくとも、地図データ１４１、浸水解析結果データ１４２および浸水深時系列メッシュデータ１４３が格納され、浸水シミュレーションプログラム１２１はこれらのデータを読み込むことができる。ここで、ＨＤＤ１４０は、ＰＣ１００に内蔵されても、ＰＣ１００の外部に接続されてもよい、また、ＰＣ１００からネットワーク経由でアクセスできる別の装置に接続されてもよい。
【００２８】
地図データ１４１は、少なくとも、地形データを含み、さらに、ユーザに場所を理解させる情報を有してもよい。たとえば、地名、行政界、道路、鉄道、衛星画像、等高線および海岸線などの情報が挙げられる。
【００２９】
浸水解析結果データ１４２は、破堤点データ２１０、破堤シナリオデータ３１０、河川水位時系列データ４１０およびメッシュ定義データ５１０から構成される。
【００３０】
浸水深時系列メッシュデータ１４３は、地図上のメッシュデータにおける時系列の浸水深に関する情報を有する。
【００３１】
これらデータの情報は、データベースに格納してもよいし、フォルダおよびファイルに格納してもよい。後者の場合、たとえば、非特許文献２に定義された、フォルダ構造およびファイル形式を使ってもよい。
【００３２】
図２は、浸水解析結果データ１４２の破堤点データ２１０のデータ構造の一例を示す図である。
破堤点データ２１０は、破堤点ＩＤ２１１、河川名２１２、破堤点の中心の経度２１３、破堤点の中心の緯度２１４、破堤点の中心の河川距離標２１５、破堤点の左岸・右岸の別２１６および破堤開始水位２１７から構成される。破堤点ＩＤ２１１は、破堤点を一意に識別するための情報である。
【００３３】
図３は、浸水解析結果データ１４２の破堤シナリオデータ３１０のデータ構造の一例を示す図である。
破堤シナリオデータ３１０は、破堤シナリオＩＤ３１１、破堤点ＢＰ００１の破堤の有無３１２、破堤点ＢＰ００２の破堤の有無３１３、・・・、破堤点ＢＰ００１の破堤時刻３１４、破堤点ＢＰ００２の破堤時刻３１５、・・・から構成される。破堤点の破堤の有無および破堤時刻のデータは、それぞれ破堤点ＩＤ２１１の数だけある。破堤シナリオＩＤ３１１は、破堤シナリオを一意に識別するための情報である。図３に示す例では、破堤時刻３１４および３１５として、特定の日付時刻からの経過秒数が使われる。ただし、破堤しない場合の破堤時刻には、無効値ＮａＮが格納される。
【００３４】
図４は、浸水解析結果データ１４２の河川水位時系列データ４１０のデータ構造の一例を示す図である。
河川水位時系列データ４１０は、時刻４１１、上流端から下流方向に数えた当該セルまでの数４１２および値４１３から構成される。図４に示す例では、時刻４１１として、特定の日付時刻からの経過秒数が使われる。上流端から下流方向に数えた当該セルまでの数４１２は、これにセルの長さを掛けることで河川距離標に換算できる。また、値４１３として、当該セルの河川水位（海抜で表し、単位は「ｍ」）が使われる。
【００３５】
図５は、浸水解析結果データ１４２のメッシュ定義データ５１０のデータ構造の一例を示す図である。
メッシュ定義データ５１０は、領域南西端の経度５１１、領域南西端の緯度５１２、東西方向のセルの個数５１３、南北方向のセルの個数５１４、東西方向のセルの長さ５１５および南北方向のセルの長さ５１６から構成される。
【００３６】
図６は、浸水深時系列メッシュデータ１４３のデータ構造の一例を示す図である。
浸水深時系列メッシュデータ１４３は、時刻６１１、領域南西端から東西方向に数えた当該セルまでのセル数６１２、領域南西端から南北方向に数えた当該セルまでのセル数６１３および値６１４から構成される。図６に示す例では、時刻６１１として、特定の日付時刻からの経過秒数が使われる。また、値６１４として、上記のセル数６１２および６１３で示されるセルの浸水深（単位は「ｍ」）が使われる。
【００３７】
図７は、メッシュの位置を示す図である。
メッシュ定義データ５１０および浸水深時系列メッシュデータ１４３を用いることで、セル７１１の四隅の緯度および経度が特定できる。これにより、メッシュデータを地図に重ねて表示することができるようになる。
【００３８】
図８は、浸水シミュレーションプログラム１２１の処理を示すフローチャートである。浸水シミュレーションプログラム１２１はＣＰＵ１３０によって実行され、ＣＰＵ１３０が処理の主体となるが、以下の各ステップでは、主体の記載を省略する。
【００３９】
スタートに続きステップ８０１（Ｓ８０１）では、１回の洪水で破堤する破堤点数の最大値ｉｍａｘを決定する。この値ｉｍａｘは、後述するウィンドウ１０００を通じたユーザの指定に基づいて決定する。
【００４０】
ステップ８０２（Ｓ８０２）では、破堤点数ｉに０を代入する。ｉがｉｍａｘ以下であれば、続くステップ８０３（Ｓ８０３）からステップ８１１（Ｓ８１１）までを繰り返す。
【００４１】
ステップ８０３（Ｓ８０３）では、シナリオを作成する。それぞれのシナリオでは、ｉ個が破堤し得る破堤点で、それ以外が破堤しない破堤点である。このステップ８０３（Ｓ８０３）では、あらかじめ作成された破堤点の数Ｎからｉ個の破堤点を選ぶ組合せとしてＣｏｍｂｉｎ（Ｎ，ｉ）通りのシナリオを作る。ただし、破堤点数ｉが０のとき、すなわち破堤がなく越流の場合には、シナリオは１つとなり、以降のステップ８０４（Ｓ８０４）〜ステップ８１０（Ｓ８１０）をスキップして、ステップ８１１（Ｓ８１１）へ移行することになる。
【００４２】
ステップ８０４（Ｓ８０４）では、ステップ８０３（Ｓ８０３）で作成したそれぞれのシナリオについて、以降のステップ８０５（Ｓ８０５）からステップ８１０（Ｓ８１０）までの処理を繰り返す。
【００４３】
ステップ８０５（Ｓ８０５）では、サブシナリオを見つける。先に述べたように、破堤点がｉ個あるシナリオにおいて、ｉ個目が破堤する時刻までは、（ｉ−１）個が破堤したシナリオと全く同じに推移する。以下では、この（ｉ−１）個が破堤したシナリオを「サブシナリオ」と呼ぶ。たとえば、ｉが１、すなわち破堤点が１個の場合には、（ｉ−１）は０となり破堤点が０のときのシナリオがサブシナリオとなる。
【００４４】
サブシナリオは、ステップ８０２（Ｓ８０２）の前回のループで解析したシナリオの１個である。サブシナリオの見つけ方の具体的方法については、図９にて後述する。サブシナリオを見つける処理では、同時に、シナリオが有効であるか無効であるかについても判定する。ここで、有効なシナリオとは、破堤し得る破堤点がすべて破堤するシナリオであって、有効なシナリオは、解析する必要がある。一方、無効なシナリオとは、破堤し得る破堤点のうち１個以上が破堤しないシナリオであって、無効なシナリオで得られる結果は、前回のステップ８０２（Ｓ８０２）かそれより前のループですでに得られているため、今回のループで求める必要がない。
【００４５】
ステップ８０６（Ｓ８０６）では、シナリオが有効か無効かで、処理が分岐する。有効な場合（Ｔｒｕｅ）は、ステップ８０７（Ｓ８０７）に進み、無効な場合（Ｆａｌｓｅ）は、ステップ８１０（Ｓ８１０）に進む。
【００４６】
ステップ８０７（Ｓ８０７）では、サブシナリオをロードする。サブシナリオの実行結果を格納した浸水解析結果データ１４２を特定し、メモリ１２０に読み込める状態にする（たとえば、対応するファイルのオープンやロード）。
【００４７】
ステップ８０８（Ｓ８０８）では、最終破堤時刻まで早送りし、すなわち、シミュレーションにおける現在時刻をｉ個目が破堤する時刻にすると共に、その現在時刻の浸水解析結果データ１４２をメモリ１２０に読み込む。
【００４８】
ステップ８０９（Ｓ８０９）では、シミュレーションを実行する。シミュレーションの対象期間は、ｉ個目が破堤する時刻を開始時刻とし、ユーザが予め決めた時刻を終了時刻とする期間である。シミュレーション結果は、浸水解析結果データ１４２として保存する。開始時刻より前の時刻の状態を参照するには、サブシナリオの結果を参照すればよい。
【００４９】
ステップ８１０（Ｓ８１０）では、すべてのシナリオについての処理が終了していない場合、ステップ８０４に戻る。
【００５０】
ステップ８１１（Ｓ８１１）では、ｉを１増やし、ｉがｉｍａｘ以下であればステップ８０２に戻る。そうでなければ終了する。
【００５１】
図９は、浸水シミュレーションプログラム１２１のステップ８０５（Ｓ８０５）で実行する処理の詳細を示すフローチャートである。ＣＰＵ１３０が処理の主体となるが、以下の各ステップでは、主体の記載を省略する。
【００５２】
スタートに続きステップ９０１（Ｓ９０１）では、サブシナリオの候補を作る。まず、シナリオには破堤し得る破堤点がｉ個ある。これを破堤点セットＡ＿ｉとする。また、前回のステップ８０２（Ｓ８０２）のループでは、破堤し得る破堤点が（ｉ−１）個のシナリオが解析されている。これらの解析されたシナリオには、破堤点セットＡ＿ｉの内、（ｉ−１個）が破堤し得る破堤点で、１個が破堤しない破堤点としたシナリオがｉ個存在する。このｉ個のシナリオをサブシナリオの候補とする。
【００５３】
ステップ９０２（Ｓ９０２）では、サブシナリオの候補それぞれについて、続くステップ９０３（Ｓ９０３）からステップ９１１（Ｓ９１１）までを繰り返す。
【００５４】
ステップ９０３（Ｓ９０３）では、サブシナリオの候補が有効か無効かで、処理が分岐する。有効な場合（Ｔｒｕｅ）は、ステップ９０４（Ｓ９０４）に進む。無効な場合（Ｆａｌｓｅ）は、ステップ９１２（Ｓ９１２）に進む。なお、サブシナリオが有効か無効かは、前回のステップ８０２（Ｓ８０２）のループのステップ８０５（Ｓ８０５）で判定済みである。
【００５５】
ステップ９０４（Ｓ９０４）では、最後に破堤すべき破堤点Ｘを求める。上述したとおり、サブシナリオの候補とは、破堤点セットＡ＿ｉの内、（ｉ−１）個が破堤し得る破堤点で、１個が破堤しない破堤点としたシナリオである。この１個の破堤しない破堤点を、破堤点Ｘとする。このステップでは、その破堤点Ｘを特定する。これは、破堤点セットＡ＿ｉのうち、破堤し得る破堤点になっていないものを選べばよい。
【００５６】
ステップ９０５（Ｓ９０５）では、破堤点Ｘにおける河川水位時系列を求める。浸水解析結果データ１４２の河川水位時系列データ４１０から、破堤点Ｘの河川距離標の位置にある河川水位をメモリ１２０に読み込む。
【００５７】
ステップ９０６（Ｓ９０６）では、破堤点Ｘの破堤開始時刻ｔ＿ｘを求める。破堤開始水位２１７を超える河川水位が初めて現れた時刻を求め、破堤点Ｘの破堤開始時刻ｔ＿ｘに代入する。破堤開始水位２１７を超える河川水位が現れない場合、破堤点Ｘの破堤開始時刻ｔ＿ｘに無効値ＮａＮを代入する。そして、破堤点Ｘの破堤開始時刻ｔ＿ｘを破堤シナリオデータ３１０の破堤時刻に格納する。
【００５８】
ステップ９０７（Ｓ９０３）では、破堤点Ｘの破堤開始時刻ｔ＿ｘが有効か、つまり無効値ＮａＮであるかないかで処理が分岐する。有効な場合（Ｔｒｕｅ）は、ステップ９０８（Ｓ９０８）に進む。無効な場合（Ｆａｌｓｅ）は、ステップ９１２（Ｓ９１２）に進む。
【００５９】
ステップ９０８（Ｓ９０８）では、サブシナリオにおける最後の破堤時刻ｔ＿ｌａｓｔを求める。すなわち、（ｉ−１）番目の破堤が発生した時刻を求める。これは、破堤シナリオデータ３１０の破堤時刻を参照すればよい。
【００６０】
ステップ９０９（Ｓ９０９）では、破堤点Ｘの破堤開始時刻ｔ＿ｘが最後の破堤時刻ｔ＿ｌａｓｔよりも後であるかないかで処理が分岐する。真（Ｔｒｕｅ）の場合は、ステップ９１０（Ｓ９１０）に進む。偽（Ｆａｌｓｅ）の場合は、ステップ９１１（Ｓ９１１）に進む。なお、先に述べたように、有効なシナリオとは、破堤し得る破堤点がすべて破堤するシナリオである。無効なシナリオとは、破堤し得る破堤点のうち１個以上が破堤しないシナリオである。したがって、ステップ９０９（Ｓ９０９）が真の場合（Ｔｒｕｅ）とは、シナリオが有効な場合であり、ステップ９０９（Ｓ９０３）が偽の場合（Ｆａｌｓｅ）とは、シナリオが無効な場合である。
【００６１】
ステップ９１０（Ｓ９１０）では、このサブシナリオの候補をサブシナリオにする。続いて、ステップ８０５（Ｓ８０５）を終了し、ステップ８０６（Ｓ８０６）の真（Ｔｒｕｅ）の場合に進む。
【００６２】
ステップ９１１（Ｓ９１１）では、すべてのサブシナリオの候補についての処理が終了していない場合、ステップ９０２（Ｓ９０２）に戻る。なお、これら一連の処理は、ステップ９１０（Ｓ９１０）またはステップ９１２（Ｓ９１２）のいずれかで終了する。
【００６３】
ステップ９１２（Ｓ９１２）では、シナリオを無効にする。続いて、ステップ８０５（Ｓ９１１）を終了し、ステップ８０６（Ｓ９１１）の偽（Ｆａｌｓｅ）の場合に進む。
【００６４】
図１０は、破堤シナリオに関するユーザの指示を受け付けるＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を示す図である。このＧＵＩは、ウィンドウ１０００から構成される。
【００６５】
ウィンドウ１０００は、浸水シミュレーションプログラム１２１がディスプレイ１１３に表示するものである。ユーザが、１回の洪水で破堤する破堤点数の最大値１０１１を指定し、作成ボタン１０１３を押すと、先のステップ８０１（Ｓ８０１）からステップ８０３（Ｓ８０３）、およびステップ８１１（Ｓ８１１）が実施される（その他のステップは、スキップされる）。その後、シナリオ数１０１２およびシナリオ一覧表１０２０が、ウィンドウ１０００に表示される。シナリオ一覧表１０２０は、破堤シナリオデータ３１０を表形式に表したものである。さらに、ユーザが開始ボタン１０３１を押すと、ステップ８０４（Ｓ８０４）以降が実行される。
【００６６】
図１１は、地図上に浸水深時系列を重ねて表示するＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を示す図である。このＧＵＩは、ウィンドウ１１００から構成される。
【００６７】
ウィンドウ１１００は、浸水シミュレーションプログラム１２１がディスプレイ１１３に表示するものである。このウィンドウ１１００は、上述したウィンドウ１０００と同時に表示され、ユーザは、どちらの画面を操作することもできる。
【００６８】
ウィンドウ１１００には、地図１１１０が表示される。この表示に際しては、地図データ１４１を使用する。たとえば、図１１に示すように、地図に記載された鉄道の線路１１１５、駅１１１６および河川１１１７が表示される。
【００６９】
ユーザは、キーボード１１１およびマウス１１２を通じ、地図の表示範囲および縮尺の入力を行う。地図の表示範囲の変更は、マウス１１２のドラッグにより行い、地図の縮尺の変更は、マウス１１２のホイールの回転により行う。また、地図には、北の向きを示すアイコン１１１３および縮尺の凡例１１１４が表示される。
【００７０】
地図１１１０に重ねて、破堤点を示すアイコン１１１１が表示される（図１１では、丸印）。このアイコン１１１１は、破堤点データ２１０の内の、破堤点の中心の経度２１３および破堤点の中心の緯度２１４を示す地図上の位置に表示される。
【００７１】
地図１１１０に重ねて、浸水深時系列メッシュデータ１４３が、浸水深１１１２として表示される。すなわち、それぞれのセルが、浸水深に応じた色で塗りつぶされている。色が示す意味（浸水深の値）は、凡例１１１８により確認できる。
【００７２】
また、表示される浸水深１１１２がいつの時刻の情報であるかを示すために、ペイン１１１９が表示される。ユーザは、ペイン１１１９を通じて任意の時刻を指定することができ、指定された時刻の浸水深１１１２が画面に表示される。
【００７３】
そしてまた、ウィンドウ１１００には、破堤シナリオのリスト１１２０が表示される。リスト１１２０は、破堤シナリオＩＤ３１１を表すアイテム１１２１から構成される。ユーザは破堤シナリオＩＤのいずれか１個を選択できる。破堤シナリオの選択がなされると、浸水シミュレーションプログラム１２１が浸水解析結果データ１４２を読み込み、浸水深１１１２が表示される。
【００７４】
図１２は、ＰＣ１００によって実行される処理の流れを示すシーケンス図である。
浸水シミュレーションプログラム１２１は、ウィンドウ１０００を表示し、ユーザからの入力を受け付ける。
【００７５】
次に、ユーザの入力指示に基づいて、前述のステップ８０１（Ｓ８０１）からステップ８０３（Ｓ８０３）およびステップ８１１（Ｓ８１１）を実行する。この際、破堤シナリオデータ３１０がＨＤＤ１４０に書き込まれる。
【００７６】
さらに、ユーザが開始ボタン１０３１を押すと、ステップ８０４（Ｓ８０４）以降が実行される。これに伴い、浸水深時系列メッシュデータ１４３が、ＨＤＤ１４０から読み込まれ、また、ＨＤＤ１４０へ書き込みがなされる。同様に、地図データ１４１がＨＤＤ１４０から読み込まれる。そして、ウィンドウ１１００には、浸水深時系列メッシュデータ１４３が表示される。
【符号の説明】
【００７７】
１００  ＰＣ、１１０  入出力部、１１１  キーボード、１１２  マウス、
１１３  ディスプレイ、１２０  メモリ、１２１  浸水シミュレーションプログラム、
１３０  ＣＰＵ、１４０  ＨＤＤ、１４１  地図データ、１４２  浸水解析結果データ、
１４３  浸水深時系列メッシュデータ、２１０  破堤点データ、
３１０  破堤シナリオデータ、４１０  河川水位時系列データ、
５１０  メッシュ定義データ、１０００，１１００  ウィンドウ、１１１０  地図
【図１】
2020034633.tif 000003
【図２】
2020034633.tif 000004
【図３】
2020034633.tif 000005
【図４】
2020034633.tif 000006
【図５】
2020034633.tif 000007
【図６】
2020034633.tif 000008
【図７】
2020034633.tif 000009
【図８】
2020034633.tif 000010
【図９】
2020034633.tif 000011
【図１０】
2020034633.tif 000012
【図１１】
2020034633.tif 000013
【図１２】
2020034633.tif 000014