Nearest neighbor法

 
図 3.1: nearestneighborコマンドの近傍点サーチ方法
\begin{figure}\centering\epsfig{figure=eps/GMT_nearneighbor.eps}\end{figure}

 nearestneighborコマンドは簡単な"Nearest Neighbor"法による平均化を用いたグリッディングを実行します.この手法はもともとのデータ密度が十分高い場合に有効な方法です.nearestneighborは局所的手法です.つまり計算対象の点(ノード)の近くにある元データしか参照しません.もっと詳しく言うと,当該ノードを中心として探索範囲分の半径を描き,その円をn個の「セクタ」に分けたときに,各セクタで最も当該ノードに近い点を計算対象点とします(各セクタに少なくとも一つの点が入っていなければこのノードを計算しないという条件をつけることもできます).ノードにおける値の計算方法は,計算対象点のデータの重み付け平均となります.この重みは以下の式のように設定しています:

\begin{displaymath}
\bar{z} = \frac{\sum_{i=1}^{n} z_{i} w_{i}}{\sum_{i=1}^{n} w_{i}} \quad
w_{i} = 
\left( 1 + \frac{9 r_{i}^{2}}{R^{2}} \right) ^{-1} 
\end{displaymath}

このコマンドの重要なオプションを表3.2に示します:

表 3.2: nearestneighborコマンドで使われるオプション類
オプション 機能と意味
-Sradius[k] 探索円の半径を指定します.kをつけると単位はkmとなります(デフォルトではxの単位です)
-Eempty 値が計算できなかったグリッドに入れるデータ値を指定します.デフォルトではNaNです.
-Nsectors 探索円をいくつの「セクタ」に分けるか指定します.デフォルトでは4です.
-W 入力データの4列目が相対ウェイトであるとみなします.
 

 では,ファイルship.xyzのデータを用いてグリッディングをしてみます.このファイルにはバハ・カルフォルニアの海底地形データを船舶から測定したデータが入っています.これをグリッディングして5度×5度のデータファイルを作ります.まずはminmaxコマンドを用いて,このファイルの特性を表示させます:

% minmax ship.xyz
ship.xyz: N = 82970	<245/254.705>	<20/29.99131>	<-7708/-9>

 この結果をもとにして,データ作成範囲として適切なものを選ぶと,たとえば次のようになります:

% nearneighbor -R245/255/20/30 -I5m -S40k -Gship.grd -V ship.xyz

 こうしてGMT用に使えるグリッドデータファイル(ship.grd)が出来ましたので,このファイルを用いてコンターマップを作成することができます.例えば次の通りです:

% grdcontour ship.grd -JM6i -P -B2 -C250 -A1000 | ghostview -
Original Text by Dr. Paul Wessel
Translated by AGATASHI.