以下、図面を参照しつつ、本発明の様々な実施形態について説明する。ただし、本発明の技術的範囲はそれらの実施形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶ点に留意されたい。
(概略構成)
図1は、地形図出力装置1の概略構成の一例を示す図である。地形図出力装置1は、記憶部11、通信部12、表示部13、操作部14及び処理部15を有する。
記憶部11は、プログラム又はデータを記憶するためのデバイスであり、例えば、半導体メモリ装置を備える。記憶部11は、処理部15による処理に用いられるオペレーティングシステムプログラム、ドライバプログラム、アプリケーションプログラム、データ等を記憶する。プログラムは、CD(Compact Disc)−ROM(Read Only Memory)、DVD(Digital Versatile Disc)−ROM等のコンピュータ読み取り可能且つ非一時的な可搬型記憶媒体から、公知のセットアッププログラム等を用いて記憶部11にインストールされる。
通信部12は、地形図出力装置1を他の装置と通信可能にするデバイスであり、通信インタフェース回路を備える。通信部12が備える通信インタフェース回路は、有線LAN(Local Area Network)又は無線LAN等の通信インタフェース回路である。通信部12は、データを他の装置から受信し、処理部15に供給するとともに、処理部15から供給されたデータを他の装置に送信する。
表示部13は、画像を表示するためのデバイスであり、例えば、液晶ディスプレイ又は有機EL(Electro-Luminescence)ディスプレイを備える。表示部13は、処理部15から供給された表示データに基づいて画像を表示する。
操作部14は、地形図出力装置1に対するユーザの入力操作を受付けるためのデバイスであり、例えば、キーパッド、キーボード又はマウスを備える。操作部14は、表示部13と一体化されたタッチパネルを備えてもよい。操作部14は、ユーザの入力操作に応じた信号を生成して処理部15に供給する。
処理部15は、地形図出力装置1の動作を統括的に制御するデバイスであり、一又は複数個のプロセッサ及びその周辺回路を備える。処理部15は、例えば、CPU(Central Processing Unit)である。処理部15は、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)、LSI(Large Scale Integration)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等でもよい。処理部15は、記憶部11に記憶されているプログラム並びに通信部12及び操作部14からの入力に基づいて地形図出力装置1の各種処理が適切な手順で実行されるように、各構成の動作を制御するとともに、各種の処理を実行する。
処理部15は、第1取得部151、第2取得部152、算出部153及び出力部154をその機能ブロックとして備える。これらの各部は、処理部15によって実行されるプログラムによって実現される機能モジュールである。これらの各部は、ファームウェアとして地形図出力装置1に実装されてもよい。なお、第1取得部151及び第2取得部152は、取得部の一例である。
(データ構造)
図2は、記憶部11に記憶される標高値テーブルT1のデータ構造の一例を示す図である。標高値テーブルT1は、地形図によって表示される対象領域を格子状に区画した複数の地理的領域にそれぞれ対応する複数のグリッドと、各グリッドに対応する地理的領域の標高値とを関連付ける。各グリッドは、第1方向及び第1方向に直交する第2方向に配列される。なお、グリッドは、単位領域の一例である。
標高値テーブルT1は、グリッドID、座標、地理的領域及び標高値を含む。グリッドIDは、各グリッドを識別するための情報である。地理的領域は、各グリッドに対応する地理的領域を識別するための情報であり、例えば、対象領域を格子状に区画した複数の地理的領域のそれぞれの頂点の緯度及び経度である。地理的領域は、各地理的領域の対角線の端点の緯度及び経度、又は、各地理的領域の中心点の緯度及び経度等でもよい。座標は、対象領域において位置の基準となるグリッドに対する各グリッドの相対的な位置を示す。座標は、例えば、基準となるグリッドからの第1方向及び第2方向における距離に対応するグリッドの数により表される。標高値は、各地理的領域の標高値であり、例えば、各地理的領域に含まれる地点の標高値の最小値等により定められる。標高値は、各地理的領域に含まれる地点の標高値の平均値、中央値又は最頻値等により定められてもよい。
標高値テーブルT1のデータは、例えば、航空レーザー測量等によって取得された3次元点群データに基づいて生成される。一般に、航空レーザー測量によって取得された3次元点群データは、飛行する航空機から照射されたレーザー光の反射点の位置を示すデータであるから、反射点となり得る地表面、樹木又は建造物等を上方から見た形状を示す。3次元点群データが示す各反射点の分布等に基づいて樹木の反射点や誤検出された反射点等を除去し、地表面の反射点に対応する点群データのみを3次元点群データから抽出することによって、地形を示す点群データが生成される。生成された点群データをそれらが含まれる地理的領域に応じてグループに分割し、各グループに含まれる反射点の標高値の最小値等を対応する地理的領域の標高値として設定することで、標高値テーブルT1のデータが生成される。
(処理の流れ)
図3は、本発明の第1の側面において、地形図出力装置1によって実行される地形図出力処理の流れの一例を示すフロー図である。地形図出力処理は、記憶部11に記憶されたプログラムを実行した処理部15が、地形図出力装置1の各構成と協働することにより実現される。
まず、第1取得部151は、二以上のグリッドで構成されるウィンドウの大きさ及び形状を取得する(S101)。第1取得部151は、ユーザによる操作部14に対する操作に基づいて、ウィンドウの大きさ及び形状を取得する。第1取得部151は、通信部12を介して、ウィンドウの大きさ及び形状を他の装置から受信することにより取得してもよい。第1取得部151は、あらかじめ記憶部11に記憶された所定のウィンドウの大きさ及び形状を取得してもよい。ウィンドウの形状は、任意の形状であってよいが、例えば、矩形である。この場合、第1取得部151は、ウィンドウの大きさとして、第1方向におけるグリッドの数、及び、第2方向におけるグリッドの数を取得する。ウィンドウの第1方向及び第2方向におけるグリッドの数は、ウィンドウの中心となるグリッドが一意に定まるように、それぞれ奇数であることが好ましい。以下では、ウィンドウの第1方向におけるグリッドの数を2c+1と表し、第2方向におけるグリッドの数を2r+1(c及びrは何れも自然数)と表すことがある。なお、ウィンドウは、所定範囲の一例である。
続いて、算出部153は、各グリッドの起伏特徴量を算出する起伏特徴量算出処理を実行する(S102)。起伏特徴量は、各グリッドが、各グリッドの周辺のグリッドに対してどの程度起伏しているかを示す値である。あるグリッドの標高値が周辺のグリッドの標高値よりも大きいほど、そのグリッドの起伏特徴量として大きい値が算出される。起伏特徴量は、各グリッドの標高値と、各グリッドの周辺のグリッドの標高値との関係に基づいて算出される。例えば、起伏特徴量は、各グリッドの標高値と、各グリッドの周辺のグリッドの標高値の平均値及び分散値とを用いて算出される。起伏特徴量算出処理の詳細は後述する。
続いて、出力部154は、算出された起伏特徴量に基づく態様で各グリッドを表示する地形図を出力する(S103)。出力部154は、算出された起伏特徴量に応じた色相、彩度、明度等で各グリッドを表示した地形図を生成する。出力部154は、生成された地形図を表示部13に表示することにより出力する。出力部154は、通信部12を介して、生成された地形図を他の装置に送信することにより出力してもよい。
図4は、起伏特徴量算出処理の流れの一例を示すフロー図である。
まず、算出部153は、初期位置のグリッドを算出対象グリッドとして設定する(S201)。初期位置のグリッドは、例えば、かかるグリッドを中心とし且つ取得された大きさ及び形状を有するウィンドウの角が、矩形である対象領域の角に接するようなグリッドである。
図5(a)は、S201について説明するための模式図である。図5(a)に示す例では、地形図を出力する領域である対象領域は、第1方向D1にNx個、第2方向D2にNy個の地理的領域に区画される。すなわち、対象領域には、各地理的領域に対応するNx×Ny個のグリッドが設けられる。各グリッドには、対象領域に属するグリッドのうち、最も北西方向(図5(a)の左上方向をいい、以下同様とする。)に位置するグリッドを基準とした座標が設定される。すなわち、各グリッドには、第1方向座標として0以上Nx−1以下の値が設定され、第2方向座標として0以上Ny−1以下の値が設定される。
図5(a)に示す例では、算出部153は、初期位置のグリッドGを算出対象グリッドとして設定する。グリッドGは、グリッドGを中心とし且つ取得された大きさ及び形状を有するウィンドウWの北西端が対象領域の北西端と一致するようなグリッドである。後述するように、算出部153は、算出対象グリッドを第1方向D1へ1グリッド分ずつ移動させながら、各算出対象グリッドの起伏特徴量を、各算出対象グリッドを中心とするウィンドウを用いて算出する。折返し位置のグリッドが算出対象グリッドとなった場合、算出部153は、算出対象グリッドを初期位置から第2方向D2に1グリッド分移動させるとともに、第1方向座標が初期位置と等しくなるように移動させる。折返し位置のグリッドは、かかるグリッドを中心とするウィンドウの第1方向における端部が対象領域の第1方向における端部と一致するようなグリッドである。算出部153は、算出対象グリッドを再び第1方向へ移動させながら、各算出対象グリッドの起伏特徴量を算出する。このような処理を繰り返すことにより、算出部153は、各グリッドの起伏特徴量を算出する。
図4に戻り、算出部153は、ウィンドウを第1方向に分割したグリッド群に含まれるグリッドの標高値の和及び二乗和を算出して記憶する(S202)。ウィンドウを第1方向に分割したグリッド群は、第2方向に連続するグリッドから構成される。なお、グリッド群は、単位領域群の一例である。
図5(b)は、S202について説明するための模式図である。図5(b)に示されるように、算出部153は、ウィンドウWを第1方向に分割した複数のグリッド群GGを設定する。図5(b)に示す例では、ウィンドウWに含まれるグリッドの第2方向座標が0以上4以下の範囲であるため、各グリッド群に含まれるグリッドの第2方向座標も0以上4以下の範囲となるように複数のグリッド群GGが設定される。算出部153は、設定された各グリッド群に含まれるグリッドの標高値の和及び二乗和を算出する。以下では、第1方向座標がxであるグリッドから構成されるグリッド群に含まれる標高値の和及び二乗和をそれぞれSum(x)及びSqSum(x)と記載することがある。
図4に戻り、算出部153は、算出対象グリッドの起伏特徴量を算出する(S203)。起伏特徴量は、算出対象グリッドの標高値と、ウィンドウに含まれるグリッドの標高値との関係に基づいて算出される。例えば、起伏特徴量は、算出対象グリッドの標高値と、ウィンドウに含まれるグリッドの標高値の平均値及び分散値とを用いて算出される。この場合、算出部153は、グリッド群における和及び二乗和に基づいてウィンドウにおける平均値及び分散値を算出して記憶する。算出部153は、平均値μ及び分散値Vを、以下の式により算出して記憶する。ここで、xは、算出対象グリッドの第1方向座標である。
続いて、算出部153は、算出対象グリッドの起伏特徴量Rを、算出対象グリッドの標高値Hと、ウィンドウに含まれるグリッドの標高値の平均値μ及び分散値Vとを用いて、以下の式により算出する。
続いて、算出部153は、算出対象グリッドを第1方向に移動させる(S204)。算出部153は、算出対象グリッドを第1方向にグリッド1個分移動させる。すなわち、算出部153は、算出対象グリッドの第1方向に隣接するグリッドを新たな算出対象グリッドとして設定する。算出部153は、移動された算出対象グリッドを中心とするウィンドウを設定する。
続いて、算出部153は、直前に起伏特徴量が算出された第1のグリッドを中心とする第1のウィンドウ及び算出対象グリッドを中心とする第2のウィンドウを第1方向に分割したグリッド群に含まれるグリッドの標高値の和及び二乗和を算出する(S205)。
図6(a)は、S205について説明するための模式図である。算出部153は、第1のウィンドウW1及び第2のウィンドウW2を第1方向に分割したグリッド群における標高値の和及び二乗和を算出する。第1のウィンドウW1は、直前に起伏特徴量が算出されたグリッドG1を中心とするウィンドウであり、第2のウィンドウW2は、算出対象グリッドG2を中心とするウィンドウである。ここで、第2のウィンドウW2を第1方向に分割したグリッド群のうち、第1のウィンドウW1に含まれるグリッド群における標高値の和及び二乗和はS202等においてすでに算出されている。したがって、算出部153は、第1のウィンドウW1に含まれず且つ第2のウィンドウに含まれるグリッドから構成される第1のグリッド群GG1における標高値の和及び二乗和のみを算出する。
図4に戻り、算出部153は、算出対象グリッドの起伏特徴量を算出する(S206)。算出部153は、第2のウィンドウにおける平均値及び分散値を算出する。例えば、算出部153は、第2のウィンドウに含まれるグリッドの標高値の平均値を、第1のウィンドウに含まれるグリッドの標高値の平均値、第1のウィンドウに含まれ且つ第2のウィンドウに含まれないグリッドの標高値及び第1のウィンドウに含まれず且つ第2のウィンドウに含まれるグリッドの標高値に基づいて算出する。また、算出部153は、第2のウィンドウに含まれるグリッドの標高値の分散値を、第1のウィンドウに含まれるグリッドの標高値の分散値、第1のウィンドウに含まれ且つ第2のウィンドウに含まれないグリッドの標高値及び第1のウィンドウに含まれず且つ第2のウィンドウに含まれるグリッドの標高値に基づいて算出する。算出部153は、算出対象グリッドの起伏特徴量を、算出対象グリッドの標高値と、第2のウィンドウに含まれるグリッドの標高値の平均値及び分散値とを用いて算出する。
図6(a)に示されるように、第1のウィンドウW1に含まれるグリッドの一部と、第2のウィンドウW2に含まれるグリッドの一部とは重複する。ウィンドウにおける平均値は、ウィンドウに含まれる各グリッドの標高値の和に基づくから、第2のウィンドウW2における平均値を求めるときに第1のウィンドウW1における平均値を用いることで、演算回数が低減される。同様に、ウィンドウにおける分散値は、ウィンドウに含まれる各グリッドの標高値の二乗和に基づくから、第2のウィンドウW2における分散値を求めるときに第1のウィンドウW1における分散値を用いることで、演算回数が低減される。
算出部153は、第1のウィンドウW1における平均値μ’及び分散値V’並びに算出された和及び二乗和を用いて、第2のウィンドウW2における平均値μ及び分散値Vを以下の式により算出する。
図4に戻り、算出部153は、算出対象グリッドが折返し位置のグリッドであるか否かを判定する(S207)。算出部153は、算出対象グリッドを中心とするウィンドウに含まれるグリッドの第1方向座標の最大値がNx−1に等しいか否かを判定することにより、算出対象グリッドが折返し位置のグリッドであるかいるか否かを判定する。算出対象グリッドが折返し位置のグリッドでないと判定された場合(S207−No)、算出部153は、処理をS204に進める。
算出対象グリッドが折返し位置のグリッドであると判定された場合(S207−Yes)、算出部153は、算出対象グリッドが終了位置のグリッドであるか否かを判定する。(S208)。終了位置のグリッドは、対象領域の中心に関して初期位置のグリッドと点対称の位置にあるグリッドである。すなわち、終了位置のグリッドは、かかるグリッドを中心とするウィンドウの、初期位置において対象領域の角と接していた角の対角が、対象領域の角に接するようなグリッドである。算出部153は、ウィンドウに含まれるグリッドの第2方向座標の最大値がNy−1に等しいか否かを判定することにより、算出対象グリッドが終了位置のグリッドであるか否かを判定する。算出対象グリッドが終了位置のグリッドであると判定された場合(S208−Yes)、算出部153は、起伏特徴量算出処理を終了する。
算出対象グリッドが終了位置のグリッドでないと判定された場合(S208−No)、算出部153は、算出対象グリッドを第2方向に移動させる(S209)。算出部153は、算出対象グリッドを第2方向に1グリッド分移動させるとともに、第1方向座標が初期位置と等しくなるように移動させる。算出部153は、移動された算出対象グリッドを中心とするウィンドウを設定する。
続いて、算出部153は、ウィンドウを第1方向に分割したグリッド群に含まれるグリッドの標高値の和及び二乗和を算出して記憶する(S210)。例えば、算出部153は、算出対象グリッドを中心とする第3のウィンドウを第1方向に分割した第2のグリッド群に含まれるグリッドの標高値の和及び二乗和を、第1のグリッド群に含まれるグリッドの標高値の和及び二乗和を用いて算出する。第1のグリッド群は、算出対象グリッドに第2方向に隣接し且つすでに起伏特徴量が算出されている第1のグリッドを中心とする第1のウィンドウを第1方向に分割したグリッド群である。算出部153は、第2のグリッド群に含まれるグリッドの標高値の和及び二乗和を、第1のグリッド群に含まれるグリッドの標高値の和及び二乗和と、第1のグリッド群に含まれ且つ第2のグリッド群に含まれないグリッドの標高値と、第1のグリッド群に含まれず且つ第2のグリッド群に含まれるグリッドの標高値とに基づいて算出して記憶する。
図6(b)は、S210について説明するための模式図である。図6(b)に示されるように、標高値の和及び二乗和が算出されている第1のグリッド群GG1に含まれるグリッドの一部と、移動後のウィンドウを第1方向に分割した第2のグリッド群GG2に含まれるグリッドの一部とは重複する。したがって、第2のグリッド群GG2の標高値の和及び二乗和を算出するときに第1のグリッド群GG1の標高値の和及び二乗和を用いることで、演算回数が低減される。
算出部153は、第2方向に連続するグリッドから構成される、すでに起伏特徴量が算出された第1のグリッドG1に第2方向に隣接する算出対象グリッドG3を中心とする第3のウィンドウW3を第1方向に分割した各第2のグリッド群GG2における標高値の和及び二乗和を算出する。算出部153は、各第2のグリッド群GG2における標高値の和Sum(x)及び二乗和SqSum(x)を、各第2のグリッド群GG2に対応する第1のグリッド群GG1の標高値の和Sum’(x)及び二乗和SqSum’(x)と、各第2のグリッド群GG2に対応する第1のグリッド群GG1に含まれ且つ各第2のグリッド群GG2に含まれないグリッドの標高値H1と、各第2のグリッド群GG2に対応する第1のグリッド群GG1に含まれず且つ各第2のグリッド群GG2に含まれるグリッドの標高値H2とに基づいて、以下の式により算出して記憶する。
続いて、算出部153は、処理をS203に進める。
図7は、各グリッドを、その標高値に応じて段階的に変化する色相、彩度又は明度で表示した段彩標高図の一例を示す図であり、図8は、図7に示す段彩標高図に対応する標高値テーブルT1のデータに基づいて、第1の側面における地形図出力処理を実行することにより生成された地形図の一例を示す図である。図8(a)及び図8(b)は、それぞれ異なる大きさを有するウィンドウを用いて生成された地形図であり、図8(a)におけるウィンドウの大きさは、図8(b)におけるウィンドウの大きさよりも小さい。
図7においては、標高値が大きい領域(例えば、尾根に相当する領域)が明るく表示され、標高値が小さい領域(例えば、谷に相当する領域)が暗く表示されている。また、図7においては、例えば、尾根に相当する領域の内部はほぼ一様の明度で表示されている。すなわち、図7に示される段彩標高図は、規模の大きい地形の起伏を表現しているものの、微地形による起伏を明確に表現できていない。
段彩標高図は、対象領域の標高値の分布幅の全体を限られた範囲の色相、彩度又は明度等で表示して表現するものである。対象領域が広範な場合、標高値の差が相対的に小さい領域は類似した色相、彩度又は明度等で表示され、その変化が不明瞭となる。したがって、段彩標高図では微地形が十分に表現されない可能性があった。
他方、図8(a)においては、例えば、尾根に相当する領域の内部も異なる明度で表示されており、微地形による起伏が十分に表現されている。図8(a)に示される起伏特徴量は、各グリッドの標高値と各グリッドを中心とするウィンドウの標高値の平均値との差分(すなわち、標高値の偏差)に基づいている。したがって、対象領域の標高値の分布幅が大きい場合でも、標高値の差が相対的に小さい領域が異なる色相、彩度又は明度等で表示され、微地形が明確に表現される。
また、起伏特徴量は、各グリッドの標高値の偏差を標準偏差で正規化したものである。したがって、対象領域に微地形による地形の起伏が大きい領域(すなわち、標高値の標準偏差が大きい領域)と地形の起伏が小さい領域(すなわち、標準偏差が小さい領域)とが含まれる場合でも、地形の起伏が小さい領域の微地形が十分に表現される。
また、段彩標高図においては、対象領域に応じて標高値の分布幅が異なるため、所望の規模の地形の起伏が十分に表現されるように、地形図の作成者がその分布幅に応じた表示の方法を決定する必要があった。これに対し、起伏特徴量は、標高値の偏差を標準偏差で正規化したものであるため、標高値が正規分布に従う場合、約99%のグリッドの起伏特徴量は−3以上3以下の範囲に分布する。したがって、標高値の分布幅が異なっても同一の表示の方法を用いることができ、地形図の作成者が表示の方法を決定する負荷が低減される。
図8(b)においては、標高値が大きい領域が明るく表示され、標高値が小さい領域が暗く表示されているとともに、図8(a)において表現されていた微地形も表現されている。すなわち、ウィンドウの大きさが大きくなったことにより、図8(a)では明確に表現されていない規模の大きい地形の起伏が明確に表現される。このように、起伏特徴量に基づく態様で各グリッドを表示することにより、ウィンドウの大きさを小さくした場合、対象領域における微地形の詳細が表現され、ウィンドウの大きさを大きくした場合、対象領域における地形の概略が表現される。
以上説明したように、地形図出力装置1は、各グリッドの標高値と、各グリッドを中心とするウィンドウに含まれるグリッドの標高値の平均値及び分散値を用いて各グリッドの起伏特徴量を算出する。これにより、地形図出力装置1は、微地形を表現する地形図を小さい演算負荷で生成することを可能とする。
すなわち、微地形を表現するための指標である地上開度及び地下開度は、角度によって算出されるため、その算出には三角関数等の演算を要する。したがって、各グリッドについて地上開度及び地下開度を用いる手法には、演算負荷が大きいという問題があった。また、LAC処理は、対象領域全体の標高値を考慮して微地形の起伏を強調するものである。したがって、段彩標高図等の既存の地形図にLAC処理を適用する手法には、対象領域が大きい場合に、対象領域全体の標高値の平均値、及び、LAC処理の適用後の標高値の分布幅を算出するための演算負荷が大きくなるという問題があった。
これに対し、地形図出力装置1は、各グリッドを中心とするウィンドウに含まれるグリッドの平均値と分散値を用いて各グリッドの起伏特徴量を算出する。すなわち、起伏特徴量を算出するために対象領域全体の起伏を考慮する必要がない。したがって、地形図出力装置1は、微地形を表現する地形図を小さい演算負荷で生成することを可能とする。
また、地形図出力装置1は、第1のグリッドに第1方向に隣接する第2のグリッドを中心とする第2のウィンドウにおける平均値及び分散値を、第1のウィンドウにおける平均値及び分散値を用いて算出する。これにより、地形図出力装置1は、ウィンドウの大きさにかかわらず、それぞれ一度の加算及び減算という小さい負荷の演算で平均値及び分散値を算出することを可能とする。
また、地形図出力装置1は、第1のグリッドに第2方向に隣接する第3のグリッドを中心とする第3のウィンドウを分割したグリッド群における平均値及び分散値を、第1のグリッドを中心とするウィンドウを分割したグリッド群における平均値及び分散値を用いて算出する。これにより、地形図出力装置1は、ウィンドウの大きさにかかわらず、それぞれ一度の加算及び減算という小さい負荷の演算でグリッド群に含まれるグリッドの標高値の和及び二乗和を算出することを可能とする。
なお、上述した説明では、S202及びS205において、算出部153は、ウィンドウを第1方向に分割したグリッド群の標高値の和及び二乗和をそれぞれ算出したが、このような例に限られない。算出部153は、S202において、ウィンドウに含まれるグリッドの第2方向座標の範囲に対応するグリッドから構成される全てのグリッド群の標高値の和及び二乗和を算出してもよい。この場合、算出部153は、S210においても同様に、ウィンドウに含まれるグリッドの第2方向座標の範囲に対応するグリッドから構成される全てのグリッド群の標高値の和及び二乗和を算出してもよい。
図9は、本発明の第2の側面において、地形図出力装置1によって実行される地形図出力処理の流れの一例を示すフロー図である。地形図出力処理は、記憶部11に記憶されたプログラムを実行した処理部15が、地形図出力装置1の各構成と協働することにより実現される。
まず、第1取得部151は、二以上のグリッドで構成されるウィンドウの大きさ及び形状を取得する(S301)。
続いて、第2取得部152は、各グリッドの起伏特徴量により強調される傾斜の方向を取得する(S302)。第2取得部152は、ユーザによる操作部14に対する操作に基づいて、強調される傾斜の方向を取得する。強調される傾斜の方向とは、かかる方向に向かって標高値が大きくなる場合に、そうでない場合よりも起伏特徴量が大きく算出される方向をいう。第2取得部152は、通信部12を介して、強調される傾斜の方向を他の装置から受信することにより取得してもよい。第2取得部152は、あらかじめ記憶部11に記憶された傾斜の方向を取得してもよい。
続いて、算出部153は、起伏特徴量算出処理を実行する(S303)。起伏特徴量算出処理の詳細は後述する。
続いて、出力部154は、算出された起伏特徴量に基づく態様で各グリッドを表示する地形図を出力する(S304)。
第2の側面における起伏特徴量算出処理は、第1の側面における起伏特徴量算出処理と、S203及びS206の処理において相違する。
図10は、第2の側面におけるS203及びS206の処理について説明するための模式図である。S203及びS206において、算出部153は、算出対象グリッドの起伏特徴量を、算出対象グリッドの位置とS302において取得された方向とに対応するグリッドの標高値と、算出対象グリッドを中心とするウィンドウに含まれるグリッドの標高値との関係に基づいて算出する。算出対象グリッドの位置と取得された方向とに対応するグリッドは、算出対象グリッドから見て取得された方向の反対方向に位置するグリッドである。
例えば、算出部153は、算出対象グリッドGを囲む8つのグリッドのうち、算出対象グリッドGから見て方向Dの反対方向に位置するグリッドを特定する。算出部153は、特定されたグリッドの標高値を、算出対象グリッドの位置と方向Dとに対応するグリッドの標高値H’として取得する。算出部153は、算出対象グリッドの起伏特徴量Rを、取得した標高値H’と、算出対象グリッドGを中心とするウィンドウの標高値との関係に基づいて算出する。例えば、算出部153は、算出対象グリッドの起伏特徴量Rを、取得した標高値H’と、算出対象グリッドGを中心とするウィンドウに含まれるグリッドの標高値の平均値μ及び分散値Vとを用いて、以下の式により算出する。
第2の側面において、起伏特徴量は、各グリッドの標高値に代えて、強調される傾斜の方向Dとは反対方向に位置するグリッドの標高値を用いて算出される。例えば、方向Dが北西方向である場合、起伏特徴量は、各グリッドの南東方向に位置するグリッドの標高値を用いて算出される。北西方向に向かって標高値が小さくなる領域では、各グリッドの南東方向に位置するグリッドの標高値を用いることで、各グリッド自体の標高値を用いる場合よりも大きくなるように起伏特徴量が算出される。他方、南東方向に向かって標高値が小さくなる領域では、各グリッドの南東方向に位置するグリッドの標高値を用いることで、各グリッドの標高値を用いる場合よりも小さくなるように起伏特徴量が算出される。したがって、起伏特徴量が大きい領域を明るく表示することにより、標高値が小さい領域側から投光した陰影図のような地形図が生成される。このように、方向Dとは反対方向に位置するグリッドの標高値を用いて起伏特徴量が算出されることで、特定方向の傾斜が強調され、利用者が直感的に理解しやすい態様で地形の起伏が表現される。
図11は、第2の側面における地形図出力処理を実行することによって出力された地形図の一例を示す図である。図11においては、北西方向に向かって標高値が小さくなる領域の起伏特徴量が大きく算出され、かかる領域が明るく彩色されている。したがって、図11においては、あたかも北西方向から投光した陰影図のように、利用者が直感的に理解しやすい態様で地形の起伏が表現されている。また、図11においては、図9(a)と同様に微地形が明確に表現されている。
以上説明したように、地形図出力装置1は、各グリッドの位置と強調される傾斜の方向とに対応するグリッドの標高値と、各グリッドを中心とするウィンドウに含まれるグリッドの標高値の平均値及び分散値を用いて各グリッドの起伏特徴量を算出する。これにより、地形図出力装置1は、特定方向の傾斜を強調する地形図を小さい演算負荷で生成することを可能とする。
なお、第2の側面における起伏特徴量算出処理は、上述した例に限られない。第2の側面における起伏特徴量算出処理の他の例は、第1の側面における起伏特徴量算出処理と、S203及びS206の処理において相違する。
図12は、S203及びS206の処理について説明するための模式図である。S203及びS206において、算出部153は、算出対象グリッドの標高値と、算出対象グリッドの位置とS302において取得された方向とに対応するグリッドを中心とするウィンドウに含まれるグリッドの標高値との関係に基づいて、算出対象グリッドの起伏特徴量を算出する。算出部153は、算出対象グリッドGを囲む8つのグリッドのうち、算出対象グリッドから見て方向Dに位置するグリッドG’を中心とするウィンドウW’を設定する。算出部153は、算出対象グリッドGの標高値と、ウィンドウW’における平均値及び分散値とを用いて、起伏特徴量を算出する。
この場合、起伏特徴量は、各グリッドに代えて、各グリッドから見て方向Dに位置するグリッドを中心とするウィンドウにおける平均値を用いて算出される。例えば、方向Dが北西方向である場合、起伏特徴量は、各グリッドの北西方向に位置するグリッドを中心とするウィンドウにおける平均値を用いて算出される。一般に、北西方向に向かって標高値が小さくなる領域では、各グリッドの北西方向に位置するグリッドを中心とするウィンドウにおける平均値は、各グリッドを中心とするウィンドウにおける平均値よりも小さくなる。したがって、各グリッドの北西方向に位置するグリッドを中心とするウィンドウを用いることで、各グリッドを中心とするウィンドウを用いる場合よりも起伏特徴量が大きく算出される。このように、方向Dに位置するグリッドを中心とするウィンドウの平均値を用いて起伏特徴量を算出することによっても、特定方向の傾斜が強調され、利用者が直感的に理解しやすい態様で地形の起伏が表現される。
なお、S203及びS206における、算出対象グリッドの位置と取得された方向とに対応するグリッドの例は、上述した例に限られない。例えば、算出部153は、算出対象グリッドの位置と取得された方向Dとに対応する複数のグリッドを特定してもよい。この場合、S203及びS206において、算出部153は、各グリッドの起伏特徴量を、各グリッドの位置と取得された方向に対応する複数のグリッドの標高値の重み付け和と、各グリッドを中心とし且つ取得された大きさを有するウィンドウに含まれるグリッドの標高値との関係に基づいて算出する。
図13(a)は、S203及びS206の処理の概要を説明するための模式図である。図13(a)に示す例では、方向Dとして北北西方向が取得されている。この場合、算出部153は、算出対象グリッドGから見て方向Dの反対方向に位置するグリッドとして、グリッドG1及びグリッドG2の2つのグリッドを特定する。算出部153は、特定したグリッドG1及びグリッドG2の標高値の重み付け和を算出する。標高値の重みは、算出対象グリッドから見て方向Dの反対方向に近い方向に位置するグリッドほど、その重みが大きくなるように設定される。図13(a)に示す例では、グリッドG1及びグリッドG2は算出対象グリッドGから見てそれぞれ南方向と南東方向に位置するから、方向Dの反対方向に同程度に近いといえる。したがって、算出部153は、グリッドG1の標高値とグリッドG2の標高値との相加平均を重み付け和として算出する。これにより、地形図出力装置1は、任意の方向の起伏を強調する地形図を小さい演算負荷で生成することを可能とする。
また、S302において、第2取得部152は、起伏特徴量において強調される傾斜度をさらに取得してもよい。この場合、S203及びS205において、算出部153は、各グリッドの起伏特徴量を、各グリッドの位置と取得された方向及び傾斜度とに対応する複数のグリッドの標高値の重み付け和と、各グリッドを中心とし且つ取得された大きさを有するウィンドウに含まれるグリッドの標高値との関係に基づいて算出する。
図13(b)は、S203及びS206の処理の概要を説明するための模式図である。図13(b)に示す例では、方向Dとして北西方向が取得されている。また、傾斜度Eとして、30度が取得されている。この場合、算出部153は、算出対象グリッドGから見て方向Dの反対方向に位置するグリッドとして、グリッドG1を特定する。算出部153は、算出対象グリッドGの標高値と特定されたグリッドG1の標高値との、傾斜度に応じた重みによる重み付け和を算出する。傾斜度と重みとの関係は、取得された傾斜度が小さいほど算出対象グリッドGの重みが大きくなり、傾斜度が大きいほど特定されたグリッドG1の重みが大きくなるようにあらかじめ設定される。
第2の側面において説明したように、各グリッドから見て特定の方向に位置するグリッドの標高値を用いて起伏特徴量を算出することで、地形図において特定の方向の傾斜が強調される。これは、陰影図において、仮想的な光源を特定の方位角及び仰角の方向に設定した場合に、特定の方向及び傾斜度の傾斜が強調されることに対応する。他方、第1の側面において説明したように、各グリッドの標高値を用いて起伏特徴量を算出した場合、地形図において特定の方向の傾斜が強調されることはない。これは、陰影図において、仮想的な光源を90度の仰角(すなわち、上方)に設定した場合に、特定の方向の傾斜が強調されないことに対応する。したがって、各グリッドの標高値と各グリッドから見て特定の方向に位置するグリッドの標高値との重み付け和を用いて起伏特徴量を算出することで、仮想的な光源の仰角が特定の仰角と90度の仰角との間となるような状態を表現することが可能となる。
なお、複数のグリッドの標高値を特定する例は、上述したものに限られない。例えば、算出部153は、算出対象グリッドを囲む8個のグリッドから3個以上のグリッドを特定してもよい。また、算出部153は、強調される起伏の傾斜度として基準傾斜度よりも大きい傾斜度を取得した場合は、算出対象グリッドを囲む8個のグリッドとは異なるグリッドを特定してもよい。
図14は、本発明の第3の側面において、地形図出力装置1によって実行される地形図出力処理の流れの一例を示すフロー図である。地形図出力処理は、記憶部11に記憶されたプログラムを実行した処理部15が、地形図出力装置1の各構成と協働することにより実現される。
まず、第1取得部151は、二以上のグリッドで構成される、それぞれ異なる複数のウィンドウの大きさ及び形状を取得する(S401)。
続いて、算出部153は、取得した複数のウィンドウの大きさ及び形状のうちから一のウィンドウの大きさ及び形状を選択する(S402)。
続いて、算出部153は、選択したウィンドウの大きさ及び形状を用いて起伏特徴量算出処理を実行する(S403)。
続いて、算出部153は、取得した全てのウィンドウの大きさ及び形状について起伏特徴量が算出されたか否かを判定する(S404)。取得した全てのウィンドウの大きさ及び形状について起伏特徴量が算出されていないと判定された場合(S404−No)、算出部153は、S402に戻り、取得した複数のウィンドウの大きさ及び形状のうちから、まだ選択されていない一のウィンドウの大きさ及び形状を選択する。
取得した全てのウィンドウの大きさ及び形状について起伏特徴量が算出されたと判定された場合(S404−Yes)、出力部154は、複数の大きさ及び形状を有するウィンドウのそれぞれについて算出された起伏特徴量に基づく態様で各グリッドを表示する地形図を出力する(S405)。出力部154は、例えば、各ウィンドウについて算出された起伏特徴量を加算した値に基づいて各グリッドを表示する地形図を出力する。
図15は、第3の側面における地形図出力処理を実行することによって出力された地形図の一例を示す図である。図15においては、尾根に相当する領域が明るく表示されているとともに、尾根に相当する領域の内部の微地形も十分に表現されている。すなわち、起伏特徴量は、各グリッドの標高値と各グリッドを中心とするウィンドウに含まれるグリッドの標高値との関係に基づいて算出されるため、ウィンドウの大きさに応じた規模の起伏が強調される。図15においては、複数の異なる大きさを有するウィンドウが用いられているため、規模の異なる地形の起伏をそれぞれ表現することが可能となる。
以上説明したように、地形図出力装置1は、各グリッドを中心とし且つそれぞれ異なる大きさを有する複数のウィンドウを用いて算出される複数の起伏特徴量に応じて各グリッドを表示する地形図を出力する。これにより、地形図出力装置1は、複数の縮尺における地形の起伏を表現する地形図を小さい演算負荷で生成することを可能とする。
なお、S405において、出力部154は、各ウィンドウについて算出された起伏特徴量を加算するものとしたが、このような例に限られない。例えば、出力部154は、起伏特徴量の重み付け和を算出してもよい。これにより、どのような規模の地形の起伏を強調するかを任意に変更することが可能となる。
また、上述した説明では、第2の側面及び第3の側面において、グリッドの標高値と、ウィンドウに含まれるグリッドの標高値の平均値及び分散値を用いて算出される起伏特徴量が用いられたが、このような例に限られない。グリッドの標高値と、ウィンドウに含まれるグリッドの標高値との関係に基づく起伏特徴量として、後述する傾斜特徴量算出処理によって算出される傾斜特徴量が用いられてもよい。この場合、S303及びS403において、算出部153は、起伏特徴量算出処理に代えて、傾斜特徴量算出処理を実行する。
図16は、傾斜特徴量算出処理の流れの一例を示すフロー図である。
まず、算出部153は、各グリッドの近似傾斜度を算出する(S601)。近似傾斜度は、各グリッドの傾斜度の近似値である。算出部153は、各グリッドの標高値と、各グリッドに隣接する8個の隣接グリッドの標高値とに基づいて各グリッドの近似傾斜度を算出する。
図17は、S601の処理について説明するための模式図である。図17(a)及び図17(b)に示されるように、算出対象グリッドG1と隣接グリッドG2とに接する傾斜面に対する単位法線ベクトルNの鉛直方向成分Nzは、その傾斜面の傾きに応じて異なる値をとる。したがって、鉛直方向成分Nzは、算出対象グリッドG1の隣接グリッドG2に対する傾斜度として用いられ得る。
ここで、単位法線ベクトルNと鉛直方向とがなす角θは、算出対象グリッドG1の標高値と隣接グリッドG2の標高値との差ΔHを用いて以下の式により表される。
したがって、算出対象グリッドG1の隣接グリッドG2に対する傾斜度Nzは以下の式により表される。
算出対象グリッドG1を囲む8個の隣接グリッドのそれぞれについて傾斜度Nzを算出することにより、算出対象グリッドG1の傾斜度を算出することができるが、この場合、8回の平方根の演算をする必要がある。演算負荷を低減するため、算出部153は、以下の式により算出対象グリッドの近似傾斜度Nz’を算出する。
ここで、E[|ΔH|]は、算出対象グリッドG1の標高値と隣接グリッドの標高値との差の絶対値を、8個の隣接グリッドについて平均した値である。このようにして、算出部153は、1回の平方根の演算で算出対象グリッドG1の近似傾斜度Nz’を算出する。
続いて、算出部153は、初期位置のグリッドを算出対象グリッドとして設定する(S602)。算出部153は、算出対象グリッドを中心とするウィンドウを設定する。
続いて、算出部153は、第2方向に連続するグリッドから構成される、ウィンドウを第1方向に分割したグリッド群における近似傾斜度の和を算出する(S603)。
続いて、算出部153は、算出対象グリッドの傾斜特徴量を算出する(S604)。傾斜特徴量は、ウィンドウに含まれるグリッドの近似傾斜度の平均値である。
続いて、算出部153は、算出対象グリッドを第1方向に移動させる(S605)。算出部153は、算出対象グリッドを第1方向にグリッド1個分移動させる。算出部153は、移動された算出対象グリッドを中心とするウィンドウを設定する。
続いて、算出部153は、直前に傾斜特徴量が算出された第1のグリッドを中心とする第1のウィンドウ及び算出対象グリッドを中心とする第2のウィンドウを第1方向に分割したグリッド群に含まれるグリッドの近似傾斜度の和を算出する(S606)。
続いて、算出部153は、算出対象グリッドの傾斜特徴量を算出する(S607)。算出部153は、直前に傾斜特徴量が算出されたグリッドの傾斜特徴量に、第1のウィンドウに含まれ且つ算出対象グリッドを中心とする第2のウィンドウに含まれないグリッドから構成されるグリッド群の近似傾斜度の和を加え、第1のウィンドウに含まれず且つ第2のウィンドウに含まれるグリッドから構成されるグリッド群の近似傾斜度の和を減ずることにより、算出対象グリッドの傾斜特徴量を算出する。
続いて、算出部153は、算出対象グリッドが折返し位置のグリッドであるか否かを判定する(S608)。算出対象グリッドが折返し位置のグリッドでないと判定された場合(S608−No)、算出部153は、処理をS605に進める。
算出対象グリッドが折返し位置のグリッドであると判定された場合(S608−Yes)、算出部153は、算出対象グリッドが終了位置のグリッドであるか否かを判定する。(S609)。算出対象グリッドが終了位置のグリッドであると判定された場合(S609−Yes)、算出部153は、処理を終了する。
算出対象グリッドが終了位置のグリッドでないと判定された場合(S609−No)、算出部153は、算出対象グリッドを第2方向に移動させる(S610)。算出部153は、算出対象グリッドを第2方向に1グリッド分移動させるとともに、第1方向座標が初期位置と等しくなるように移動させる。算出部153は、移動された算出対象グリッドを中心とするウィンドウを設定する。
続いて、算出部153は、第2方向に連続するグリッドから構成される、ウィンドウを第1方向に分割したグリッド群の近似傾斜度の和を算出する(S611)。算出部153は、傾斜特徴量が算出されている第1のグリッドに第2方向に隣接する第3のグリッドを中心とする第3のウィンドウを第1方向に分割した第2のグリッド群における近似傾斜度の和を算出する。算出部153は、第1のグリッドを中心とする第1のウィンドウを第1方向に分割した第1のグリッド群の近似傾斜度の和に、第1のグリッド群に含まれ且つ第2のグリッド群に含まれないグリッドの近似傾斜度を減算し、第1のグリッド群に含まれず且つ第2のグリッド群に含まれるグリッドの近似傾斜度を加算することにより、第2のグリッド群の近似傾斜度の和を算出する。続いて、算出部153は、処理をS604に進める。
このように、グリッドの標高値と、ウィンドウに含まれるグリッドの標高値との関係に基づく特徴量として傾斜特徴量を用いることで、地形図出力装置1は、傾斜を表現する地形図を小さい演算負荷で生成することを可能とする。なお、第2の側面及び第3の側面において、地形図出力装置1は、起伏特徴量として傾斜度や開度等を用いてもよい。
なお、第3の側面において、地形図出力装置1は、複数の大きさを有するウィンドウのそれぞれについて算出された起伏特徴量に基づいて各グリッドを表示する地形図を出力するものとしたが、出力される地形図はこのような例に限定されない。例えば、地形図出力装置1は、傾斜特徴量と、複数の大きさを有するウィンドウのそれぞれについて算出された起伏特徴量とに基づいて各グリッドを表示する地形図を出力してもよい。この場合、地形図出力装置1は、傾斜特徴量と複数の大きさを有するウィンドウのそれぞれについて算出された起伏特徴量とを加算した値に応じた色相、彩度、明度等により各グリッドを表示する地形図を出力する。
図18は、傾斜特徴量と、複数の大きさを有するウィンドウのそれぞれについて算出された起伏特徴量とに基づいて各グリッドを表示する地形図の一例を示す図である。図18においては、図15と同様に規模の大きい地形の起伏及び微地形が十分に表現されている。また、図18においては、傾斜特徴量をさらに用いることによって、地形の起伏が、その立体感が直感的に理解しやすい態様で表示されている。
このように、地形図出力装置1は、傾斜特徴量と各グリッドを中心とし且つそれぞれ異なる大きさを有する複数のウィンドウを用いて算出される複数の起伏特徴量とに応じて各グリッドを表示する地形図を出力する。これにより、地形図出力装置1は、広域的な起伏形状と局所的な起伏形状とを、その立体感が直感的に理解しやすい態様で表現する地形図を小さい演算負荷で生成することを可能とする。
なお、第3の側面において、地形図出力装置1は、傾斜特徴量及び複数の大きさを有するウィンドウのそれぞれについて算出された起伏特徴量に基づく態様で各グリッドを表示する地形図を出力するものとしたが、このような例に限られない。地形図出力装置1は、さらに標高値に基づいて各グリッドを表示する地形図を出力してもよい。例えば、地形図出力装置1は、傾斜特徴量に基づく地形図と起伏特徴量に基づく地形図とを加算合成した地形図に、標高値に基づく段彩標高図を乗算合成する。
傾斜特徴量に基づく地形図と起伏特徴量に基づく地形図との加算合成は、以下の式に基づいてなされる。ここで、I1は、傾斜特徴量に基づく地形図の各グリッドに対応する画素の輝度であり、I2は、起伏特徴量に基づく地形図の各グリッドに対応する画素の輝度であり、I3は、加算合成された地形図の各グリッドに対応する画素の輝度である。αは、加算合成の重みであり、0以上1以下の値をとる。
加算合成された地形図と標高値に基づく段彩標高図との乗算合成は、以下の式に基づいてなされる。ここで、I4は、段彩標高図の各グリッドに対応する画素の輝度であり、I5は、乗算合成された地形図の各グリッドに対応する画素の輝度である。Imaxは、各画素の輝度の最大値であり、色深度が8ビットである場合は255である。βは、乗算合成の重みであり、0以上1以下の値をとる。
なお、各画素が複数のチャネル(例えば、RGBの3チャネル)を有する場合は、各チャネルについて以上の式が適用される。
これにより、地形図出力装置1は、地形の高低を利用者が直感的に理解しやすい態様で表示することを可能とする。また、地形図出力装置1は、傾斜特徴量に代えて、傾斜度を用いてもよい。なお、傾斜特徴量、起伏特徴量及び標高値の合成は、上述の例に限られない。例えば、傾斜特徴量、起伏特徴量及び標高値を順次加算合成してもよく、順次乗算合成してもよい。また、起伏特徴量と標高値とを乗算合成した後に、その結果と傾斜特徴量とを加算合成してもよい。
上述した説明では、対象領域を格子状に区画した複数の地理的領域に対応するグリッドを用いるものとしたが、このような例に限られない。例えば、対象領域を六角形状に区画した複数の地理的領域に対応する単位領域が用いられてもよい。また、対象領域は、任意の所定の形状に区画されてもよい。
当業者は、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。例えば、上述した各部の処理は、本発明の範囲において、適宜に異なる順序で実行されてもよい。また、上述した実施形態及び変形例は、本発明の範囲において、適宜に組み合わせて実施されてもよい。