(57)【特許請求の範囲】
【請求項１】
等高線を用いた地形モデルを補間する地形モデルの補間方法であって、
地形モデルに対して初期ＴＩＮを構築する初期ＴＩＮ構築処理と、
初期ＴＩＮの構築により作成された三角形の中で３つの頂点が同一等高線上にあり、かつ２つの辺がその同一等高線の線分により形成されるキー三角形を特定するキー三角形特定処理と、
前記キー三角形を用いて３つの頂点が同一等高線上にある三角形が隣り合って形成する領域を平坦地として特定する領域特定処理と、
特定した平坦地を形成する領域における中心線を算出する中心線算出処理と、
算出した中心線を形成する各中心線枝の始点、終点、中間点のそれぞれの高さを算出する高さ算出処理と、
算出した各中心線枝の始点、終点、中間点のそれぞれの高さ及び等高線を用いてＴＩＮを再構築するＴＩＮ再構築処理と、
再構築されたＴＩＮを用いて地形モデルを補間する補間処理と、
をコンピュータにより実行することを特徴とする地形モデルの補間方法。
【請求項２】
前記中心線算出処理は、初期ＴＩＮの構築により同一等高線上の折点を結ぶこととなった各線分の中点の座標を求め、それぞれの中点を結んだときの折れ線を中心線として算出することを特徴とする請求項１に記載の地形モデルの補間方法。
【請求項３】
前記中心線算出処理は、初期ＴＩＮの構築により作成された三角形のうちで３つの頂点が同一等高線上にあって３つの辺がいずれもその等高線を形成するものでない三角形については分岐三角形とし、分岐三角形の中心を中心線枝の始点あるいは終点とすることを特徴とする請求項１又は２に記載の地形モデルの補間方法。
【請求項４】
等高線を用いた地形モデルを補間する地形モデルの補間プログラムであって、
地形モデルに対して初期ＴＩＮを構築する初期ＴＩＮ構築処理と、
初期ＴＩＮの構築により作成された三角形の中で３つの頂点が同一等高線上にあり、かつ２つの辺がその同一等高線の線分により形成されるキー三角形を特定するキー三角形特定処理と、
前記キー三角形を用いて３つの頂点が同一等高線上にある三角形が隣り合って形成する領域を平坦地として特定する領域特定処理と、
特定した平坦地を形成する領域における中心線を算出する中心線算出処理と、
算出した中心線を形成する各中心線枝の始点、終点、中間点のそれぞれの高さを算出する高さ算出処理と、
算出した各中心線枝の始点、終点、中間点のそれぞれの高さ及び等高線を用いてＴＩＮを再構築するＴＩＮ再構築処理と、
再構築されたＴＩＮを用いて地形モデルを補間する補間処理と、
をコンピュータに対して実行させることを特徴とする地形モデルの補間プログラム。
【請求項５】
前記中心線算出処理は、初期ＴＩＮの構築により同一等高線上の折点を結ぶこととなった各線分の中点の座標を求め、それぞれの中点を結んだときの折れ線を中心線として算出することを特徴とする請求項４に記載の地形モデルの補間プログラム。
【請求項６】
前記中心線算出処理は、初期ＴＩＮの構築により作成された三角形のうちで３つの頂点が同一等高線上にあって３つの辺がいずれもその等高線を形成するものでない三角形については分岐三角形とし、分岐三角形の中心を中心線枝の始点あるいは終点とすることを特徴とする請求項４又は５に記載の地形モデルの補間プログラム。
【請求項７】
請求項４乃至６のいずれかに記載の地形モデルの補間プログラムを記憶した記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、等高線を用いた地形モデルを補間する地形モデルの補間方法、補間プログラム、および補間プログラムを記憶した記憶媒体に関する。
【０００２】
【従来の技術】
都市計画、砂防、環境アセスメント等においては、地表の形状を記述した地形モデルを用いた地形解析が行われる。この地形モデルの作成にあたっては、自然の過程で形成された地形を再現するため、航空写真測量、地上測量、ＧＰＳ測量、レーザプロフィラ等の地形測量を行い、その測量データに基づいて等高線を作成することによって行われる。しかし、これら測量では、作業コストとコンピュータの処理能力の関係上、地形の特徴が分かる程度の有限点についてだけ高さを測量しているため、未測定の部分の高さについては測定点の高さを用いて補間する必要がある。
【０００３】
等高線を用いた地形モデルの補間の手法としては、一般的にＴＩＮ（Triangulated Irregular Network）を用いた手法が利用されている。
【０００４】
この手法の一例について図１２を用いて説明する。同図は、隣り合う等高線Ｚ１、Ｚ２の中間に位置する等高線Ｚ３を補間により求める場合の処理を示している。コンピュータ処理上の等高線は測定点を結ぶ折れ線であることから、まず等高線Ｚ１上の各折点（測定点）と等高線Ｚ２上の各折点とを線で結び、等高線Ｚ１、Ｚ２上の線分を一辺とする三角形を複数形成することによりＴＩＮを構築する。同図では、測定点は黒丸で示し、等高線Ｚ１上の折点と等高線Ｚ２上の折点とを結ぶ線分は破線で示してある。そして、等高線Ｚ１、Ｚ２を結ぶ破線で示した各線分上のそれぞれの中点を結ぶことにより等高線Ｚ３を作成する。
【０００５】
また、等高線Ｚ１、Ｚ２間を複数の等高線で補間する場合には、等高線Ｚ１、Ｚ２を結ぶ各線分について両端の折点からの距離の比率が同一となる点同士を結ぶことによって複数の等高線を作成する。
【０００６】
このようにして等高線を用いた地形モデルの補間が行われており、この補間手法は一般に線形補間と呼ばれている。
【０００７】
【発明が解決しようとする課題】
ところが、ＴＩＮを構築する際に、尾根や谷付近においては、図１３に示すように、同一等高線上の折点を３つの頂点とする三角形が多数形成されることとなる。以下、このような三角形を「平坦地を形成する三角形」といい、平坦地を形成する三角形だけが隣接し合って形成される領域を「平坦地を形成する領域」という。この平坦地を形成する領域においては、上記線形補間では適切な補間を行うことができず、尾根や谷付近が平坦地として示されることになってしまう。
【０００８】
これを回避するための手法としては、測定点の密度をより高くして等高線の数を増やすか、あるいは人手により等高線に尾根線や谷線といった３次元地勢線を加え、その等高線や３次元地勢線の各線分を一辺とする三角形を形成することによりＴＩＮを構築すること等が考えられる。しかし、そのための手間や時間がかかることになり、また地形モデル作成のコストが高くなるという問題がある。
【０００９】
本発明は、上記に鑑みてなされたものであり、その目的とするところは、等高線を用いた地形モデルの補間の際に、不適切な平坦地を除去した自然な地形モデルを簡易かつ低コストで作成し得る地形モデルの補間方法、補間プログラム、および補間プログラムを記憶した記憶媒体を提供することにある。
【００１０】
【課題を解決するための手段】
上記目的を達成するため、第１の本発明に係る地形モデルの補間方法は、等高線を用いた地形モデルを補間する地形モデルの補間方法であって、地形モデルに対して初期ＴＩＮを構築する初期ＴＩＮ構築処理と、構築した初期ＴＩＮを用いて地形モデルにおける平坦地を形成する領域を特定する領域特定処理と、特定した平坦地を形成する領域における中心線を算出する中心線算出処理と、算出した中心線を形成する各中心線枝の始点、終点、中間点のそれぞれの高さを算出する高さ算出処理と、算出した各中心線枝の始点、終点、中間点のそれぞれの高さ及び等高線を用いてＴＩＮを再構築するＴＩＮ再構築処理と、再構築されたＴＩＮを用いて地形モデルを補間する補間処理と、をコンピュータにより実行することを特徴とする。
【００１１】
本発明にあっては、初期ＴＩＮを用いて平坦地を形成する領域における中心線を算出し、この中心線を形成する各中心線枝の始点、終点、中間点のそれぞれの高さ、及び等高線の各折点の高さを用いてＴＩＮを再構築するようにしたことで、平坦地を形成する領域内に３つの頂点のうちの少なくとも１つの頂点は高さが異なる三角形が細かく多数生成されることとなるので、この再構築されたＴＩＮを用いて地形モデルを補間することにより、谷や尾根付近について不適切な平坦地を除去でき、自然な地形モデルを簡易かつ低コストで作成することができる。
【００１２】
上記地形モデルの補間方法において、前記領域特定処理は、初期ＴＩＮの構築により作成された三角形のうちで３つの頂点が同一等高線上にある三角形が隣り合って形成する領域を特定することを特徴とする。
【００１３】
上記地形モデルの補間方法において、前記中心線算出処理は、初期ＴＩＮの構築により同一等高線上の折点を結ぶこととなった各線分の中点の座標を求め、それぞれの中点を結んだときの折れ線を中心線として算出することを特徴とする。
【００１４】
上記地形モデルの補間方法において、前記中心線算出処理は、初期ＴＩＮの構築により作成された三角形のうちで３つの頂点が同一等高線上にあって３つの辺がいずれもその等高線を形成するものでない三角形については分岐三角形とし、分岐三角形の中心を中心線枝の始点あるいは終点とすることを特徴とする。
【００１５】
第２の本発明に係る地形モデルの補間プログラムは、等高線を用いた地形モデルを補間する地形モデルの補間プログラムであって、地形モデルに対して初期ＴＩＮを構築する初期ＴＩＮ構築処理と、構築した初期ＴＩＮを用いて地形モデルにおける平坦地を形成する領域を特定する領域特定処理と、特定した平坦地を形成する領域における中心線を算出する中心線算出処理と、算出した中心線を形成する各中心線枝の始点、終点、中間点のそれぞれの高さを算出する高さ算出処理と、算出した各中心線枝の始点、終点、中間点のそれぞれの高さ及び等高線を用いてＴＩＮを再構築するＴＩＮ再構築処理と、再構築されたＴＩＮを用いて地形モデルを補間する補間処理と、をコンピュータに対して実行させることを特徴とする。
【００１６】
本発明にあっては、平坦地を形成する領域における中心線を算出し、その中心線を形成する各線分の始点、終点のそれぞれの高さ及び等高線の各折点の高さを用いてＴＩＮを再構築し、このＴＩＮを用いて地形モデルを補間するようにした補間プログラムを、コンピュータにインストールすることによって、本手法を実行させることができる。
【００１７】
上記地形モデルの補間プログラムにおいて、前記領域特定処理は、初期ＴＩＮの構築により作成された三角形のうちで３つの頂点が同一等高線上にある三角形が隣り合って形成する領域を特定することを特徴とする。
【００１８】
上記地形モデルの補間プログラムにおいて、前記中心線算出処理は、初期ＴＩＮの構築により同一等高線上の折点を結ぶこととなった各線分の中点の座標を求め、それぞれの中点を結んだときの折れ線を中心線として算出することを特徴とする。
【００１９】
上記地形モデルの補間プログラムにおいて、前記中心線算出処理は、初期ＴＩＮの構築により作成された三角形のうちで３つの頂点が同一等高線上にあって３つの辺がいずれもその等高線を形成するものでない三角形については分岐三角形とし、分岐三角形の中心を中心線枝の始点あるいは終点とすることを特徴とする。
【００２０】
第３の本発明に係る補間プログラムを記憶した記憶媒体は、上記各補間プログラムのうちのいずれかを記憶したことを特徴とする。
【００２１】
本発明にあっては、地形モデルの補間プログラムを記憶媒体に記憶するようにしたことで、本プログラムの流通性を向上させることができる。
【００２２】
【発明の実施の形態】
以下、本発明の実施の形態について図面を用いて説明する。
【００２３】
図１は、一実施の形態における地形モデルの補間方法による処理を概略的に示すフローチャートである。全体的な処理の概要は、次の通りとなっている。
【００２４】
（１）Ｓｔｅｐ１：初期ＴＩＮの構築
（２）Ｓｔｅｐ２：キー三角形の特定
（３）Ｓｔｅｐ３：平坦地を形成する領域の特定
（４）Ｓｔｅｐ４：平坦地を形成する領域における中心線の算出
（５）Ｓｔｅｐ５：中心線を形成する各中心線枝の始点および終点の高さの算出
（６）Ｓｔｅｐ６：中心線を形成する各中心線枝の中間点の高さの算出
（７）Ｓｔｅｐ７：ＴＩＮの再構築
（８）Ｓｔｅｐ８：地形モデルの補間
地形モデルの補間処理は、本処理を実行するためのプログラムをコンピュータにインストールし、コンピュータに実行させることによって実現される。本プログラムのコンピュータへのインストールは、ネットワークを介してダウンロードすることとしてもよいし、本プログラムを記憶した記憶媒体をコンピュータの所定のスロットに挿入してインストールすることとしてもよい。ここで、記憶媒体とは、例えば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどのプログラムを記憶することが可能な種々の記憶媒体のことをいう。
【００２５】
以下、図１の各ステップにおける処理について詳細に説明する。
【００２６】
（１）初期ＴＩＮの構築
まず、従来の技術の項で説明した手法により、地形モデルを示す等高線を用いてＴＩＮを構築する。図２は、ＴＩＮ構築後の地形モデルの一例を示す図である。同図では、隣り合う等高線Ｚｓ、Ｚｅを実線で示し、等高線Ｚｅの各折点を結ぶ線分を破線で示している。なお、ＴＩＮの構築に際しては、等高線のほか尾根線や谷線、単独測量点等を用いることとしてもよい。
【００２７】
（２）キー三角形の特定
平坦地を形成する領域を特定するために、まず手がかりとなるキー三角形Ｔｋｅｙを特定する。ここで、キー三角形Ｔｋｅｙとは、図２に示すように、３つの頂点が全て同一等高線上にある三角形のうち、２つの辺がその同一等高線の線分により形成される三角形のことをいう。コンピュータ上でのキー三角形Ｔｋｅｙの特定は、キー三角形Ｔｋｅｙの３つの頂点の座標を特定することにより行う。特定したキー三角形Ｔｋｅｙは、集合行列｛Ｋ｝に格納する。地図上にキー三角形Ｔｋｅｙが複数ある場合には、全て特定し格納する。そして、図１に示すループ処理における一回のループで、キー三角形Ｔｋｅｙを１つずつ集合行列｛Ｋ｝から取り出していき、集合行列｛Ｋ｝が空でない場合には、次ステップである（３）の平坦地を形成する領域の特定処理へ進み、集合行列｛Ｋ｝が空となった場合には（７）のＴＩＮ再構築処理へ進む。
【００２８】
なお、ここでいう同一等高線とは、１本の等高線の折れ線に属する線分の集合のことをいうものとし、図１０に示すように、地図を表記するときに、等高線の高度値を示す注記や、地図の記号によって、等高線に間断が発生した場合でも、間断前に同一等高線であったものを「同一等高線」と呼ぶものとする。
【００２９】
（３）平坦地を形成する領域の特定
図３は、平坦地を形成する領域を特定する処理の一例を示すフローチャートである。平坦地を形成する領域は、図２で斜線により示した領域であり、この領域を特定するために、以下の手順により平坦地を形成する三角形の集合行列｛Ｔ｝を求める。
【００３０】
Ｓｔｅｐ１：コンピュータのメモリ上に、平坦地を形成する三角形を格納するための集合行列｛Ｔ｝を用意する。集合行列｛Ｔ｝は、初期状態では空とする。
【００３１】
Ｓｔｅｐ２：同様にして、コンピュータのメモリ上に、平坦地を形成する三角形の辺を格納するための集合行列｛Ｅ｝を用意する。集合行列｛Ｅ｝も、初期状態では空とする。
【００３２】
Ｓｔｅｐ３：上記（２）の処理で特定したキー三角形Ｔｋｅｙを集合行列｛Ｔ｝に格納する。
【００３３】
Ｓｔｅｐ４：キー三角形Ｔｋｅｙの３つの辺のうち、等高線ではない辺を集合行列｛Ｅ｝に格納する。
【００３４】
Ｓｔｅｐ５：集合行列｛Ｅ｝が空か否かを判定し、空でない場合にはＳｔｅｐ６へ進んでループ処理を行い、空の場合には本処理を終了する。この判定の初回では、キー三角形Ｔｋｅｙの等高線ではない辺が集合行列｛Ｅ｝に格納されているので、Ｓｔｅｐ６へ必ず進むことになる。
【００３５】
Ｓｔｅｐ６：集合行列｛Ｅ｝に格納されている辺を一回のループ処理で１つずつ順に先頭から取り出す。取り出した辺はＥｉとし、ループ処理を繰り返す度に'ｉ'をカウントアップしていく。
【００３６】
Ｓｔｅｐ７：辺Ｅｉを共有し、集合行列｛Ｔ｝に格納されていない三角形ＴｋをＴＩＮ構築後の地形モデルから探し出す。初期の状態では、集合行列｛Ｔ｝にはキー三角形Ｔｋｅｙのみが格納されているので、キー三角形Ｔｋｅｙ以外の三角形を探すことになる。
【００３７】
Ｓｔｅｐ８：探し出した三角形Ｔｋが平坦地を形成する三角形、すなわち３つの頂点が同一等高線上にある三角形か否かを判定し、平坦地を形成する場合にはＳｔｅｐ９へ進み、平坦地を形成しない場合にはＳｔｅｐ１２へ進む。
【００３８】
Ｓｔｅｐ９：平坦地を形成すると判定された三角形Ｔｋを集合行列｛Ｔ｝に追加する。そして、その三角形Ｔｋがキー三角形か否かを判断し、キー三角形の場合にはＳｔｅｐ１０へ進み、キー三角形でない場合にはＳｔｅｐ１１へ進む。
【００３９】
Ｓｔｅｐ１０：その三角形Ｔｋを集合行列｛Ｋ｝から除去する。
【００４０】
Ｓｔｅｐ１１：その三角形Ｔｋの等高線ではなく、かつＥｉではない辺を集合行列｛Ｅ｝に追加し、Ｓｔｅｐ５へ戻って上記処理を繰り返す。
【００４１】
Ｓｔｅｐ１２：平坦地を形成しないと判定された三角形Ｔｋを（４）の中心線の算出処理に用いる開始三角形Ｔstartとし、Ｓｔｅｐ５へ戻り、集合行列｛Ｅ｝が空となるまで上記処理を繰り返す。
【００４２】
このフローチャートによる処理が終了すると、集合行列｛Ｔ｝には、キー三角形Ｔｋｅｙ、およびその他の平坦地を形成する三角形Ｔｋが全て格納されることとなり、これらの三角形により平坦地を形成する領域が特定されることとなる。
【００４３】
ここで、頂上や沼地等では、図１１に示すように等高線が閉ループを形成するため、開始三角形Ｔstartが存在しないこととなる。この場合には、キー三角形Ｔｋｅｙを集合行列｛Ｋ｝から除去して、次ステップである（４）の中心線算出の処理をせずに、図１に示したように上記（２）へ戻り、集合行列｛Ｋ｝に格納されている次のキー三角形を処理する。
【００４４】
（４）平坦地を形成する領域における中心線の算出
図４は、平坦地を形成する領域に中心線を引いたときの地形モデルの一例を示す図であり、図５は、この中心線を算出する処理の一例を示すフローチャートである。以下の手順に従い、平坦地を形成する領域における中心線を算出する。
【００４５】
Ｓｔｅｐ１：コンピュータのメモリ上に、平坦地を形成する三角形の辺を格納するための集合行列｛Ｅ’｝を用意する。集合行列｛Ｅ’｝は、初期状態では空とする。
【００４６】
Ｓｔｅｐ２：コンピュータのメモリ上に、中心線を格納するための中心線行列｛Ｂ｝を用意する。中心線行列｛Ｂ｝も、初期状態では空とする。
【００４７】
Ｓｔｅｐ３：開始三角形Ｔstartについて、同一等高線上の２つの頂点を結ぶ辺Ｅ１を集合行列｛Ｅ’｝に格納する。開始三角形Ｔstartにおけるこの２つの頂点以外の頂点を中心線の始点Ｐｓとする。図４では、辺Ｅ１は等高線Ｚｅ上の２点を結ぶ線分であり、始点Ｐｓは等高線Ｚｓ上の点である。
【００４８】
Ｓｔｅｐ４：集合行列｛Ｅ’｝が空か否かを判定し、空でない場合にはＳｔｅｐ５へ進んでループ処理を行い、空の場合には本処理を終了する。ループ処理の初回では、開始三角形Ｔstartの辺Ｅ１が集合行列｛Ｅ’｝に格納されているので、Ｓｔｅｐ５へ進むこととなる。
【００４９】
Ｓｔｅｐ５：集合行列｛Ｅ’｝に格納されている辺を一回のループ処理で１つずつ順に先頭から取り出す。取り出した辺はＥｉとし、辺Ｅｉの中央に位置する中点Ｐｉの座標を求める。'ｉ'は、ループ処理を繰り返す度にカウントアップしていく。
【００５０】
Ｓｔｅｐ６：平坦地を形成する三角形の集合行列｛Ｔ｝から辺Ｅｉを共有する三角形Ｔｊを取出し、その三角形Ｔｊについて辺Ｅｉ以外の辺であって等高線ではない辺Ｅｊを探し、その辺Ｅｊを集合行列｛Ｅ’｝に追加する。そして、次のように３つの場合に分けて処理を続行する。
【００５１】
（Ｉ）三角形Ｔｊについて辺Ｅｊの数が１の場合
この場合は、直ちにＳｔｅｐ４へ戻って上記処理を繰り返す。このループ処理では、Ｓｔｅｐ６で集合行列｛Ｅ’｝に追加された辺Ｅｊが、次以降のループ処理におけるＳｔｅｐ５で辺Ｅｉとして取り出される。この処理の繰り返しによって、集合行列｛Ｅ’｝には平坦地を形成する三角形についての等高線ではない辺Ｅｉが順次格納されていくとともに、各辺Ｅｉについて中点Ｐｉの座標が求められていく。
【００５２】
（II）三角形Ｔｊについて辺Ｅｊの数が２の場合
Ｓｔｅｐ７：この場合、三角形Ｔｊは、３つの頂点は同一等高線上にあり、かつ３つの辺がいずれも等高線ではない三角形（以下「分岐三角形」という）である。まず、この分岐三角形の中心Ｐｍの座標を求め、始点Ｐｓから分岐三角形の中心Ｐｍまでに至る各辺Ｅｉの中点Ｐｉを結ぶことにより形成される折れ線（中心線枝）を集合行列｛Ｂ｝に格納する。
【００５３】
ここで、中心Ｐｍの座標は、例えば分岐三角形の３つの頂点の座標の平均値により求めるようにする。この場合、中心Ｐｍの座標を（ｘｍ、ｙｍ）とし、３つの頂点の座標をそれぞれ（ｘ１，ｙ１）、（ｘ２，ｙ２）、（ｘ３，ｙ３）とすると、中心Ｐｍの座標は次式により求められる。
【００５４】
【数１】
ｘｍ＝（ｘ１＋ｘ２＋ｘ３）／３
ｙｍ＝（ｙ１＋ｙ２＋ｙ３）／３
Ｓｔｅｐ８：中心Ｐｍを新たな始点Ｐｓとし、Ｓｔｅｐ４へ戻って上記処理を繰り返す。ただし、直後の処理におけるＳｔｅｐ５では、三角形Ｔｊについて辺Ｅｊは２つあるので、双方とも取り出し、それぞれについて上記処理を行うようにする。上記処理の繰り返しによって、三角形Ｔｊは、キー三角形や他の分岐三角形にたどり着くこととなる。
【００５５】
（III）三角形Ｔｊがキー三角形の場合
Ｓｔｅｐ９：三角形Ｔｊの等高線で形成される２つの辺の折点を中心線の終点Ｐｅとし、始点Ｐｓ（中心Ｐｍ）から終点Ｐｅまでの各辺Ｅｊの中点を結ぶ折れ線（中心線枝）を集合行列｛Ｂ｝に格納する。そして、Ｓｔｅｐ４へ戻り、集合行列｛Ｅ’｝が空となるまで上記処理を繰り返す。
【００５６】
このフローチャートによる処理が終了すると、集合行列｛Ｂ｝には、平坦地を形成する領域内における中心線が全て格納されることとなる。以下、中心線の始点Ｐｓから分岐三角形の中心Ｐｍまでの中心線や、分岐三角形の中心Ｐｍからキー三角形の頂点までの中心線、ある分岐三角形の中心Ｐｍ１から別の分岐三角形の中心Ｐｍ２までの中心線のことを総称して「中心線枝」と呼ぶこととする。
【００５７】
（５）中心線を形成する各中心線枝の始点および終点の高さの算出
図６は、中心線を形成する各中心線枝の始点および終点の高さを算出する処理を説明するための地形モデルの一例を示す図であり、図７は、その処理の一例を示すフローチャートである。図６では、中心線の始点Ｐｓから分岐三角形の中心Ｐｍ１までの中心線を形成する中心線枝をＢ１で示してある。この中心線枝Ｂ１の始点は中心線の始点Ｐｓに一致し、等高線Ｚｓ上にある。以下の手順に従い、中心線を形成する各中心線枝Ｂｉの始点および終点の高さを算出する。
【００５８】
Ｓｔｅｐ１：集合行列｛Ｂ｝に格納されている中心線枝Ｂｉを一回のループ処理で１つずつ先頭から順に取り出し、取り出した中心線枝Ｂｉの始点の高さをＨｓｉ、終点の高さをＨｅｉとする。'ｉ'は、ループ処理を繰り返す度にカウントアップしていく。取り出した線分Ｂｉの初期値である中心線枝Ｂ１についていえば、Ｈｓ１は等高線Ｚｓの高さに一致するので既知である。
【００５９】
Ｓｔｅｐ２：中心線枝Ｂｉの終点の高さＨｅｉを次式の線形補間により求める。
【００６０】
【数２】
Ｈｅｉ＝Ｈｓｉ＋（Ｚｅ−Ｈｓｉ）×Ｌｂ／Ｌａｌｌ
ここで、Ｚｅは等高線Ｚｅの高さを示す。Ｌｂは中心線枝Ｂｉの長さである。Ｌａｌｌは、中心線枝Ｂｉの始点から中心線上に存在するすべての終点Ｐｅまでの距離のうち例えば最も長い距離である。
【００６１】
Ｓｔｅｐ３：集合行列｛Ｂ｝が空か否かを判定し、空でない場合にはＳｔｅｐ４へ進み、空の場合には本処理を終了する。
【００６２】
Ｓｔｅｐ４：Ｓｔｅｐ２で求めた中心線枝Ｂｉの終点の高さＨｅｉを、次のループ処理で新たに取り出す中心線枝Ｂｉの始点の高さＨｓｉとし、ステップ１へ戻って上記処理を繰り返す。
【００６３】
このフローチャートによる処理が終了すると、中心線を形成する全ての中心線枝について始点の高さと終点の高さが求められることとなる。
【００６４】
（６）中心線を形成する各中心線枝の中間点の高さの算出
中心線枝の始点の高さＨｓと終点の高さＨｅを用いて、次式によりその中心線枝の形成に用いられる各中間点Ｐｉの高さＨｐｉを求める。なお、ここでいう中間点Ｐｉは、上記（４）の中心線の算出処理で用いた中点Ｐｉと座標上は同一の点である。
【００６５】
【数３】
Ｈｐｉ＝Ｈｓ＋（Ｈｅ−Ｈｓ）×Ｌｉ／Ｌ
ここで、Ｈｓはその中心線枝の始点の高さ、Ｈｅはその中心線枝の終点の高さである。Ｌは、その中心線枝の始点から終点までの経路の長さであり、Ｌｉは、中心線枝の始点からその中間点Ｐｉまでの経路の長さである。
【００６６】
例えば、図６の始点Ｐｓから分岐三角形の中心Ｐｍ１までの中心線枝Ｂ１の形成に用いられる各中間点Ｐｉの高さを求める場合には、Ｈｓは始点Ｐｓの高さ、Ｈｅは中心Ｐｍ１の高さ、Ｌは始点Ｐｓから中心Ｐｍ１までの経路の長さ、Ｌｉは始点Ｐｓから中間点Ｐｉまでの経路の長さとなる。
【００６７】
（７）ＴＩＮの再構築
上記処理で求めた平坦地を形成する領域における中心線を形成する各中心線枝の始点、終点、中間点のそれぞれの高さ、及び等高線の各折点の高さを用いてＴＩＮを再構築する。これにより、平坦地を形成する領域内に３つの頂点のうちの少なくとも１つの頂点は高さが異なる三角形が細かく多数生成されることとなる。
【００６８】
（８）地形モデルの補間
再構築したＴＩＮを用いて、従来の技術の項で説明した既存の線形補間の手法により等高線を補間する。図８は、上記（１）で構築した初期ＴＩＮを用いて等高線を補間した地形モデルの一例を示す図であり、いわば従来の手法により補間した地形モデルに相当する図である。図９は、上記（７）で再構築したＴＩＮを用いて等高線を補間した地形モデルの一例を示す図である。両図では、等高線を太線、細線により示しており、太線が既知の等高線であり、細線が線形補間によって求めた等高線である。
【００６９】
図８では、平坦地を形成する領域が何ら補間されず、等高線が引かれていないため不自然な状態となっている。これに対し、図９では、平坦地を形成する領域においても自然な等高線が引かれていることが分かる。
【００７０】
【発明の効果】
以上、説明したように、本発明に係る地形モデルの補間方法、補間プログラムによれば、初期ＴＩＮを用いて平坦地を形成する領域における中心線を算出し、この中心線を形成する各中心線枝の始点、終点、中間点のそれぞれの高さ、及び等高線の各折点の高さを用いてＴＩＮを再構築するようにしたことで、平坦地を形成する領域内に３つの頂点のうちの少なくとも１つの頂点は高さが異なる三角形が細かく多数生成されることとなるので、この再構築されたＴＩＮを用いて地形モデルを補間することにより、谷や尾根付近について不適切な平坦地を除去でき、自然な地形モデルを簡易かつ低コストで作成することができる。
【図面の簡単な説明】
【図１】一実施の形態における地形モデルの補間方法による処理を概略的に示すフローチャートである。
【図２】ＴＩＮ構築後の地形モデルの一例を示す図である。
【図３】平坦地を形成する領域を特定する処理の一例を示すフローチャートである。
【図４】平坦地を形成する領域に中心線を引いたときの地形モデルの一例を示す図である。
【図５】平坦地を形成する領域における中心線を算出する処理の一例を示すフローチャートである。
【図６】中心線を形成する各線分の始点および終点の高さを算出する処理を説明するための地形モデルの一例を示す図である。
【図７】中心線を形成する各線分の始点および終点の高さを算出する処理の一例を示すフローチャートである。
【図８】従来の手法により初期ＴＩＮを用いて等高線を補間した地形モデルの一例を示す図である。
【図９】上記実施の形態により再構築したＴＩＮを用いて等高線を補間した地形モデルの一例を示す図である。
【図１０】同一等高線の概念を説明するための図である。
【図１１】等高線が閉ループを形成している状態を示す図である。
【図１２】地形モデルにおける隣り合う等高線の中間に位置する等高線を補間により求める従来の処理を説明するための図である。
【図１３】ＴＩＮ構築後の地形モデルにおける平坦地を形成する領域の一例を示す図である。
【図１】
0003961268.tif 000002
【図２】
0003961268.tif 000003
【図３】
0003961268.tif 000004
【図４】
0003961268.tif 000005
【図５】
0003961268.tif 000006
【図６】
0003961268.tif 000007
【図７】
0003961268.tif 000008
【図８】
0003961268.tif 000009
【図９】
0003961268.tif 000010
【図１０】
0003961268.tif 000011
【図１１】
0003961268.tif 000012
【図１２】
0003961268.tif 000013
【図１３】
0003961268.tif 000014