地理空間スクリプト

Web タイルセットを使用した画像の自動登録
TNTmips のジオリファレンス処理には自動登録 (Auto-Register) の機能があり、1 つの画像に対して同じ領域の参照画像を使って数百から数千のコントロールポイントを自動的に生成できます。( テクニカルガイド「ジオリファレンス：参照画像への自動登録 (Georeference: Auto-Register toReference Image)」を参照 )。これと同様の機能が TNT 地理空間スクリ
プト (SML) を使ったスクリプトを利用しても実現できます。マイクロイメージ社はこの機能を実演する 2 種類のサンプルスクリプトを提供しています。1 つは参照画像としてマイクロイメージ社のサイトにある Web タイルセットを使うもの ( 次ページに抜粋を掲載 )、もう 1 つは参照画像としてローカルの TNT プロジェクトファイル中のカラー合成ラスタを使うものです。
自動登録の設定と操作は IMAGE_PIPELINE_AUTOREGISTERクラスにカプセル化されています。このクラスのメンバを用いてスクリプト作成者は「初期精度」や「最大残差」などの自動登録に必要なパラメタの全てを設定できます。サンプルスク
リプト中のクラスの使用方法を示す概略図を下記に示していま
セ ル サ イ ズ 20m のす。マルチバンドの入力画像から参照画像と照合するバンド 1
SPOT4 画 像 ( カ ラ ー 赤 外 線バンドを使用 )。サンプル SML の自動つが選択され ( 図の右側 )、画像用パイプラインソースを作る
登 録 処 理 で コ ン ト ロ ー ル ポ イ ン ト を 生 成。
ために使われます。参照用画像に対してもパイプラインソース
参 照 画 像 は マ イ ク ロ イ メ ー ジ 社 サ イ ト に あ る 2010 年 サ ウ ス ダ コ タ 州が作られます。Web タイルセットを参照画像として使用する場
GM_BM Web タイルセットです ( 全米農業イメージプログラム (NAIP) のナチュラルカラー正射画像の郡データ )。
合、インターネット上の Web タイルセットの URL 文字列 ( ローカルの Web タイルセットの場合はファイルパス ) を使用してタイルセット用パイプラインソースが作られます。照合に使用するカラー成分を選別す
自動登録の設定：
るのに選択フィルタが使われます。ローカルのコンポジット画像を参照用に使う場合は、 入力画像と参照画像中の緑のスペクトル成分を照合照合に使用するカラーはパイプラインソース用のコンストラクタ内で直接指定できます
初期精度評価 = 20 セル生成するポイントの間隔 = 75 セル
ので、選択フィルタは必要ありません。その結果生じた入力画像と参照画像用のパイプ
最大ポイント残差 = 1.5 セル
ラインステージはパラメタとして AUTOREGISTER クラスの Run( ) メソッドへ送られま
相関領域サイズ = 128 セル
す。それは処理を実行し、メモリ内にコントロールポイントジオリファレンスを生成し最良適合モデル = 2 次多項式ます。その後 Save( ) メソッドを使用してこのジオリファレンスサブオブジェクトを入自動登録処理で 537 個のコントロールポイン力画像の各バンドに書き出します。
トを生成
自動登録サンプルスクリプトの処理概要

Web
タイルセットまたは自動登録する画像バンド
ローカ
ルの画像

ローカルの画像URL
タイルセット
パイプラインソース

選択フィルタ( 照合する色を選択 )パイプライン
ソース

パイプライン
ソース

照合する色を指定照合するバンドを入力

または自動登録
実行

ジオリファレンスを入力バンドに保存

参照画像

ジオリファレンス

SML での自動登録処理はイメージパイプライン構造体を使用しますが、完全なパイプライン操作ではありません。新しい " ターゲット "画像は作られず、リファレンス情報だけが作られます。

これらのサンプルスク
二乗平均平方根 (RMS) 残差：
リプトは TNT プロジェク
X = 0.36 セル、Y = 0.43 セル、XY = 0.56 セル( モデル = 平面投影 )トファイルにインポートされた 4 バンドのスポッ
平均絶対残差：ト衛星画像の自動登録処
X = 0.28 セル、Y = 0.32 セル
理用に設計されています。
しかし、これらのスクリプトは GeoTIFF や GeoJP2 のようなファイル形式の単一バンドやマルチバンド、カラーコンポジット画像を処理できるよう簡単に修正できます。また多数の入力画像を使ってバッチ処理を行うこともできます。
また、これらのスクリプトの自動登録設定は、面積やセルサイズ、形状が異なる入力画像に対しても適応することができます。ローカルの画像を参照する例では参照画像から読み込んだ座標参照系 (CRS)が自動登録処理と出力のジオリファレンスに用いられます。しかし、入力画像の CRS( 指定がない場合のデフォルト ) や他の CRS を使うことも可能です。自動登録処理をより一般的な画像処理スクリプトに統合し、出力画像の CRS へリサンプリングしたり、画像強調やその他の大量処理も行うことができます。

( 翻訳 ) 株式会社 オープン GIS 東京都墨田区吾妻橋 1-19-14 紀伊国屋ビル 1F
Tel: (03)3623-2851 Fax: (03)3623-3025 E-mail: info@opengis.co.jp( 次ページに続く )www.microimages.com/downloads/scripts.htm にはダウンロード可能な多くのサンプルスクリプトがあり、スクリプトやクエリーで TNT 製品のスク
リプト言語の特徴をどのように利用したらよいか解説しています。

AutoRegisterSPOT4bandWebTilesetRef.sml( 自動登録の参照画像としてインターネット上の Web タイルセットを使用しています )numeric err;

自動登録クラスのパラメータを設定。座標参照系は入力画像から自動的に設定されます

エラーチェック処理

proc ReportError(numeric linenum, numeric err) {printf("FAILED -line: %d, error: %d\n", linenum - 1, err);
PopupError(err);}
clear();
コンソールをクリア

print("Setting up auto-register...");
statusC.Message = "Setting up auto-register...";
class IMAGE_PIPELINE_AUTOREGISTER autoReg;
autoReg.SetAutoGenerateGCPs(1);コントロールポイントの自動生成の設定

autoReg.SetModel("PlaneProjective");

初期モデルの設定

autoReg.SetUseExistingGCPs(0, 0);

既存のコントロールポイントは使用しない ( 処理終了時に削除 )autoReg.SetInitialAccuracy(20);初期精度 = 20 セル

DlgGetObjects(prompt$, "Raster", inpObjItemList, "ExistingOnly");

autoReg.SetGCPSpacing(100);

ポイントの間隔 = 100 セル

numeric i;
ObjItem ハッシュをチェック
for i = 1 to inpObjItemList.GetNumItems(){
printf("Band %d = %s\n", i, inpObjItemList[i].GetObjectPath() );}autoReg.SetMaxGCPResidual(2);最大残差 = 2 セル

autoReg.SetCorrPatchSize(128);

相関領域サイズ = 128 セル

自動登録する画像バンドを選択

class STRING prompt$;
prompt$ = "Choose 4 SPOT MS bands:";
class RVC_OBJITEM inpObjItemList[];numeric numBands;

選択したラスタオブジェクト
用の RVC_OBJITEM のハッシュ

参照画像に使う Web タイルセットの URL を得る

ステータスダイアログとそのコンテキストを作成
プロセス状態を表示するためのステータスダイアログ
ステータスダイアログ用コンテキスト

自動登録に使用する入力画像の単一バンド用のパイプラインソースを作成。
ObjItemList の一次元インデックスによって 3 = Band、3 = green を指定

class IMAGE_PIPELINE_SOURCE_RVC inpSource(inpObjItemList[3]);err = inpSource.Initialize();if (err < 0) then ReportError(_context.CurrentLineNum, err);
else print("input source initialized");参 照 Web タ イ ル セ ッ ト 画 像 ( ナ チ ュ ラ ル カ
ラー合成 ) 用のパイプラインソースを作成

class IMAGE_PIPELINE_SOURCE_TILESET refTileset(url$);err = refTileset.Initialize();if (err < 0) then ReportError(_context.CurrentLineNum, err);
else print("reference source initialized");print("Parameters set, starting auto-register");
statusC.Message = "Running auto-register...";
autoReg.Run(inpSource, refSource);
自動登録クラスより 2 乗平均平方根 (RMS)XY 残差と結果モデルを得る

numeric resultRMS;
class STRING resultModel;
resultRMS = autoReg.GetResultRMSResidual();resultModel = autoReg.GetResultModel();printf("Result residual = %.2f\n", resultRMS);
printf("Result model = %s\n", resultModel);コントロールポイント全体の 2 乗平均平方根をチェックし、処理が終われば全ての入力のジオリファレンスを保存する

if (resultRMS <= 1.5){
print("residual less than cut-off, saving result");
for i = 1 to inpObjItemList.GetNumItems(){
autoReg.SaveGeoreference(inpObjItemList[i]);printf("saved georeference for input %d\n", i);}}
最後のステータスダイアログメッセージを設定し、ダイアログを閉じる

statusC.Message = "Script Ran to Completion";statusD.Destroy();

参照タイルセットの緑のバンドを選別するフィルタ

array numeric srcSamples[1];srcSamples[1] = 2;

最良適合モデルを設定

自動登録を実行class STRING url$, default$;
default$ = "http://www.microimages.com/geodata/kappa/SD2010 GM state/
SD2010 GM state.tsd";
prompt$ = "Enter or paste URL of web tileset reference:";url$ = PopupString(prompt$, default$, "Web Tileset URL");

class STATUSDIALOG statusD;
statusD.Create();class STATUSCONTEXT statusC;
statusC = statusD.CreateContext();

autoReg.SetMaxModel("PolynomialOrder2");

緑のバンドへのインデックス

class IMAGE_PIPELINE_FILTER_SELECT refTilesetGreen(refTileset,srcSamples, 1);
err = refTilesetGreen.Initialize();if (err < 0) then ReportError(_context.CurrentLineNum, err);
else print("select filter for reference tileset initialized");print("Done");AutoRegisterSPOT4band.sml ではプロジェクトファイル内のローカルのカラー合成画像を参照画像として使用しています。

( 翻訳 ) 株式会社 オープン GIS 東京都墨田区吾妻橋 1-19-14 紀伊国屋ビル 1F
Tel: (03)3623-2851 Fax: (03)3623-3025 E-mail: info@opengis.co.jp