ホーム > GISソリューション  > GISと水理解析の連係

水理解析とGISの連係


ここに紹介する業務は、独立行政法人 農業工学研究所からの委託研究として平成16年度、平成17年度に実施された成果です。
使用したGISは、ESRI ArcGISです。

本業務の成果を元に地理情報システム学会(GIS学会)の機関誌「GIS-理論と応用」に論文を発表しました。
水理解析を目的とした流域GISデータのオブジェクト構造化と応用
GIS-理論と応用 Vol.15 No.2 地理情報システム学会(2007)

    目次
  1. 水理解析とGISデータ
  2. GISデータの連係
  3. 解析のフロー
  4. GISデータ連係プログラム
  5. シミュレーションデータの自動作成
  6. シミュレーション結果の表示

    1.水理解析とGISデータ

河川の流出解析を、不定流計算などのシミュレーション水理解析で行わう場合、従来は、シミュレーションを実行するためには、シミュレーションプログラムに応じたデータを作成することが必要でした。
例えば、不定流計算を行う場合、次のような手順が必要になります。

@    計算対象となる水路の平面図や縦断図を用いてメッシュ分割を行う。
A    分割されたメッシュに番号を付ける。
B    番号に基づいて、水路の分合流や水理構造物のデータを作成する。

こうした方法でデータを作成する場合、次のような問題点がありました。

@    番号で管理されているので、変更する際に手間が掛かる。
   例えば、番号1の上流側に計算対象水路を追加する場合には、全ての番号を付け直すことになり、
   メッシュを細かくする場合には、やはり番号の変更をする必要がある。
A    水理構造物や、境界条件のデータが全て番号で管理されるため、メッシュごとのデータ作成を手作業で行う必要がある。

こうした複雑さのため、シミュレーションの計算は、プログラムに習熟した専門家に依頼してデータの作成を行う
必要があり、プログラムに習熟していない人間にとっては、敷居の高いものでした。また、専門家であっても、
メッシュを分割したり、追加する作業に非常に手間が掛かるという問題がありました。

一方GISによる河道や流域の入力は、元になる地図を判読できれば、比較的容易に行うことができます。
GISで入力されたデータを用いて、シミュレーションのためのデータを作成することが可能になれば、
シミュレーションを実行する作業を格段に簡略化することができます。

top

    2.GISデータの連係

GISデータの基づいてシミュレーションを行うためには、いくつかの条件が必要となります。例えば、河道データを
考えた場合、GISデータでは、河道は線(ポリライン)データとして入力されます。

GISデータが単に河道の位置を画面上で表示するだけの場合、河道ポリラインデータは、線のどちら側が
上流であるかとか、下流端でどの河川に合流するかといったことは、GISを見る人間が画面上で判断すれば十分です。
シミュレーションにおいては、合流する河道がどれであるか、合流位置がどこであるかということは重要な情報であり、
こうしたデータなくしては、計算を進めることはできません。

したがって、GISデータの基づいてシミュレーションを行うためには、GISデータを入力する段階で、1本1本の河道を識別名で
区別したり、河道と河道の関係を定義しながら入力する必要があります。また、河道だけでなく、流域からの流出を考える
場合においても、ある流域がどの河道のどの位置に流出するかといった情報が必要になります。

このように、GISデータ相互の関係を考えた上でデータを作成する必要があります。しかしながら、こうした相互関係を
考えたGISデータ作成を行う作業が、シミュレーションプログラムのデータを作成するのと同様に多くの手間が
かかってしまっては、やはりシミュレーションの実行が敷居の高いものになります。

GISでは、各種の空間演算機能が整備されており、空間演算機能を駆使することにより、GISデータ相互間の
関係を自動的に作成することが可能になります。例えば、流域から河道への流出を考えた場合、流域ポリゴンと
交差する河道ポリラインの部分ポリラインを求め、その部分ポリラインの最下流部を流出点と決めるといったことが可能になります。
また、編集のための補助機能を付加することも可能であり、河道を入力するときに、自動的に河道の接続関係を
作り出すことも可能です。
こうした空間演算機能や補助機能を使用したプログラムを整備しておけば、
最小限のデータ入力だけで、シミュレーションのためのデータ作成が可能となります。

本業務では、次に示すプログラムを開発し、GISデータからシミュレーションの実行を自動化することを行いました。

@    接続関係を自動生成する河道入力補助プログラム
A    GISデータ間の関係を自動作成するプログラム
B    GISデータから不定流計算のデータを自動作成するプログラム
C    シミュレーションの結果を読み込んでGISで表示するプログラム

これらの自動化処理により、シミュレーションを実行する場合、最小限のデータを用意するだけで計算を実行することが可能となりました。

top

    3.解析のフロー

GISデータの作成から、シミュレーションの実行、結果の表示までの流れを下図に示します。
pic1
個々の段階でのデータの関係を示したものが下図です。
図中網をかけたデータが、あらかじめ用意するデータです。
pic2

top

    4. GISデータ連係プログラム


【データ入力補助システム】
上記のデータの内、河道と接続点のデータは、空間的にはっきりと結びついている必要があります。
このデータを通常のGIS編集機能で行った場合、煩雑となるので、河道データを容易に入力できる補助システムを開発しました。

このシステムでは、入力時にGISのスナップ機能が自動的に働くようになっており、河道データを入力するときに、
既に入力してある下流側の河道に必ず接続するデータを入力することができます。また、河道を入力したときに、
接続点レイヤが自動的作成され、さらに上下流関係の属性も自動的に作成されます。ただし、識別名は使用者が入力する必要があります。
pic3
【ため池流出点の作成】
ため池レイヤと河道レイヤの位置関係からため池の流出点を求めるプログラムを作成しました。
決定法は以下の通りです。

@ ため池ポイントから周囲20m範囲の中にある河道を探索する。
A ため池ポイントから探索した河道までの距離を求める。
B 探索した河道の中でため池に最も近い河道を流出河道とする。
C 流出河道でため池に最も近い点を流出点とする。
D 河道の上流点から流出点までの距離を求める。

このプログラムにより、ため池レイヤの、流出河道、河道距離属性が自動作成されます。

【流域流出点の作成】
流域レイヤと河道レイヤの位置関係から流域流出点を求めるプログラムを作成しました。
決定法は、以下の通りです。

@ 流域と交差する河道を探索する。
A 複数の河道と交差する場合、下流側の河道を流出河道とする。
A 流出河道と流域の交点を求める。
B 交点の内、最も下流側にある点を流出点とする。

【ため池と流域の関係】
ため池と流域の位置関係から、ため池を含む流域を求めるプログラムを作成しました。
全ての流域ポリゴンについて、ため池ポイントが含まれるかを探索し、含まれる場合には、ため池流域とし、
ため池レイヤのため池属性にため池識別名を入れます。
この探索で、一つの流域に複数のため池が含まれることが判定された場合には、
流域を分割するかあるいは、ため池の位置をずらす措置が必要になります。
流域が水色で塗られているものがため池直接流域、緑で塗られているものがため池間接流域です。
ため池レイヤ、黄色で示したものが上流ため池、緑で示したものが下流ため池です。

pic4

【ため池上下流の判定】
ため池流出点の情報を使用して、直列するため池及びため池間接流域を判定するプログラムを作成しました。
決定法は以下の通りであす。

@    当該ため池の流出河道と同一の流出河道を持つため池を列挙し、当該ため池の上流側に流出点があり、
   当該ため池に最も近いため池を探す。見つかったため池は、当該の上流側に直列するため池とし、
   ため池レイヤの下流ため池属性に当該ため池を入れる。
A    当該ため池の流出河道と同一の流出河道を持つ流域を列挙し、当該ため池と@で求めた
   上流ため池との間に流出点がある流域を探す。見つかった流域が、当該ため池と異なる場合には、
    当該ため池の間接流域とし、流域レイヤの下流ため池属性に当該ため池を入れる。
B    当該ため池の流出河道を下流側河道とする河道を列挙し、当該ため池と@で求めた上流ため池との間に
   合流点ある河道を探す。見つかった場合には、河道レイヤの下流ため池属性に当該ため池を入れ、
   その河道を対象として@〜Bを繰り返す。
それぞれの判定で、流域レイヤの流出タイプ属性も自動作成されます。


【流域流出点の表示】
流域の流出は、次のように決めました。
 流域内にため池のある場合(直接流域)        ため池に流出
 流域がため池の間接流域であるとき         下流ため池に流出
 流域がため池の直接流域でも間接流域でもないとき  河道に流出
これらの方法で求めた流域の流出点と流域の重心を結んで、流出方向を表示する流域流出レイヤを
自動作成するプログラムを作成しました。
このプログラムにより、作成された流出方向を下図に示します。
図中で、青の破線で示したものは、河道流出、緑の矢印線で示したものは、
ため池直接流出、ピンク色の矢印線で示したものがため池間接流出です。

pic5
【流域別土地利用】
流域レイヤと土地利用レイヤから、流域ごとの土地利用面積を集計するプログラムを作成しました。
集計は以下の方法で行いました。

@ 流域ごとに流域と土地利用ポリゴンを探索する。
A 探索された土地利用ポリゴンと流域ポリゴンの交差ポリゴンを求める。
B 交差ポリゴンの面積と流域の面積から土地利用面積比率を算定する。
C 求められた面積比率を、集計表に格納する。

このプログラムでは、集計結果を別のテーブルに保存します。集計時には、土地利用レイヤにある土地利用種別
コードに対応する土地利用名称を与えておく必要があります。
作成されるテーブルには、流域識別名が格納されているので、流域レイヤと結合して表示することができます。
水田面積比率について表示したものを下図に示します。
pic6

top

   5.シミュレーションデータの自動作成

上記の自動化処理によりデータ間の連携が可能となったので、これに基づいて、不定流計算のためのデータを
自動作成するシステムを開発しました。

    5.1 河道メッシュの作成
次の方法で、GISデータから河道のメッシュを作成します。
a)メッシュの分割
  @    当該河道の横断形状データを探す。
  A    横断形状ポイントと河道の距離が最短となる河道上の点を横断形状変化点とする。
  B    当該河道を流出河道とするため池を探す。
  C    ため池がある場合は、その中の下流側の流出点を始点とする。ため池がない場合は、上流端を始点とする。
  D    始点から下流端までメッシュ分割を行う。指定したメッシュ間隔で等分割するが、横断形状変化点がある場合は、
     その地点でメッシュを分割する。ただし、指定したメッシュ間隔の半分以下のメッシュを作らないようにする。
  E    河道が下流で他の河道に合流する場合は、ダミーメッシュを作る。下流河道の識別名と距離を一時的に格納する。

@〜Eを全ての河道について繰り返します。ただし、下流ため池属性がある場合は、メッシュ分割を行いません。

以上の手順で作成したメッシュに基づいて、不定流メッシュレイヤを作成します。

メッシュ名は、(河道名)_(河道内通し番号)という名前になる。
b)横断形状
  @    当該河道で横断形状データがある場合は、それを使用する。
  A    横断形状データがない場合は、指定した既定値とする。

c)メッシュ標高
  @    当該河道の周囲20m以内の標高点ポイントを探す。
  A    標高点ポイントと河道の距離が最短となる河道上の点を河道標高点とする。
  B    メッシュ中心位置の前後の河道標高点を使用してメッシュの標高を直線補間で求める。
  C    メッシュ中心位置の前後に河道標高点がない場合は、下流側または上流側の近い方から2点の河道標高点を
     使用してメッシュの標高を直線外挿補間で求める。

d)合流点
全ての河道メッシュを作成した後、合流点メッシュを探索する。
ダミーメッシュの合流位置から、合流下流側の河道に属するメッシュを探索して合流点のメッシュを決定する。

    5.2 ため池データの作成
ため池を考慮したデータを作成する場合、次の方法でデータを作成します。
a)メッシュデータ
  @    ため池も計算上メッシュとして扱うので、ため池一つにつき一つのメッシュとダミーメッシュを作成する。
  A    ため池が河道に流出する場合は、河道の最上流メッシュにダミーメッシュをつなげる。
  B    ため池が直列ため池の上流になる場合は、ダミーメッシュを下流側ため池につなげる。
  C    ため池標高は、河道流出の場合、河道最上流に5mを加えた値。ため池につながる場合、下流ため池の標高に5mを加えた値とした。
不定流計算ではため池は、相互の水位差を考慮して計算することはありません。そのため標高は実際の標高ではなく、
余水吐越流時に完全越流になるように与えました。

b)ため池水位−水面積関係
ため池の水位−水面積関係をため池の形状を仮定してに与えました。
 
c)余水吐
ため池メッシュとダミーメッシュとの間に余水吐越流堰を与えました。

    5.3 流域流出データの作成
流域からの流出量は不定流計算の流量境界(横流入)データとして作成しました。
ため池を考慮する場合、ため池の直接流域、間接流域ともため池に流入するように与えました。
ため池を考慮しない計算を行う場合も、河道メッシュはため池地点までしか作成されていないので、
河道メッシュの上流端に流入するように与えました。この場合、ため池が直列している場合には、
直列の最下流ため池の流出点に相当する河道メッシュに与えました。

ため池を含まない流域の場合、流域の流出点に相当する河道メッシュに与えました。
土地利用データのある場合で、土地利用ごとに流域流出量を変える場合は、一つの流域に含まれる
土地利用種類数分だけ別個に流入データが作成されます。
データは、メッシュ名(ため池を含む)、流域面積、土地利用種類名という形式で作成されます。

    5.4 流域流出計算
不定流計算データ作成時に流域からの流出計算を行い、不定流計算の流量境界データを作成します。
流域流出量は土地利用ごとの単位面積(1km2)の値として計算します。
流出計算は、貯留関数法を用い、係数値はデータ作成時に与えます。
降雨データは、Excelファイルで時間単位に用意する必要があります。
 
    5.5 不定流計算データ作成のシステム構成
不定流計算データは、Excelファイルに作成されます。不定流計算の実行は、不定流計算用Excelプログラムを用いて実行されます。
 
top

    6 シミュレーション結果の表示

不定流計算結果は、計算メッシュごとの時系列データとして存在するので、GISで表現する場合、
ある時間断面における、状態を表示することとなります。
計算メッシュやため池は、属性で一意に識別が可能であり、計算結果に同じ識別名があれば、
GISのテーブル結合機能でGISデータに計算結果を結合することができます。

表示システムとして次の2種類を作成しました。

   【河道流量の表示】
メッシュごとの流量をラインフィーチャーの色で段階表示したものです。
pic7

  【ため池満水率の表示】
ある時刻におけるのため池満水率を段彩表示したものです。
pic8


top