(57)【要約】【課題】  ３次元ベクトルデータから高精度のグリッドデータを得る。【解決手段】  中間点補間プログラム２２が、３次元ベクトルデータ（２０）の各線データに補助中間点を補間する。３次元座標抽出プログラム２４が、各点の３次元座標を抽出し、ＴＩＮ生成プログラム２６が、各点を結ぶ不規則三角形網を形成し、ＴＩＮデータ（２８）を出力する。ＴＩＮ内グリッド探索プログラム３０は、各ＴＩＮ内のグリッド点を探索し、ｚ座標値算出プログラム３２は、ＴＩＮの３頂点の座標値から各グリッド点のｚ座標値を算出する。【選択図】  図１
2006059061.tif 000002
【特許請求の範囲】
【請求項１】
複数の線データを含む３次元ベクトルデータ（２０）の当該各線データに補助中間点を補間する補間ステップ（Ｓ３）と、
当該３次元ベクトルデータ（２０）の各線データを記述する点及び当該補助中間点を使って不規則三角形網を形成し、ＴＩＮデータ（２８）を出力するＴＩＮ生成ステップ（Ｓ６）
とを具備することを特徴とする３次元データ処理方法。
【請求項２】
更に、当該ＴＩＮデータ（２８）に対して所定グリッド間隔のグリッドを適用して当該ＴＩＮデータから各グリッド点の座標値を算出し、個々のグリッド点について３次元座標値を示すグリッドデータ（３４）を出力するグリッド座標算出ステップ（３０，３２；Ｓ７〜Ｓ１２）を具備することを特徴とする請求項１に記載の３次元データ処理方法。
【請求項３】
当該グリッド座標算出ステップが、
当該ＴＩＮデータに含まれるＴＩＮを順に指定する指定ステップ（Ｓ８，Ｓ１２）と、
指定されたＴＩＮに含まれる各グリッド点の座標値を、当該ＴＩＮの３頂点の座標値から算出する算出ステップ（Ｓ９，Ｓ１０）
とを具備することを特徴とする請求項２に記載の３次元データ処理方法。
【請求項４】
当該算出ステップは、
当該指定されたＴＩＮに外接する４角形に収容される最大グリッド範囲を決定するグリッド範囲決定ステップ（Ｓ２１，Ｓ２２）と、
当該グリッド範囲決定ステップで決定されるグリッド範囲に含まれるグリッド点が、当該指定されたＴＩＮ内かどうかを順に調べるステップ（Ｓ２５）と、
当該指定されたＴＩＮに含まれる各グリッド点の座標値を、当該ＴＩＮの３頂点の座標値から算出するステップ（Ｓ２６）
とを具備することを特徴とする請求項３に記載の３次元データ処理方法。
【請求項５】
当該グリッド座標算出ステップは、当該ＴＩＮデータに対するグリッド化範囲及び当該グリッド間隔を設定するステップ（Ｓ７）を具備することを特徴とする請求項２に記載の３次元データ処理方法。
【請求項６】
更に、
断面を規定する成分又は面を指定するステップと、
当該断面を規定する線分又は面に当該グリッドデータ（３４）に適用し、当該断面上の複数の点の３次元座標値を当該グリッドデータ（３４）から内挿する内挿ステップと、
当該ＴＩＮデータ（２８）及び当該グリッドデータ（３４）の一方からから３Ｄ画像を生成するステップと，
当該断面を示す画像を当該３Ｄ画像に合成して表示するステップ
とを具備することを特徴とする請求項２乃至５の何れか１項に記載の３次元データ処理方法。
【請求項７】
複数の線データを含む３次元ベクトルデータ（２０）の当該各線データに補助中間点を補間する中間点補間手段（２２）と、
当該３次元ベクトルデータ（２０）の各線データを記述する点及び当該補助中間点の３次元座標値から不規則三角形網を形成し、各三角形を規定するＴＩＮデータ（２８）を生成するＴＩＮ生成手段（２４，２６）
とを具備することを特徴とする３次元データ処理装置。
【請求項８】
更に、当該ＴＩＮデータ（２８）に対して所定グリッド間隔のグリッドを適用して当該ＴＩＮデータから各グリッド点の座標値を算出し、個々のグリッド点について３次元座標値を示すグリッドデータ（３４）を出力するグリッド座標算出手段（３０，３２）を具備することを特徴とする請求項７に記載の３次元データ処理装置。
【請求項９】
当該グリッド座標算出手段が、当該ＴＩＮデータに含まれるＴＩＮを探索する手段（３０）と、探索されたＴＩＮに含まれるグリッド点の座標値を算出する座標値算出手段（３２）とを具備することを特徴とする請求項８に記載の３次元データ処理装置。
【請求項１０】
当該座標値算出手段は、当該ＴＩＮに外接する４角形に収容される最大グリッド範囲を決定し、当該最大グリッド範囲内で当該探索されたＴＩＮに含まれるグリッド点を探索し、探索された各グリッド点の座標値を当該ＴＩＮの３頂点の座標値から算出することを特徴とする請求項９に記載の３次元データ処理装置。
【請求項１１】
当該グリッド座標算出手段は、当該ＴＩＮデータに対するグリッド化範囲及び当該グリッド間隔を設定する手段を具備することを特徴とする請求項８に記載の３次元データ処理装置。
【請求項１２】
更に、
断面を規定する成分又は面を指定する手段と、
当該断面を規定する線分又は面に当該グリッドデータ（３４）に適用し、当該断面上の複数の点の３次元座標値を当該グリッドデータ（３４）から内挿する内挿手段（３６）と、
当該ＴＩＮデータ（２８）及び当該グリッドデータ（３４）の一方からから３Ｄ画像を生成する手段と，
当該断面を示す画像と当該３Ｄ画像を合成する合成手段（４４）
とを具備することを特徴とする請求項８乃至１１の何れか１項に記載の３次元データ処理装置。
【請求項１３】
複数の線データを含む３次元ベクトルデータ（２０）の当該各線データに補助中間点を補間する補間機能（Ｓ３）と、
当該３次元ベクトルデータ（２０）の各線データを記述する点及び当該補助中間点を使って不規則三角形網を形成し、ＴＩＮデータ（２８）を出力するＴＩＮ生成機能（Ｓ６）
とをコンピュータに実行させることを特徴とする３次元データ処理プログラム。
【請求項１４】
更に、当該ＴＩＮデータ（２８）に対して所定グリッド間隔のグリッドを適用して当該ＴＩＮデータから各グリッド点の座標値を算出し、個々のグリッド点について３次元座標値を示すグリッドデータ（３４）を出力するグリッド座標算出機能（３０，３２；Ｓ７〜Ｓ１０）をコンピュータに実行させることを特徴とする請求項１３に記載の３次元データ処理プログラム。
【請求項１５】
当該グリッド座標算出機能が、
当該ＴＩＮデータに含まれるＴＩＮを順に指定する指定機能と、
指定されたＴＩＮに含まれる各グリッド点の座標値を、当該ＴＩＮの３頂点の座標値から算出する算出機能
とを具備することを特徴とする請求項１４に記載の３次元データ処理プログラム。
【請求項１６】
当該算出機能が、
当該指定されたＴＩＮに外接する４角形に収容される最大グリッド範囲を決定するグリッド範囲決定機能と、
当該グリッド範囲決定ステップで決定されるグリッド範囲に含まれるグリッド点が、当該指定されたＴＩＮ内かどうかを順に調べる機能と、
当該指定されたＴＩＮに含まれる各グリッド点の座標値を、当該ＴＩＮの３頂点の座標値から算出する機能
とを具備することを特徴とする請求項１５に記載の３次元データ処理プログラム。
【請求項１７】
当該グリッド座標算出機能は、当該ＴＩＮデータに対するグリッド化範囲及び当該グリッド間隔を設定する機能を具備することを特徴とする請求項１４に記載の３次元データ処理プログラム。
【請求項１８】
更に、
断面を規定する成分又は面を指定する機能と、
当該断面を規定する線分又は面に当該グリッドデータ（３４）に適用し、当該断面上の複数の点の３次元座標値を当該グリッドデータ（３４）から内挿する内挿機能と、
当該ＴＩＮデータ（２８）及び当該グリッドデータ（３４）の一方から３Ｄ画像を生成する機能と，
当該断面を示す画像と当該３Ｄ画像を合成する機能
とを具備することを特徴とする請求項１４乃至１７の何れか１項に記載の３次元データ処理プログラム。
【請求項１９】
３次元の内の２次元面上に所定グリッド間隔に配置される複数のグリッド点に残る１次元の座標値を割り当てることで、立体物を３次元表現するグリッドデータを使い、当該立体物の所望の切断面の面積を算出する３次元データ処理方法であって、
当該グリッド点で規定されるメッシュが当該切断面にいくつ含まれるかを計数する計数ステップと、
当該計数ステップで計数されたメッシュ数に、当該グリッド間隔で規定される１メッシュの面積を乗算する乗算ステップ
とを具備することを特徴とする３次元データ処理方法。
【請求項２０】
３次元の内の２次元面上に所定グリッド間隔に配置される複数のグリッド点に残る１次元の座標値を割り当てることで、立体物を３次元表現するグリッドデータを使い、当該立体物の参照面で分離される部分の容積を算出する３次元データ処理方法であって、
当該参照面で分離される部分の，当該残る１次元の座標値の差を累積する累積ステップと，
当該参照面で分離される部分を当該２次元面に投影したときの面積内に当該グリッド点で規定されるメッシュがいくつ含まれるかを計数する計数ステップと、
当該累積ステップの累積値に当該計数ステップで計数されたメッシュ数を乗算する乗算ステップ
とを具備することを特徴とする３次元データ処理方法。
【請求項２１】
３次元の内の２次元面上に所定グリッド間隔に配置される複数のグリッド点に残る１次元の座標値を割り当てることで、立体物を３次元表現するグリッドデータを使い、当該立体物の所望の切断面の面積を算出する３次元データ処理プログラムであって、
当該グリッド点で規定されるメッシュが当該切断面にいくつ含まれるかを計数する計数機能と、
当該計数機能で計数されたメッシュ数に、当該グリッド間隔で規定される１メッシュの面積を乗算する乗算機能
とをコンピュータに実行させることを特徴とする３次元データ処理プログラム。
【請求項２２】
３次元の内の２次元面上に所定グリッド間隔に配置される複数のグリッド点に残る１次元の座標値を割り当てることで、立体物を３次元表現するグリッドデータを使い、当該立体物の参照面で分離される部分の容積を算出する３次元データ処理プログラムであって、
当該参照面で分離される部分の，当該残る１次元の座標値の差を累積する累積機能と，
当該参照面で分離される部分を当該２次元面に投影したときの面積内に当該グリッド点で規定されるメッシュがいくつ含まれるかを計数する計数機能と、
当該累積ステップの累積値に当該計数ステップで計数されたメッシュ数を乗算する乗算機能
とをコンピュータに実行させることを特徴とする３次元データ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３次元データ処理方法、装置及びプログラムに関し、より具体的には、デジタル地理データ（ＧＩＳ）に代表される３次元データを所定サイズのグリッド上の３次元データに変換する方法、装置及びプログラムに関する。
【背景技術】
【０００２】
３次元構造体を表現する方法としては、その構成要素を点、線及び面等のベクトル情報として表現する方法と、３次元構造体を所定サイズのグリッド又はメッシュに分割し、各グリッド又はメッシュ単位で三次元座標を特定する方法とがある。
【０００３】
前者のベクトル表記方法は、多様な形状を少ないデータ数で表現でき、線及び面を特定することでより詳細な情報を持たせることができるという利点があり、データの流通に向いている。他方、後者の方法は、汎用的でコンピュータ処理に向いているものの、データ量が膨大になり，流通性に欠ける。地理情報をデジタル表現する地理情報システム（ＧＩＳ）等には、前者の方法による３次元ベクトルデータ表現が使用される。ＧＩＳに関して、例えば、特許文献１，２を参照。
【０００４】
地理情報を３次元ベクトルデータで表現する場合、線又は面を構成する複数の点をグループ化し、そのグループに線又は面の属性を付与する。これにより、線又は面を特定でき、名前を付加でき、検索も容易になる。
【０００５】
このような３次元データは、地理情報システム以外にも、３次元構造物を表現するのにも利用される。
【特許文献１】特開２００３−２９５７６３号公報
【特許文献２】特開２００１−０７６００３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ＧＩＳ及びその他のシステムで使用される３次元ベクトルデータは一般に、構造を表現するのに必須の主要点について３次元位置データを収容するものであり、これらの主要点は、例えば、水平面内で見て、均等な間隔には位置しない。
【０００７】
地理情報は、鳥瞰図又は３Ｄ画像として表示することで、全体の様子を理解しやすくなる。３次元ベクトルデータから３Ｄ画像を得る方法として、３次元ベクトルデータから直接、３Ｄ画像を生成する方法と、３次元ベクトルデータで表現される形状を不規則三角形で近似するＴＩＮ（triangulated irregular network）モデルでＴＩＮデータに変換し、そのＴＩＮデータから３Ｄ画像を作成する方法と、ＴＩＮモデルを一定グリッド間隔の複数の点データに変換し、その点データの集合（グリッドデータ）から３Ｄ画像を作成する方法が考えられる。
【０００８】
３次元ベクトルデータから直接、３Ｄ画像を作成する方法は、精密な３Ｄ画像を得られるものの、コンピュータの処理負担が重たすぎる。これに対し、ＴＩＮデータから３Ｄ画像を作成する方法は、コンピュータの処理負担は軽減されるものの、ＴＩＮデータの精度が悪いと、正確な３Ｄ画像を得られない。グリッドデータから３Ｄ画像を作成する方法も、中間的なＴＩＮデータの精度が悪いと、正確な３Ｄ画像を得られない。
【０００９】
また、地理情報として、特定の切断面の面構造及びその面積、特定の面で囲まれる部分の容積等を迅速に表現又は算出したいとする要望があるが、ベクトルデータは、このような要望には向いていない。このような用途には、グリッド方式のデータ形式が向いている。即ち、３次元ベクトルデータから高精細なグリッドデータを高速に得られる手法が望まれている。
【００１０】
本発明は、このような需要に応える３次元データ処理方法、装置及びプログラムを提示することを目的とする。
【課題を解決するための手段】
【００１１】
本発明に係る３次元データ処理方法は、複数の線データを含む３次元ベクトルデータの当該各線データに補助中間点を補間する補間ステップと、当該３次元ベクトルデータの各線データを記述する点及び当該補助中間点を使って不規則三角形網を形成し、ＴＩＮデータを出力するＴＩＮ生成ステップとを具備することを特徴とする。
【００１２】
好ましくは、更に、当該ＴＩＮデータに対して所定グリッド間隔のグリッドを適用して当該ＴＩＮデータから各グリッド点の座標値を算出し、個々のグリッド点について３次元座標値を示すグリッドデータを出力するグリッド座標算出ステップとを具備する。
【００１３】
本発明に係る３次元データ処理装置は、複数の線データを含む３次元ベクトルデータの当該各線データに補助中間点を補間する中間点補間手段と、当該３次元ベクトルデータの各線データを記述する点及び当該補助中間点の３次元座標値から不規則三角形網を形成し、各三角形を規定するＴＩＮデータを生成するＴＩＮ生成手段とを具備することを特徴とする。
【００１４】
好ましくは、当該ＴＩＮデータに対して所定グリッド間隔のグリッドを適用して当該ＴＩＮデータから各グリッド点の座標値を算出し、個々のグリッド点について３次元座標値を示すグリッドデータを出力するグリッド座標算出手段とを具備する。
【００１５】
本発明に係る３次元データ処理プログラムは、複数の線データを含む３次元ベクトルデータの当該各線データに補助中間点を補間する補間機能と、当該３次元ベクトルデータの各線データを記述する点及び当該補助中間点を使って不規則三角形網を形成し、ＴＩＮデータを出力するＴＩＮ生成機能とをコンピュータに実行させることを特徴とする。
【００１６】
好ましくは、更に、当該ＴＩＮデータに対して所定グリッド間隔のグリッドを適用して当該ＴＩＮデータから各グリッド点の座標値を算出し、個々のグリッド点について３次元座標値を示すグリッドデータを出力するグリッド座標算出機能をコンピュータに実行させることを特徴とする。
【００１７】
本発明に係る３次元データ処理方法は、３次元の内の２次元面上に所定グリッド間隔に配置される複数のグリッド点に残る１次元の座標値を割り当てることで、立体物を３次元表現するグリッドデータを使い、当該立体物の所望の切断面の面積を算出する３次元データ処理方法であって、当該グリッド点で規定されるメッシュが当該切断面にいくつ含まれるかを計数する計数ステップと、当該計数ステップで計数されたメッシュ数に、当該グリッド間隔で規定される１メッシュの面積を乗算する乗算ステップとを具備することを特徴とする。
【００１８】
本発明に係る３次元データ処理方法は、３次元の内の２次元面上に所定グリッド間隔に配置される複数のグリッド点に残る１次元の座標値を割り当てることで、立体物を３次元表現するグリッドデータを使い、当該立体物の参照面で分離される部分の容積を算出する３次元データ処理方法であって、当該参照面で分離される部分の，当該残る１次元の座標値の差を累積する累積ステップと、当該参照面で分離される部分を当該２次元面に投影したときの面積内に当該グリッド点で規定されるメッシュがいくつ含まれるかを計数する計数ステップと、当該累積ステップの累積値に当該計数ステップで計数されたメッシュ数を乗算する乗算ステップとを具備することを特徴とする。
【００１９】
本発明に係る３次元データ処理プログラムは、３次元の内の２次元面上に所定グリッド間隔に配置される複数のグリッド点に残る１次元の座標値を割り当てることで、立体物を３次元表現するグリッドデータを使い、当該立体物の所望の切断面の面積を算出する３次元データ処理プログラムであって、当該グリッド点で規定されるメッシュが当該切断面にいくつ含まれるかを計数する計数機能と、当該計数機能で計数されたメッシュ数に、当該グリッド間隔で規定される１メッシュの面積を乗算する乗算機能とをコンピュータに実行させることを特徴とする。
【００２０】
本発明に係る３次元データ処理プログラムは、３次元の内の２次元面上に所定グリッド間隔に配置される複数のグリッド点に残る１次元の座標値を割り当てることで、立体物を３次元表現するグリッドデータを使い、当該立体物の参照面で分離される部分の容積を算出する３次元データ処理プログラムであって、当該参照面で分離される部分の，当該残る１次元の座標値の差を累積する累積機能と、当該参照面で分離される部分を当該２次元面に投影したときの面積内に当該グリッド点で規定されるメッシュがいくつ含まれるかを計数する計数機能と、当該累積ステップの累積値に当該計数ステップで計数されたメッシュ数を乗算する乗算機能とをコンピュータに実行させることを特徴とする。
【発明の効果】
【００２１】
本発明によれば、３次元ベクトルデータから高精度で高密度のＴＩＮデータを得ることができ、その結果として、高精度で高密度のグリッドデータを得ることができる。高精度・高密度のグリッドデータを使うことで、地形等の３次元体の形状、断面等を正確且つ迅速に表現できるようになる。
【発明を実施するための最良の形態】
【００２２】
以下、図面を参照して、本発明の実施例を詳細に説明する。
【００２３】
図１は、本発明の一実施例の概略構成ブロック図を示し、図２は、本実施例によりベクトルデータからグリッドデータを生成するまでのＣＰＵ１０の動作フローチャートを示す。
【００２４】
ＣＰＵ１０は、コンピュータの中央処理装置として図２に示すフローを実行する機能ブロックを具備する。メモリ１２には、ＣＰＵ１０の処理過程で生じる一時データが格納される。オペレータは、キーボード１４により、種々の設定値をＣＰＵ１０に入力できる。表示装置１６は、ＣＰＵ１０の処理結果を画像として表示できる。
【００２５】
３次元ベクトルデータ２０は、例えば、ＧＩＳで提供されるデータであり、基本的に、孤立点を示す点データと、線を示す線データと、面を示す面データを含む。線データは、始点と終点の少なくとも２つの点データからなり、始点と終点の間に１以上の点データを含む場合もあり、これらの点からなるベクトルとして表記される。線データは、例えば、何らかの境界を示したり、鉄道、道路及び川などを示す。面データは、複数の点データで囲まれる領域を示す場合と、複数の線データで囲まれる領域を示す場合とがある。面データは、行政区画等の、他とは区別される領域を示す場合に使用される。線データ及び面データは、３次元座標値以外に、川、道路、行政区画等を示す属性データを具備する。
【００２６】
３次元ベクトルデータ２０の各ベクトルは、先に説明したように、ベクトル表記に必要な点データのみで表現される。ベクトルを構成するこれらの点データから不規則三角形網ＴＩＮ（triangulated irregular network）を生成すると、得られた三角形は極く粗いものになってしまう。即ち、得られたＴＩＮモデルは、そもそもベクトルで表現される微細な形状変化を反映したものにならない。そこで、本実施例では先ず、ＣＰＵ１０の中間点補間プログラム２２が、３次元ベクトルデータ２０の各ベクトルの線要素上に補助中間点を設定する。
【００２７】
具体的には、３次元ベクトルデータ２０をベクトル単位で読み込み（Ｓ１）、各ベクトルの図形種別を判別する（Ｓ２）。注目するベクトルが線又は面を示す場合に、中間点補間プログラム２２が、ベクトルに中間点を補間する（Ｓ３）。図形種別が線である場合には、線分上に所定間隔で補助中間点を設定し、図形種別が面である場合には、面を規定する各線分上に所定間隔で補助中間点を設定する。
【００２８】
図３は、２つの道路を規定するベクトルデータ例の平面模式図を示す。道路の境界を規定するベクトルを構成する点を白丸で表記している。図４は、道路１，２の境界を規定するベクトルに対し、適当な間隔で補助中間点を設定した結果を示す。補助中間点を三角で図示してある。補助中間点を設定する間隔は、必要に応じて、適宜に決定すれば良い。線（又は面）の連続性を保持できる程の細かさで、補助中間点を設定する。
【００２９】
３次元ベクトルデータ２０の全ての線ベクトル及び面ベクトルについて、このように補助中間点を挿入する（Ｓ３）。全ベクトルについてステップＳ１〜Ｓ３を終了すると、３次元座標抽出プログラム２４が、全ベクトルデータ２０の各点（線データ及び面データの要素となる点を含む）の三次元座標値と中間点補間プログラム２２が挿入した補助中間点の三次元座標値を抽出し（Ｓ５）、ＴＩＮ生成プログラム２６が、周知のＴＩＮモデルに基づき、これらの点群による三角形を形成し、得られた高密度ＴＩＮデータ２８をハードディスクに格納する（Ｓ６）。三角形を生成するには、地理情報処理技術で周知のアルゴリズムを使用できる。このようなアルゴリズム自体は、本発明には関係しないので、詳細な説明は、省略する。
【００３０】
図５は、図４に示すように補助中間点を補充した場合の、道路１，２に対するＴＩＮデータの一例を示す。参考の為に、補助中間点を挿入しない従来例の場合のＴＩＮデータ例を図６に示す。本実施例により、従来例に比べて極めて高密度のＴＩＮデータが得られること、そしてまた、ベクトルを反映した補助中間点を使って高密度ＴＩＮを生成するので、得られる三角形は、元のベクトルデータの変化を従来例よりも忠実に反映したものになっていることが分かる。従来例では、道路１又は２と道路１，２の間の領域が１つの三角形に含まれてしまうことがある。これでは、ベクトルデータを忠実に反映したグリッドデータを得ることは不可能である。
【００３１】
このようにして、従来例よりも高密度で且つ高精度のＴＩＮデータ２８を得ることができる。
【００３２】
このようにして得た高密度ＴＩＮデータ２８を使って、次に、グリッドデータ３４を算出する。グリッドデータ３４は、３次元空間の１つの平面、即ち、基準面（例えば、水平面）上にその２方向で一定間隔にグリッドを配置し、各グリッドに対して残る座標値（例えば、高さを示すｚ座標値）が割り当てられる。グリッドデータ３４は、基準面上では２つの座標値（例えば、Ｘ及びＹ）が一定の規則で表記され得るので、コンピュータ処理が容易になる。
【００３３】
先ず、オペレータは、キーボード１４により、３次元ベクトルデータ２０で表記される空間内で、グリッド化を行なう水平面内の範囲とグリッドの間隔をＴＩＮ内グリッド探索プログラム３０に設定する（Ｓ７）。グリッド化範囲は、周縁部分を考慮して、最終的に結果を得たい範囲を包含するように設定される。グリッド間隔は、対象の地形及び表現したい細密さ等を考慮して適宜に決定される。Ｘ方向のグリッド間隔とＹ方向のグリッド間隔は、同じでも異なっても良い。
【００３４】
ＴＩＮ内グリッド探索プログラム３０は、高密度ＴＩＮデータ２８から、設定されたグリッド化範囲内に入る三角形（ＴＩＮ）を探索し、そのＴＩＮ内に位置するグリッドに対して、ＴＩＮを構成する３頂点の座標値からｚ座標値を算出し、グリッドに割り当てる（Ｓ９，Ｓ１０）。
【００３５】
具体的には、ＴＩＮ内グリッド探索プログラム３０は、高密度ＴＩＮデータ２８に収容される最初のＴＩＮを指定し（Ｓ８）、その指定ＴＩＮが、設定されたグリッド化範囲内に入るかどうかを調べる（Ｓ９）。指定ＴＩＮがグリッド化範囲内に入る場合には（Ｓ９）、ｚ座標値算出プログラム３２が、指定ＴＩＮ内に入るグリッドを探索し、発見された各グリッドに対して後述する方法で、ｚ座標値を算出する（Ｓ１０）。
【００３６】
全ＴＩＮが終了していなければ（Ｓ１１）、ＴＩＮ内グリッド探索プログラム３０は、次のＴＩＮを高密度ＴＩＮデータ２８から読み出して指定し（Ｓ１２）、ステップＳ９に戻る。
【００３７】
このようにして、全ＴＩＮが終了するまで（Ｓ１１）、ステップＳ９，Ｓ１０，Ｓ１２が繰り返される。高密度ＴＩＮデータ２８の全ＴＩＮについてステップＳ９，Ｓ１０の処理を終了すると、得られたグリッドデータ３４をハードディスク等に保存する（Ｓ１３）。
【００３８】
グリッドデータ３４は、ヘッダとして、ｘ方向のグリッド数、ｙ方向のグリッド数、原点（例えば、左下）のｘ座標値及びｙ座標値、ｘ方向のグリッド間隔、ｙ方向のグリッド間隔、並びに最小ｚ値及び最大ｚ値を具備し、この後に高さ情報として、各グリッド点のｚ値を行順又は列順の一定順序で格納される。個々のグリッドのｘ座標値及びｙ座標値は、高さ情報内での何個目かと、ヘッダ情報の原点座標並びにｘ方向及びｙ方向のグリッド間隔から算出できる。個々のグリッドのｘ座標値及びｙ座標値を保持しなくてよいので、データ量を少なくできる。
【００３９】
グリッドデータ３４には、各グリッドについて、３次元ベクトルデータ２０に収容されている属性を付加してもよい。属性を付加することにより、グリッドデータ３４を編集又は視覚化する場合、若しくは、他のデータと組み合わせて利用する場合に、属性に応じた表示色又は処理を選択することが可能になる。
【００４０】
なお、指定ＴＩＮがグリッド化範囲に入るか否かの判断（Ｓ９）では、指定ＴＩＮの一部でもグリッド化範囲に入れば範囲内と判断するケースと、指定ＴＩＮの全部がグリッド化範囲に入れば範囲内と判断するケースの２つのケースがある。前者のケースでは、指定ＴＩＮを構成する３頂点の少なくとも１つがグリッド化範囲内に入るかどうかを探索することになり、後者のケースでは、指定ＴＩＮを構成する３頂点の全てがグリッド化範囲内に入るかどうかを探索することになる。前者のケースでは、グリッド化範囲を確実に包含する範囲で全グリッドのｚ座標値を算出できる。後者のケースでは、グリッド化範囲の周縁部のグリッドについては、ｚ座標値を算出できない可能性がある。何れをとるかは、得たい結果により異なる。
【００４１】
ｚ座標値算出プログラム３２によるｚ座標値算出処理（Ｓ１０）の詳細を説明する。図７は、ステップＳ１０の詳細なフローチャートを示し、図８は、ＴＩＮ及びグリッド例を示す。注目するＴＩＮの３つの頂点Ｐ，Ｑ，Ｒの座標値をそれぞれ、（Ｘｐ，Ｙｐ，Ｚｐ），（Ｘｑ，Ｙｑ，Ｚｑ），（Ｘｒ，Ｙｒ，Ｚｒ）であるとする。また、グリッドデータ３４は、図８の左下を原点（Ｘｏ，Ｙｏ）として、ｘ方向の間隔がＤｘ、ｙ方向の間隔がＤｙで規程されるとする。従って、整数ｉ，ｊにより指定されるグリッド（ｉ，ｊ）のｘ座標値は、Ｘｏ＋ｉ×Ｄｘ、ｙ座標値はＹｏ＋ｊ×Ｄｙと計算され得る。
【００４２】
先ず、指定ＴＩＮに外接する四角形に収容される最大のグリッド範囲を決定する（Ｓ２１，Ｓ２２）。これは、図８に示す例では、ｉ＝１，２，３，ｊ＝２，３で特定される範囲である。
【００４３】
具体的には、複数の値の最小値を算出する関数ｍｉｎ（）、及び複数の値の最大値を算出する関数ｍａｘ（）を使って、注目するＴＩＮの頂点Ｐ，Ｑ，Ｒの座標値から注目ＴＩＮに外接する長方形の最大ｘ座標値Ｘｍａｘ、最小ｘ座標値Ｘｍｉｎ、最大ｙ座標値Ｙｍａｘ及び最小ｙ座標値Ｙｍｉｎを算出する（Ｓ２１）。これにより、指定ＴＩＮに外接する四角形の４隅の座標値を決定できる。この四角形に収容可能な最大のグリッド範囲をｉ，ｊに対応する整数値で求めるために、図８に規定されるＩｍｉｎ，Ｉｍａｘ，Ｊｍｉｎ，Ｊｍａｘを次にように計算する。即ち、（Ｘｍｉｎ−Ｘｏ）／Ｄｘを切り上げ処理で整数化した結果をＩｍｉｎに代入し、（Ｘｍａｘ−Ｘｏ）／Ｄｘを切り捨て処理で整数化した結果をＩｍａｘに代入し、（Ｙｍｉｎ−Ｙｏ）／Ｄｙを切り上げ処理で整数化した結果をＪｍｉｎに代入し、（Ｙｍａｘ−Ｙｏ）／Ｄｙを切り捨て処理で整数化した結果をＪｍａｘに代入する（Ｓ２２）。図８に示す例では、Ｉｍｉｎ＝１，Ｉｍａｘ＝３，ｊｍｉｎ＝２，Ｊｍａｘ＝３となる。
【００４４】
変数ｉにＩｍｉｎを代入し、変数ｊにＪｍｉｎを代入する（Ｓ２３）。（ｉ，ｊ）で特定されるグリッド（ｉ，ｊ）がｚ座標値を算出済みであるかどうかを調べる（Ｓ２４）。これは、各グリッドの設定時に各グリッドのｚ座標値として無効な値を設定しておくことで、簡単に検出できる。ｚ座標値をまだ算出していない場合（Ｓ２４）、グリッド（ｉ，ｊ）が指定ＴＩＮ内かどうかを調べる（Ｓ２５）。
【００４５】
グリッド（ｉ，ｊ）がＴＩＮ内かどうかは、例えば、ＴＩＮを構成する３辺に対するグリッド点の仰角を計算することで、判別できる。グリッド点が３辺全ての進行方向右側にあるか、グリッド点が３辺全ての進行方向左側にあれば、そのグリッド点はＴＩＮ内にある。
【００４６】
グリッド（ｉ，ｊ）が指定ＴＩＮ内である場合（Ｓ２５）、指定ＴＩＮの外積から、指定ＴＩＮ上の任意の位置の高さを算出できる。具体的には、指定ＴＩＮの３頂点Ｐ，Ｑ，Ｒの座標値（Ｘｐ，Ｙｐ，Ｚｐ），（Ｘｑ，Ｙｑ，Ｚｑ），（Ｘｒ，Ｙｒ，Ｚｒ）と、グリッド（ｉ，ｊ）のｘ座標値ｘ及びｙ座標値ｙから、下記式に従い、グリッド（ｉ，ｊ）のｚ座標値ｚを計算する（Ｓ２５）。即ち、
ｚ＝−（Ａ×ｘ＋Ｂ×ｙ＋Ｄ）／Ｃ
但し、
Ａ＝（Ｙｒ−Ｙｐ）×（Ｚｑ−Ｚｐ）−（Ｙｑ−Ｙｐ）×（Ｚｒ−Ｚｐ）
Ｂ＝（Ｚｒ−Ｚｐ）×（Ｘｑ−Ｘｐ）−（Ｚｑ−Ｚｐ）×（Ｘｑ−Ｘｐ）
Ｃ＝（Ｘｒ−Ｘｐ）×（Ｙｑ−Ｙｐ）−（Ｘｑ−Ｘｐ）×（Ｙｒ−Ｙｐ）
Ｄ＝Ａ×Ｘｐ−Ｂ×Ｙｐ−Ｃ×Ｚｐ
である。ちなみに、（Ａ，Ｂ，Ｃ）は、平面ＰＱＲの法線ベクトルを示す。
【００４７】
以上のステップＳ２４，Ｓ２５，Ｓ２６の処理を、ｉ＝Ｉｍｉｎ〜Ｉｍａｘ，ｊ＝Ｊｍｉｎ〜Ｊｍａｘの範囲で繰り返す（Ｓ２８〜Ｓ３０）。ｉがＩｍａｘを越えると（Ｓ３０）、指定ＴＩＮに包含される全グリッドのｚ座標値を決定できたことになり、処理を終了する。
【００４８】
グリッドデータ３４が得られると、任意の断面を計算することや、所望部分の容積を求めることが容易になる。例えば、地上の任意の直線又は曲線に沿った断面図を容易に作成できる。グリッド点上では無い点の高さは、バイリニア法等により、近隣の４つのグリッド点から内挿により求めることができる。
【００４９】
キーボード１４により断面を指定し、座標値内挿プログラム３６に設定する。垂直断面の場合には、図９に示すように、水平面上での始点座標Ｐ１（ｘ，ｙ）と終点座標Ｐ２（ｘ，ｙ）を指定する。座標値内挿プログラム３６は、図１０に示すように、指定された線上で任意の一定間隔又は任意の間隔で中間点Ｍ１，Ｍ２，Ｍ３，Ｍ４，Ｍ５を内挿し、始点Ｐ１、終点Ｐ２及び各中間点Ｍ１〜Ｍ５について、グリッドデータ３４の近隣のグリッド点の三次元座標から高さ（ｚ座標値）を算出する。図１１は、始点Ｐ１、終点Ｐ２及び各中間点Ｍ１〜Ｍ５の高さｚの変化例、即ち、断面例を示す。近隣のグリッド点からｚ座標値を算出するには、例えば、ＴＩＮ上の任意の点の高さを算出する上述の方法を使用すれば良い。座標値内挿プログラムは、始点Ｐ１、終点Ｐ２及び各中間点Ｍ１〜Ｍ５の三次元座標値を断面データ３８としてハードディスクに格納する。
【００５０】
ＴＩＮデータ２８及びグリッドデータ３４は、公知の方法で鳥瞰図として３Ｄ画像化することが可能である。３Ｄ画像化プログラム４０は、指定の視点及び距離でＴＩＮデータ２８をレンダリングして３Ｄ画像化する。３Ｄ画像化プログラム４２は、断面データ３８を同じ視点及び距離で断面データ３８を３Ｄ画像化する。合成プログラム４４は、３Ｄ画像化プログラム４０，４２により３Ｄ画像化された画像を選択又は合成して、表示装置１６に印加する。合成プログラム４４が、３Ｄ画像化プログラム４０，４２により３Ｄ画像化された画像の一方を選択した場合に、表示装置１６の画面には、選択された３Ｄ画像が表示される。合成プログラム４４が、３Ｄ画像化プログラム４０，４２により３Ｄ画像化された画像を合成した場合、表示装置１６の画面には、所望の地域の鳥瞰図に、指定の線で見た断面図が合成表示される。３Ｄ画像化プログラム４０による３Ｄ画像を半透明で表示することで、全体と断面の関係を分かりやすく表示できる。ＴＩＮデータ２８の代わりに，グリッドデータ３４を３Ｄ画像化してもよい。
【００５１】
なお、３Ｄ画像化プログラム４０，４２は実際には、単一の３Ｄ画像化プログラムによるＴＩＮデータ２８の３Ｄ画像化処理と、断面データ３８の３Ｄ画像化処理を模式的に示しているに過ぎない。
【００５２】
直線に沿った垂直断面の例を説明したが、本実施例では、任意の直線又は曲線での断面画像を容易に形成できる。
【００５３】
本実施例によれば、グリッド間隔１ｍ乃至０．５ｍ程度の非常に高密度のグリッドデータ３４を得ることができる。このような高密度のグリッドデータ３４を入手できると、例えば、所望の断面の面積及び容積を算出することも容易になる。例えば、水平断面積を求めたい場合、その水平断面に入るグリッド点数を計数し、１グリッド当たりの面積をそのグリッド点数に乗算すればよい。即ち、面積Ｓは、
Ｓ＝ｋ×ｓ
である。但し、ｋは指定の範囲に入るグリッド数、ｓは１メッシュの面積である。ベクトルデータから面積を算出する場合には、複数の線分及び面に対する多くの方程式を解かなければならず、容易ではないが、本実施例では、基本的にグリッドによるメッシュ数を計数すればよいので、簡単且つ迅速に算出できる。
【００５４】
容積についても、同様に簡単に算出できる。ある標高Ｈよりも高い部分の容積Ｖは、標高Ｈより上の部分について、各グリッドの高さｈから標高Ｈを減算して累積し、１メッシュの面積ｓを乗算すればよい。即ち、
Ｖ＝Σ（ｈ−Ｈ）×ｓ
これは、山を切り崩して発生する切土の容積の計算に利用可能である。同様にして、凹んだ部分を埋める場合に必要な盛土量を算定するのにも利用できる。
【００５５】
切土と盛土が等しくなる標高を算出することで、凹凸のある場所をどの標高で平坦にできるかが分かる。
【００５６】
水平面を容積算定の参照面とする例を説明したが、このような参照面は、水平面以外に、斜面、曲面、グリッド化された点群で構成される任意形状の面、又はこれらの組み合わせでもよい。更には、同じ参照面に対する異なる年月日での容積計算結果を比較することで、地形変化を定量的に把握できる。
【００５７】
図２のステップＳ８〜Ｓ１０では、先ずグリッド化範囲内に入るＴＩＮを見つけ、そのＴＩＮ内に入るグリッドに対してｚ座標値を算出したが、グリッド化範囲内のグリッドを順に指定し、指定グリッドが入るＴＩＮを探索し、発見されたＴＩＮの３点の座標値から指定グリッドのｚ座標値を算出してもよい。しかし、この方法では、指定グリッドが入るＴＩＮを探索する処理を高速化する必要がある。
【００５８】
特定の説明用の実施例を参照して本発明を説明したが、特許請求の範囲に規定される本発明の技術的範囲を逸脱しないで、上述の実施例に種々の変更・修整を施しうることは、本発明の属する分野の技術者にとって自明であり、このような変更・修整も本発明の技術的範囲に含まれる。
【図面の簡単な説明】
【００５９】
【図１】本発明の一実施例の概略構成ブロック図である。
【図２】本実施例によるＴＩＮデータ生成及びグリッドデータ生成の動作フローチャートである。
【図３】ベクトルデータ例である。
【図４】補助中間点を内挿した例である。
【図５】図４に示す補助中間点を使って生成したＴＩＮ例である。
【図６】補助中間点を生成しない場合のＴＩＮ例である。
【図７】ｚ座標値算出プログラム３２によるｚ座標値算出処理（Ｓ１０）の詳細なフローチャートである。
【図８】ＴＩＮとグリッド点の一例である。
【図９】断面を指定する線の一例である。
【図１０】断面を指定する線に設定する中間点の一例である。
【図１１】始点、終点及び中間点の高さ変化の模式図である。
【符号の説明】
【００６０】
１０：ＣＰＵ
１２：メモリ
１４：キーボード
１６：表示装置
２０：３次元ベクトルデータ
２２：中間点補間プログラム
２４：３次元座標抽出プログラム
２６：ＴＩＮ生成プログラム
２８：高密度ＴＩＮデータ
３０：ＴＩＮ内グリッド探索プログラム
３２：ｚ座標値算出プログラム
３４：グリッドデータ
３６：座標値内挿プログラム
３８：断面データ
４０，４２：３Ｄ画像化プログラム
４４：合成プログラム
【図１】
2006059061.tif 000003
【図２】
2006059061.tif 000004
【図３】
2006059061.tif 000005
【図４】
2006059061.tif 000006
【図５】
2006059061.tif 000007
【図６】
2006059061.tif 000008
【図７】
2006059061.tif 000009
【図８】
2006059061.tif 000010
【図９】
2006059061.tif 000011
【図１０】
2006059061.tif 000012
【図１１】
2006059061.tif 000013