ジ
オ
フ
ォ
ー
ミ
ュ
ラ
を
使
う

TNT 入門ジオフォーミュラを使う

TNTmips®
TNTedit®
TNTview™

ジオフォーミュラを使う

はじめに
本書は、TNTmips®、TNTedit™、TNTview® においてジオフォーミュラを使用するための技法を紹介し ています。表示処理の際に、TNTプロジェクトファイルの地理空間オブジェクトを動的に組み合わせて、デー
タ融合効果を実現することができます。本書では、Display / Spatial Data（表示／空間データ）処理やProcess / GeoFormula（解析処理／串刺し演算機能（ジオフォーミュラ））処理における基本的なジオフォー
ミュラのツールについて紹介します。
必須基礎知識本書では、読者が TNT 入門『地理空間データ表示』および『システムの基本操作』の例題を完了しているものと仮定しています。これらの例題では、プロジェクトファイルに格納されたオブジェク
トの選択や表示および、TNTmips 内での移動操作に関する必須知識と基本的な技法を紹介しています。必要に応じ、これらの TNT 入門シリーズのマニュアルや TNTmips リファレンスマニュアルで調べてください。また、ジオフォーミュラの作成には SML の文法を使用しますので、TNT 入門『SML を使ってスクリプ
トを書く』の例題も済ませておいた方が良いでしょう。
サンプルデータ

本書の例題では、TNT 製品に添付されているサンプルデータを使用します。TNT 製品のCDにアクセスできない場合は、
マイクロイメージ社のウェブサイトからデータをダウンロードすることができます。本書では特に、CB̲DATA および GEOFRMLA というデータ集に含まれているオブジェクトを使用します。これらのファイルの読み書き用のコピーをハードディスクドライブ上に作成してください。CDROM 上の読み込み専用のサンプルデータに対して直接操作を行うと問題が発生する場合があります。
その他の資料 本書では、ジオフォーミュラを使ったデータ融合に関する概要しか説明しておりません。
詳
細はTNTmipsリファレンスマニュアルの２次元表示や個別のジオフォーミュラ処理の項を参照してください。
TNTmips と TNTlite®

TNTmips には 2 つのバージョンがあります。プロフェッショナルバージョンと、

無料バージョンである TNTlite です。本書では、どちらのバージョンも「TNTmips」と呼ぶことにします。
プロフェッショナルバージョンにはハードウェア・キーが必要です。このキーがない場合、TNTmips は
TNTlite モードで動作し、使用できるオブジェクトのサイズに制限があります。
ジオフォーミュラ機能は、TNTedit や TNTview でも使用できます。TNTlite においても、提供されるサンプ
ルの地理データを使用して本書の例題を実行することができます。
Keith Ghormeley、2004 年 1 月 2 日

本書の一部のイラストでは、カラーコピーでないと重要な点がわかりにくい場合があります。マイクロイメージ社のウェブサイトから本書を入手されれば、カラーで印刷したり表示できます。また、このウェ
ブサイトからは、その他のテーマに関する『TNT 入門』シリーズの最新マニュアルも入手できます。また、インストールガイド、サンプルデータ、および最新バージョンの TNTlite をダウンロードできます。
アクセス先は次の通りです。
http://www.microimages.com

Page 2

ジオフォーミュラを使う

ジオフォーミュラの概要
ジオフォーミュラは、計算によって表示を行うレイヤーであり、1 つまたは複数の入力オブジェクトを使用して表示用の結果を求めます。

複数の入力オブジェクトを参照するジオ

ジオフォーミュラは、別途処理を実行しないで、その場でオブジェク

フォーミュラから、1 つまたは複数の表

トを組み合わせて出力オブジェクトを計算し、表示します。ジオ

示レイヤーを動的に計算することができ

フォーミュラは、仮想オブジェクトを含む動ます。

的な表示レイヤーです。ジオフォーミュラ・
レイヤーはプロジェクトファイルに保存されるような出力オブジェクトを生成しません。
生成するのは、表示レイヤーであり、終了す
るとこのレイヤーに対する（ディスク領域やメモリなどの）すべてのシステム・リソースは解放されます。
たとえば、ラスタ画像の赤と赤外線のバンドを組み合わせて Transformed Vegetation
Index（変換植生指標：TVI）を生成できます。
もちろん TNTmips には、他の用途のために
TVI 出力を保存したい場合に、選択した入力
オブジェクトからTVIの出力ラスタオブジェ
クトを生成する簡単な処理が用意されています。しかし単にTVIの結果を見たいだけで、出力オブジェクトを保存しなくてもよい場合は、
ジオフォーミュラの表ジオフォーミュラによる表示レイヤー

示レイヤーを使用するのがよいでしょう。
（6 ページの例題に TVI ジ

は、その場でファイルにアクセスし、複オフォーミュラ・スクリプトが示されています）。

数オブジェクトの演算を行います。処理の負荷により表示時間が遅くなるので、ジオフォーミュラ・スクリプトは、再使用可能なファイルとして保存

他のレイヤーの表示にくらべてまどろこすることができます。TNTmips の表示処理においてジオフォーミュ

しく思われるでしょう。

ラ・レイヤーを他の任意の数のレイヤーと組み合わせて、多数の地理
空間オブジェクトによる複雑な表示を行うことができます。

4、5ページでは、1 つのオブジェクトからなる簡単なジオフォーミュラについて

ジオフォーミュラは、
基本的に表示処理において動的な可視化機能を説明しています。6〜12ページでは、複提供するためにあります。また、別のジオフォーミュラ処理である数のラスタを使用したスクリプトをいく

Process / GeoFormula メニューを実行して、出力オブジェクトを生つか示しています。13〜15ページの例

成し、他の用途に使用することもできます（18 ページ参照）。

題では、1 つのジオフォーミュラの中でラスタとベクタの両方のオブジェクトを組み合わせる方法を示しています。

Page 3

ジオフォーミュラを使う

単純なジオフォーミュラ
ステップ
New 2D Group(2 次元
グループの新規作成)を開きます。
Group Controls（グループコ
ントロール）ウィンドウにおいて、Add Geoformula （ジオフォーミュラの追加）アイコンの下のメニューにある A d d
G e o F o r m u l a L a y e r（ジオフォーミュラレイヤーの追加）を選択します。
GeoFormula Layer Controls（串刺し演算式（ジオフォーミュラ）レイヤーコントロール）ダ
イアログの Formula / New（フォーミュラ／新規作成）を選びます。
Select Objects（オブジェク
ト を 選 択 ）ダ イ ア ロ グ で 、CB̲DATA / CB̲TM / TM̲5を選択します。
Objects（オブジェクト）タブのShow Details（詳細表示）ト
グルをクリックし、コントラス
トに対して Auto Normalize（自動正規化）を選択します。
Script（スクリプト）タブを選択し、TM̲5 と入力します。
Output（出力）タブを選択し、Type（タイプ）をGrayscale（グレースケール）に変更します。
［OK］をクリックして、
GeoFormula Layer
Controls ダイアログを閉じます。
Verify（確認）ダイアログで変更
内容を保存するか聞いてきます
ので、［NO］をクリックします。

Display（表示）処理の Group Controls（グループコントロール）ウィ
ンドウで他の表示レイヤーを追加するのと同様に、ジオフォーミュラ
レイヤーを追加します。Add GeoFormula（ジオフォーミュラ・レイ
ヤーを追加）アイコンボタンをクリックして GeoFormula Layer
Controls（ジオフォーミュラ・レイヤー・コントロール）ダイアログを開きます。
GeoFormula Layer Controlsダイアログでは、ジオフォーミ ュ ラ を 新 し く 作 成 し た り 、既 存 の も の を 開 い た り で き ま す 。
Formula（フォーミュラ）メニューから New（新規作成）を選択します。ジオフォーミュラは少なくとも1個のジオリファレンス処理されたオブジェクトを参照する必要があるため、この処理では、標準のSelect Objects（オブジェクトを選択）ダイアログで 1 つまたは複数の入力オブジェクトを選択するよう要求してきます。CB̲DATA デー
タコレクション中の CB̲TM プロジェクトファイルから TM̲5 ラスタ
オブジェクトを選択します。
［OK］をクリックして、Select Objects（オブジェクトを選択）ダイアログを閉じます。
このスクリプトでは単純に、TM̲5 ラスタオブジェクトの未修正の値をグレースケールで表示します。Object（オブジェクト）、Script（スクリプト）、Output（出力）タブを順番に選択し、下図のように変更します。最後の変更を行ってから［OK］をクリックすると、GeoFormula
Layer Controls（串刺し演算式（ジオフォーミュラ）レイヤーコント
ロール）ダイアログが閉じ、ジオフォーミュラ・レイヤーが表示されます。

Script（スクリプト）タブでは、非常に単純なジオフォーミュラ式として、
TM̲5の未修正の値を使用します。

Output（出力）タ
ブで、出力タイプ
を GrayScale（グレースケール）に変更します。

Objects（オブジェクト）タブには入力オブジェク
ト TM̲5 が表示されます。Show Details（詳細表示）トグルボタンをオンにし、Contrast（コントラスト）メニューから Auto Normalize（自動正規化）を選択します。

Page 4

ジオフォーミュラを使う

Insert Symbol(記号を挿入)を使う
次にジオフォーミュラ・コントロールを調べるため、もう少し複雑なスクリプトを作成してみます。Group Controls（グループコ
ントロール）ウィンドウのレイヤーリストの GeoFormula アイコンボタンをクリック

GeoFormula アイコンボタンを押すと、GeoFormula Layer Controls
ダイアログを開きます。

して、GeoFormula Layer Controls ウィンド
ウを開きます。4 ページの例題の Formula /New（フォーミュラ／新規作成）から始まるステップを繰り返して新しいジオフォー
ミュラを作成し、同じ入力ラスタオブジェクト TM̲5 を選択します。
Objects（オブジェクト）タブの contrast（コントラスト）を Auto
Normalize（自動正規化）に設定し、Output（出力）タブの output type
（出力タイプ）をGrayscale（グレースケール）にします。
Script（スクリプト）タブで、Insert（挿入）メニューから Symbol（記号）を選択して Insert Symbol（記ステップ
前の例題のステップを繰り返し、
CB̲TM / TM̲5 入力を使用した新しいスクリプトを作成します。
Insert / Symbol（挿入／記号）を選択します。
Numeric（数値）記号リストから TM_5_Value を挿入します。
スクリプトを編集して、記号リストからTM_5_Xを選択し、図のように式を完成させます。

号を挿入）
ダイアログを開きます。
Insert Symbol ダイアログで Type（タイプ）を Numeric（数値）に変出力値に TM_5_X/4 を追加すると、ぼか更します。この処理では、入力オ

し効果が得られ、X 座標値が大きくなる

ブジェクト TM̲5 で使用可能な数ほど表示の輝度が高くなります。

値変数のリストが自動的に表示されます。TM_5_Value を選択し、［Insert］（挿入）をクリックします。Script（スクリプト）パネルにカーソルを移動し、TM_5_Valueの後にプラス演算子（+）を入力します。Insert Symbolダイアログに戻ると変数TM_5_Xが得られます。Script タブに戻って /4 と入力し、式を完成させます。完成したジオフォーミュラは次のようになるはずです。
TM_5_Value + TM_5_X / 4［OK］をクリックして GeoFormula Layer Controls ダイアロ
グを閉じ、結果を見ます。

変数 TM_5_Value は処理された値です。すなわち、セル値は、選択したコントラストテーブルにより表示用に調節されています。
（前の例題で使用された）TM̲5 の値は生の入力セル値であり、選択したコントラストテーブルによって影響は受けていません。

Page 5

ジオフォーミュラを使う

2 バンドによる植生指標
gsf（GeoSpatial Formula）ファイル

Display（表示)処理におけるジオフォーミュラの強力な点は、
複数のは、ジオフォーミュラで使用されるパ入力オブジェクトに対する処理をその場で、即座に行えることでラメータと定義が含まれたテキスト
ファイルです。GeoFormula Layer
Controls ダイアログで行った変更は自動的に記録されます。
ステップ

す。
たとえば、
（近赤外と赤のスペクトルバンドから計算される植物の活性度を示す）TVI(Transformed Vegetation Index：変換植生指標）の結果を表示するには、
Process / Raster / Combine / Predefined（解析処理／ラスタ／組み合わせ／一般演算式）処理を実行し、入力
オブジェクトを選択し、出力ラスタを作成し、結果を表示します。

GeoFormula Layer

これに対し、ジオフォーミュラ機能を使用すると、ラスタオブジェ

Controls ダイアログ

クトを個別の処理で生成しなくても、動的に仮想オブジェクトとしの、Formula / Open
（フォーミュラ／開く）を選択します。

て TVI の結果を表示することができます。

GEOFRMLA / TVI.GSF を選択しミュラ）メニューから Open（開く）を選択します。オブジェクト選ます。
CB̲TM プロジェクトファイル

から PHOTO̲IR と RED を選択します。
背景の色が透けて見える場合
は、GeoFormula Layer
Controls の Output（出力）タブの Null Cell transparent(ヌルセルを透明にする)トグル
をオフにして下さい。

GeoFormula Layer Controls ダイアログを開き、Formula（フォー択ダイアログを使用して TVI.GSF スクリプトを選択します。スクリ
プトが開かれ、オブジェクト選択ダイアログが開き、スクリプトに必要な入力オブジェクトを聞いてきますので、
CB̲TMプロジェクト
ファイルから PHOTO̲IR と RED を選択します。

TVI.GSF スクリプトは、倍率 100 で TVI 値を拡大します。表示が暗過ぎる場合は、スクリプトを編集して倍率を大きくします。

グレースケールの出力タイプは 8ビットのデータ範囲（0 〜 255）を想定しています。表示する値が8 ビットグレースケールの適当な範囲に入るように、スクリプト中の表現式を調整します。

CB̲TM から PHOTO̲IR と RED を選択します。

Page 6

ジオフォーミュラを使う

カラーの表示これまでの例題においてジオフォーミュラ・スクリプトはグレース
ケール表示用の数値が得られる簡単な式でした。
出力タイプがグレースケールである場合、数値式は8ビット・グレースケール表示の輝度として直接使用されます。
（グレースケールのジオフォーミュラ値は
常に 0 〜 255 の範囲に入るように正規化します）。
出 力 タ イ プ を カ ラ ー に 変 更 し た 場 合 、3 つ の カ ラ ー 成 分 変 数 :Output̲Blue、Output̲Green、Output̲Red が自動的に生成されます。
カラーの出力を行うには、スクリプトで各出力成分変数に8ビットの値を割り当てる必要があります。
単純な場合として、
GeoFormula Layer Controlsダイアログを開いて、Formula / New（フォーミュラ／新規作成）を選択します。CB̲TM プ
ロジェクトファイルから RED、GREEN、BLUE を入力オブジェクトとして選択し、
各オブジェクトのコントラストに対してAuto Normalize（自動正規化）を選択します。Output（出力）タブで Type（タイプ）として Color（カラー）を選択します。Script（スクリプト）タブで次のステップ
GeoFormula Layer
Controls ダイアログを開いて、Formula / New（フォーミュラ／新規作成）を選択します。
CB̲TM プロジェクトファイルから RED、GREEN、BLUE を選択します。
コントラストとして A u t oNormalize（自動正規化）を、Output Type（出力タイプ）として Color（カラー）を選択します。
図のようなスクリプトを入力します。
次に示す単純なスクリプトでは、表示処理での直接的な RGB カラー表示と同じ
表示結果が得られます。

ようなスクリプトを入力します（リストから記号を選択するには Insert Symbol（記号を挿入）ダイ
アログを使用します）。
O u t p u t タブの T y p e に応じてInsert Symbol リストの項目は自動的に調整されます。

大文字と小文字は区別されますので、図の通り正確に大文字と小文字を区別してスクリプトを入力してください。

Page 7

ジオフォーミュラを使う

コンポジットカラーのバンド比率ステップ
GeoFormula Layer
Controlsダイアログを開きます。

前の例題では、簡単な入力値と式をジオフォーミュラの RGB カラー
成分に割り当てる方法を示しました。もう少し複雑な例として、計算値を RGB カラー成分に使用してみます。

Formula / Open（フォーミュ

画像処理の入門コースなどでNormalized Difference（正規化差分）バラ／開く）を選択し、さらに
GEOFRMLA/NDTMRGB.GSF を選択します。

ンド比については理解されていると思います（正規化差分比について

入力としてCB̲TM プロジェクトで行ったTVIの例と同様、グレースケール表示用に使用することがでファイルを選択します。

きます。この例題では、3 つの比率で 6 つのバンドを使用して RGB 成

入力オブジェクトを聞いてきま分による表示を行うための値を求めます。CB̲TM プロジェクトファ

すので、BLUE、RED、PHOTO̲IR、
TM̲5、TM̲7 を選択します。
［O K ］をクリックして、オブジェクト選択ダイアログを閉じます。

の簡単な説明は、TNT入門『ラスタの組み合わせ演算』を参照してください）。2つのバンドの正規化差分比率から得られる値は、6ページ

イル内の TM 画像を組み合わせて各カラー成分を定義します。RED:
TM-5/TM-7 は、露出している土壌を明るく、緑色の植生を暗く表示します。GREEN:RED/BLUE は、鉄分を斑点状に含む土壌を明るく、緑色の植生を暗く表示します。Blue:PHOTO̲IR/RED は植生を明るく表示します。

［ O K ］を ク リ ッ ク し て G e oFormula / Open（フォーミュラ／開く）を使用して NDTMRGB.GSF を

Formula Layer Controlsダイ

選択し、プロンプトに従って CB̲TM から TM バンドを選択します。

アログを閉じます。

スクリプト NDTMRGB.GSF の結果では、植生のない部分は明るい緑から黄色の値で表示されます。穀物の生育状態が良好な畑は暗い青で、草の多い牧草地
や休閑中の畑はピンクから茶色で表示されます。

Page 8

ジオフォーミュラを使う

Brovey ジオフォーミュラを開く
もっと複雑に色を使用する例として Brovey 変換があります。これは高解像度のグレースケール画像を利用して低解像度のカラー画像の画質を向上させます。GeoFormula Layer Controlsダイアログを開き、Formula / Open（フォーミュラ／開く）を選択し、GEOFRMLA データ

ステップ
GeoFormula Layer
Controls ウィンドウを開きます。
GeoFormula Layer Controls

中の BROVEY1.GSF を選択します。
BROVEY1.GSF では、１つの高解像度グレースケール画像バンドを使用して低解像度画像の 3 色成分バンド表示の画質を向上させます。

ウィンドウでFormula / Open
（フォーミュラ／開く）を選択します。
標準のオブジェクト選択を使CB̲TM プロジェクトファイル中のサンプルデータは解像度 30m の用して GEOFRMLA / BROVEY1

TM 画像７バンドを含みます。CB̲SPOT プロジェクトファイルには.GSF を選択します。

解像度 10m の SPOT 画像を 1 バンド含んでいます。ジオフォーミュ

入力として CB̲TM プロジェク

ラはTM とSPOTを組み合わせて、カラーTM データに対して 10m解像度の合成画像を作ります。

トファイルを選択し、入力オブジェクトとして PHOTO̲IR、
RED、GREEN を選択します。

RED、GREEN、BLUE の入力用に、CB̲TM プロジェクトファイルから

HIGHRES 入力オブジェクトとP H O T O ̲ I R 、R E D 、G R E E N を選択します。H I G H R E S 入力用にはして CB̲SPOT / SPOT̲PAN を選択します。

CB̲SPOT / SPOT̲PAN を選択します。

Preview（プレビュー）タブを大きな入力オブジェクトを使用する
複雑なスクリプトでは、全体描画を行うとスピードが遅くなります。
Preview（プレビュー）タブでは、小さいですが、高速に描画します。

選択し、描画を行います。

頂点を挿入
Preview パネ
・マウスを 1 回クリック
ルにカーソル＋ / −キーでを お ・クリックした点に新しい頂点を挿入します
い て 、
拡大、縮小し・1 つのセグメントが 2 つになります
ズームボックます。
スを描きます。
初期設定では、ジオフォーミュラ処理は入力オブジェクトの空間的な範囲が異なる場合、重合部分だけを処理します。
従って、CB̲SPOTの狭い方の領域に表示が限られ、CB̲TM の全体は表示されません。

Page 9ジオフォーミュラを使う

Brovey ジオフォーミュラの結果
Brovey の式は非常に単純です。
（TM バ

Display（表示）処理は BROVEY1.GSF ジオフォーミュラ・レイヤーを

ンド4、3、2のように）バンドB5、B4、Group View（グループ表示）ウィンドウに描画します。通常のズーム

B2の RGB表示を（SPOT などの）バン

や位値決めツールを使用して表示した画像をチェックします。
比較のド S1 を使って画質を鮮明にします。
式は次のようになります。
R=B5/(B5+B4+B2)*S1

ため、２つ目のグループ表示ウィンドウを開き、同じ 3 つの TM 入力
画像を RGB ラスタレイヤーとして追加し、表示結果を比較します。
下図のように、そのままの RGB 画像（右）に比べて Brovey ジオ

R=B4/(B5+B4+B2)*S1

フォーミュラによる表示（左）では、地形の細部の画質が大幅に改善

R=B2/(B5+B4+B2)*S1

されています。

下図に BROVEY1 スクリプトが示されてBrovey 変換では 2 つのことを行います。まず第 1 に、表示するバンド

いますが、単純な代数式と、（表示輝度をを、表示するすべてのバンドの和で割ることでデータを正規化してい向上させるための）倍率の掛け合わせがます。第2に、正規化された結果に高解像度データを掛けることで画行われています。

像をシャープにします。TNTmips のジオフォーミュラでは、表示輝度を高めるため倍率を掛ける処理も行っています。

Brovey ジオフォーミュラは、低解像度の TM 画像からカラー情報を取り出し、高解像度の SPOT 画像から地形の詳細情報を取り出し、疑似的な高解像度によるカラー画像を自動的に表示します。左：Brovey の結果、右：TM/SPOT 入力。

Page 10

ジオフォーミュラを使う

バンド比による Brovey の強調
この学習段階での最後の例題として、8ページの例題のバンド比の計

ステップ

算と 9、10 ページの Brovey 解像度強調処理を組み合わせて、より複

GeoFormula Layer

雑なジオフォーミュラ・レイヤーを作成し、その強力な機能をお見せControls ダイアログを
開きます。

します。

Formula / Open（フォーミュ
ラ／開く）を選択し、GEOFRMLA

Formula / Open（フォーミュラ／開く）を使用して NDRATBRV.GSF/ NDRATBRV.GSFを選択します。

を選択し、プロンプトに従って CB̲TM.RVC から TM バンドを選択し

CB̲TMプロジェクトファイルかます。このスクリプトは、低解像度の TM バンドに対して TM5 /ら BLUE、RED、PHOTO̲IR、TM̲5、

TM7、TM3 / TM1、TM4 / TM3 の各比を適用し、その結果に SPOT
画像を掛けて高解像度の画像を作成します。

TM̲7 を選択します。
CB̲SPOT から SPOT̲PAN を選択します。
［OK］をクリックしてオブジェ

基本的な Brovey ジオフォーミュラ（10 ページ）とバンド比のジオ
フォーミュラ（8 ページ）のスクリプトを見て、この 2 つがどのように組み合わせられているか、確認してください。最初の 3 行はN D R G B . G S F にわずかな修正を加えたものであり、最後の 4 行はBROVEY1.GSF のものです。
同じ方法で、

単純なスクリプトからさまざまな複雑なジオフォーミュラを作成することができます。
賢いユーザは単純なスクリプ
トを使ってジオフォーミュラの要素的なスクリプトをテストしてから、複雑なスクリプトの中でこれらを使用します。

NDRATBRV.GSF スクリプトは、低解像度の TM
バンドでの Normalized Difference（正規化差分）比率計算と、高解像度SPOT 画像を使った Brovey 解像度強調とを組み合わせます。結果として、SPOTの解像度情報によりシャープになった TM のスペクトル情報が表示されます。

Page 11

クト選択ダイアログを閉じます。
［OK］をクリックして GeoFormula Layer Controls ダ
イアログを閉じます。

ジオフォーミュラを使う

彩度ストレッチ
ジオフォーミュラ・レイヤーを使って、色変換処理を適用することがステップ
GeoFormula Layer
Controls ダイアログを開きます。
Formula / Open（フォーミュ
ラ／開く）を選択し、
GEOFRMLA / STRETCH2.GSF を選択します。
入力として C B ̲ T M から R E D 、GREEN、BLUE を選択します。
［OK］をクリックしてオブジェ
クト選択ダイアログを閉じます。
［OK］をクリックして GeoFormula Layer Controls ダ
イアログを閉じます。

できます。この例では、入力の RGB 成分がこれと等価な HIS（Hue Intensity - Saturation：色相 - 輝度 - 彩度）値に変換されます。続いて彩度値に対して対数関数的なコントラストのストレッチが適用され、HIS 成分が RGB 値に逆変換され、表示されます。新しい RGB セットの色は、
元のやわらかな調子の色に比べると、より明るく鮮やかな色になります。HIS彩度ストレッチは、RGBを操作する他の方法に比べて利点があります。RGBを操作する方法を使用した場合、しばしば色のドリフト（赤がオレンジにずれるなど）の問題が発生します。対照的に、HIS を操作する方法では、色相を変えずに、より簡単に明るい色に変えることができます。
このページのステップに従って、
STRETCH2.GSFジオフォーミュラを表示します。

彩度ストレッチの後のTM3、TM2、TM1

正規化によるコントラストの TM3、TM2、TM1

2 行目の乗数の値を変更すると彩度ストレッチの程度を増減することができます。

Page 12ジオフォーミュラを使う

ベクタオブジェクトの使用
ジオフォーミュラではベクタオブジェクトを使用することができます。入力としてベクタオブジェクトを選択した場合、object̲xおよび
object̲yの形でオブジェクトの座標値にアクセスできます。また、次の形で対応する属性テーブルの値にもアクセスできます。

ステップ
GeoFormula Layer
Controls ダイアグラムを開きます。
Formula / New（フォーミュラOBJECT.poly.TABLE.FIELD,／新規作成）を選択し、単独の入力オブジェクトとしてCB̲DATA/ CB̲SOILS / CBSOILS̲LITE を選択します。

OBJECT.line.TABLE.FIELD,OBJECT.node.TABLE.FIELD.
注意：大文字と小文字を正確に区別します。テーブル名が大文字でYIELDとなっている場合に小文字のyieldを使用すると、処理の中でGeoFormula Layer Controls

グレースケール出力用の新しいジオフォーミュラを作成し、図のようダイアログで Script（スクリプト）タブを選択し、図の通り式を入力します。
（Insert Field ダイ
アログを使ってフィールド名を取り出します）にポリゴン用のテーブル CBSOILS̲LITE YIELD̲OATS にアクセスしOutput（出力）タブを選択し、テーブルを見つけることができません。同様に、要素タイプのキー
ワードは、小文字で poly、line、node と入力する必要があります。

ます（大文字、小文字の区別を正確に）。
CBSOILS̲Lite.poly.YIELD̲OATS.OATS * 5

出力タイプを grayscale（グレースケール）に変更します。
［OK］をクリックして GeoFormula Layer Controls ダ
イアログを閉じます。

属性テーブルの要素を確実かつ容易に指定する方法は、
Insert Filed（フィールドを挿入）ダイアグラムから入力することです。

グレースケール表示の輝度を高くするために5 を掛けています。

Page 13

ジオフォーミュラを使う

ベクタとラスタの両方を使用する
ステップ
GeoFormula Layer
Controls ダイアログを開きます。
Formula / New（フォーミュラ
／新規）を選択し、入力オブジェ
クトとして C B S O I L S ̲ L I T E とTM̲5 を選択します。
図の通りスクリプトを入力します。
出力タイプをグレースケールに変え、Null Cells Transparent(ヌル値を透明にする)トグルをオンにし、結果を見ます。
Formula / Open（フォーミュ
ラ／開く）を選択し、
YIELD431.GSF を選択し、入力オ
ブジェクトとして CB̲TM と
CBSOILS̲LITE を選択します。
［ O K ］を ク リ ッ ク し て
GeoFormula Layer Controls
ウィンドウを閉じます。

ジオフォーミュラでは、異なるタイプのオブジェクトを複雑に組み合わせることができます。
タイプの異なる多数の入力オブジェクトの属
性や値を参照して、いくつでも条件式や命令を作成することができます。
この例題では、CBSOILS̲LITE ベクタオブジェクトを CB̲TM のTM画像の1つのバンドと組み合わせます。ベクタの式は前の例題の式と似ていますが、条件式の構文が追加されています。グレースケール出力用の新しいジオフォーミュラを作成し、入力オブジェクトとしてTM̲5 と CBSOILS̲LITE を選択し、次の式を入力します。

if (CBSOILS̲Lite.poly.YIELD̲OATS.OATS > 0)TM̲5̲Value else 255
この式はマスクのように機能し、YIELD̲OATS.OATS の値が 0 でない
場合は TM̲5 から表示値を取り込みます。
さらに複雑なジオフォーミュラを見るため YIELD431.GSF を開きます。これは、YIELD̲OATS.OATS の値が 1 より大きい部分ではこの値を表示し、その他の部分ではTM画像のコンポジットカラー431バン
ドを表示します。

# 文字でマークした行はコメント行になります。
# 文字を使うと処理はその行を無視します。

Crow Butte(クロー山) TM バンド 431 のカラーコンポ
ジット画像は、YIELD̲OATS.OATS に値がない場合に表示されます。赤と緑の出力カラー成分に同じ値を割り当てることで色の変換を行っています。異なる色成分を除去するようにスクリプトを修正して効果を確認してください。

Page 14

ジオフォーミュラを使う

一般土壌損失式(USLE)
一般土壌損失式(Universal Soil Loss Equation)は、土壌保全措置、土

ステップ

壌タイプ、
地表の斜度、降水量などのデータから土壌浸食地図を作成

GeoFormula Layer

するのに使用されます。式の基本的な形を次に示します。

Controls ダイアログを開きます。
Formula / Open（フォーミュ

A = R × K × LS × C × P
ジオフォーミュラ・スクリプト（USLE.GSF）は、Crow Butte(クローラ／開く）を選択し、GEOFRMLA/ USLE.GSF を選択します。

山)地図区画について一般土壌損失式を実行します。スクリプトは、

入力ラスタとして、LITEDATA/C B S O I L S ̲ L I T E ベクタオブジェクトを使用して、土壌浸食性

CB̲DATA/LANDUSE/RAINFALL 、（K=LAYER.kfact）と傾斜長係数（LS=COMPON.slopel）にアクセスし

MANAGEMENT、CONSERVATION

ます。その他の入力に対しては、CB̲DATA / LANDUSE プロジェクト

を選択します。

ファイルに含まれている 3 つのラスタオブジェクト RAINFALL(R)、入力ベクタオブジェクトとして

MANAGEMENT (C)、CONSERVATION (P)が使用されます。

LITEDATA/CB̲DATA/CB̲SOILS/

結果として得られる表示レイヤーは、浸食作用を示すグレースケール［OK］をクリックしてオブジェ

地図となります。比較的暗い部分は浸食が少ないことを示し、明るい

クト選択ダイアログを閉じます。

部分は土壌損失が多いことを示します。

CBSOILS̲LITE を選択します。

［O K ］をクリックして G e o -このページのリストに示すステップに従って USLE スクリプトを実行します。スクリプトを修正してRainfall係数の後に乗数を追加すると、グレースケールの表示を明るくすることができます。

U S L E . G S F は、バッチ型のジオフォーミュラ処理(Process/GeoFormula)に適したスクリプトです。
出力ラスタオブジェクトを調べると、浸食量を予測したり、表示用のカラーマップを作成したりすることができます。

次のステップに進む前に、ジオフォーミュラのレイヤー USLE は削除して下さい。

Page 15

Formula Layer Controlsダイ
アログを閉じます。

ジオフォーミュラを使う

背景レイヤーとデータチップ
ステップ
背景として、PHOTO̲IR と
GREEN を追加します。
Raster Layer Display
Controlsダイアログを開き、両方の背景レイヤーに対してデー
タチップを定義します。
両方の背景レイヤーに対する凡
例表示のHide/Show(非表示／表示) チェックボックスを外します。
Options/DataTips/All
L a y e r s ( オプション／データ
チップ／全てのレイヤー) で全レイヤーに対するデータチップをオンにします。
Add GeoFormula(ジオフォーミュラの追加) をクリックし、DIVIDE.GSF
を選び、入力としてPHOTO̲IRとGREEN を選択します。
明るく表示するためジ G e o Formula Layer Controlsダイ
アログを開き、Values(数値)タブの Scale(倍率)の値を増やします。

TNTmips のラスタ組み合わせ（演算）処理（Process / Raster /Combine / Predefined(解析処理／ラスタ／組み合わせ演算／一般演
算式)には、ラスタに関する多くの標準的な代数演算が用意されています。
ジオフォーミュラにもこれらの組み合わせ演算機能の多くが用意されています（8ページ参照）。背景レイヤーのデータチップを使ったり、ジオフォーミュラの入力値のチェックのために複数の表示ウィ
ンドウを使うことによって、ジオフォーミュラの利用をより一層強化
することができます。
この例題では、
簡単なグレースケールバンドの比を表示してみることにします（T N T 入門『ラスタの組み合わせ演算』5 ページ参照）。
CB̲TMプロジェクトファイルから背景レイヤーとして、
PHOTO̲IRとGREENを追加します。
Raster Layer Display Controlダイアログを使って、それぞれのレイヤーに対してデータチップとして Internal.Valueを定義します。LegendView(凡例表示)の Hide / Show（非表示／表示）チェックボックスをはずします。表示ウィンドウにある、Options/ DataTips / All Layers（オプション／データチップ／すべてのレイヤー）で、全レイヤーに対するデータチップをオンにします。
Add GeoFormula（ジオフォーミュラを追加）アイコンツールをクリックし、DIVIDE.GSF を選び、A と B の入力オブジェクトとしてGREEN と PHOTO̲IR を選択します。グレースケール表示を明るくするために、GeoFormula Layer Controls ダイア
ログにある Values（値）タブの Scale(倍率)の値を調整します。

Internal.Value のデータチップはラスタ

PHOTO̲IR1 とレイヤーのセル値を表わしています。

GREEN の背景レイ

ヤーのデータチップ
は、D I V I D E . G S F で使っている入力の数
値を表しています。

どのレイヤーのセル値を表しているか分かるように、
データチップの前に置く言葉を設定します。

Page 16

ジオフォーミュラを使う

対話形式のスクリプト開発
ジオフォーミュラは、便利な開発環境を提供します。ジオフォーミュ
ラや SML スクリプト、さらには APPLIDAT を組み合せて使うことができます。このようなジオフォーミュラの機能を使うことによって、スクリプトを変更した際の結果を即座に確かめることができます。
大きな開発プロジェクトの部分部分をジオフォーミュラとして作成
し、テストを行い、満足な結果が得られたら、Formula メニューから
Save as（別名保存）を選択してください。Save As(別名保存)は、テキストの出力ファイルを作成し、SMLスクリプトに組み込んだり、修正
して $include ファイルとして SML から呼び出すことができます。

ステップ
Add GeoFormula / Add
Geofomula Layer（ジオフォーミュラを追加／ジオ
フォーミュラレイヤーを追加）
をクリックします。
F o r m u l a（フォーミュラ）メ
ニューから、New（新規作成）を選びます。
処理するオブジェクトとして、
LITEDATA / CB̲DATA / CB̲TM /
RED を選びます。

さらにジオフォーミュラを使って、SML プロセスで開発しているス
クリプトを対話形式でデバッグすることができます。例えば、SMLス
クリプトで正しくないような結果が出ている場合、その中からジオ
フォーミュラとして使えそうなスクリプトを探してください。
そして手早くジオフォーミュラ・スクリプトを作り、個々の部品のテストを行い、出て来た結果を見てください。Edit（編集）メニューから、Insert
File（ファイルを挿入）を選択し、SMLスクリプトを選んでください。

Script（スクリプト）タブを選
び、Edit（編集）メニューから
Insert File（ファイルを挿入）を選びます。
LITEDATA / SML / SCALE.SML を選択します。
下図にあるように修正し、SML とジオフォーミュラの環境の違いを念頭に置きながら、ジオ
フォーミュラに対して適切な変更を間違わないように行います。

SML エディタで使用していた直後のSCALE.SML スクリプト。

Preview（プレビュー）タブをクリックします。

スクリプトを編集し、ジオフォーミュラ
環境に合わせたもの。変更箇所に注意。

Edit / Insert File（編集／ファイルを挿入）を選択し、SCALE.SML をジオフォーミュラの Script パネルに表示します。

Page 17

ジオフォーミュラを使う

ジオフォーミュラの出力の保存
Output(出力)パネルで、出力ラスタオ
ブジェクトに対するオプションを指定します。

ジオフォーミュラのバッチ処理である Process / GeoFormula（解析処理／串刺し演算（ジオフォーミュラ））メニューでは、ジオフォー
ミュラの出力をラスタオブジェクトとしてプロジェクトファ
イルに保存できます。対話的に複雑なジオフォーミュラを改良していった後、ジオフォーミュラの表示結果をラスタオブ
ジェクトとして保存したい場合があります。複雑なジオ
フォーミュラが入力オブジェクトをくり返し処理し表示するのを待つのではなく、前処理をしておいて時間を稼ぎたい場
合があります。１つのラスタレイヤーの描画時間は１秒以下です。他方、ほとんどのジオフォーミュラ・レイヤーでは、数秒かそれ以上の時間がかかります。
GeoFormula Object Combinations ウィンドウは、PreView タ
ブがない、Outputパネルにおいて出力ラスタのパラメターを指定するという点で、GeoFormula Layer Controls ウィンドウとは異なります。

ジオフォーミュラを事前に処理しておくと表示での描画時間を減少できます。

ジオフォーミュラは CROW BUTTE 山岳地方の TM バンドを CIR（カラー赤外）で描画しています。緑色の土壌図ポリゴンは、Yield.oats属性に基づいて半透明で表示しています。
左：ジオフォーミュラ・レイヤー：表示時間 5 秒
右：前処理：7 秒、表示時間：1 秒以下

Page 18

ジオフォーミュラを使う

ジオフォーミュラの描画時間を短縮するにはジオフォーミュラの表示レイヤーは、ファイルアクセスや複数オブ

表示時間は、ジオフォーミュラの複雑さ

ジェクトの処理をその場で行います。
このような処理による負荷のたや、入力オブジェクトのサイズや数にめ、
単なるオブジェクトの表示にくらべ表示までにかかる時間が長く

よって変わります。時間短縮を比較したなります。この例題では、表示時間を減らすための、よくあるプログ

一例を、下に示します。

ラミングテクニックを紹介します。
プレビューパネルを使う GeoFormula Layer Controlsウィンドウのプレビューパネルは、小さいプレビュー画像をすばやく表示します。
開発過程で、
様々な変数値の影響やクリプトの変更の影響をすばやくプレビューパネル：1 秒
表示ウィンドウ：3 秒

比較したい場合はプレビューパネルでのチェックがお勧めです。
表示ウィンドウを小さくする

プレビューパネルの小さな画像がすみやかに表示されるように、表示ウィンドウを小さくすることで表示を高速化できます。ジオフォーミュラ処理では、表示ウィンドウのサ小さい表示ウィンドウ：2 秒
大きい表示ウィンドウ：9 秒

イズによって入力オブジェクトを間引いて処理を行うため、
小さな表
示ウィンドウだと、処理に使われる入力データが少なくてすみます。
数値を事前に計算しておく
スクリプトを最適化できないかチェックします。同じ数値をその都度繰り返して計算するのではなく、一度求めておいて再利

scale = 3 * HIGHRES̲Value / (RED̲Value +GREEN̲Value + BLUE̲Value + 1);
Output̲Red = RED̲Value * scale;
Output̲Green = GREEN̲Value * scale;scale あり：3 秒
Output̲Blue = BLUE̲Value * scale;scale なし：4 秒

用するようにします。たとえば、
9 ページの BROVEY1.GSF では、

BROVEY1.GSF では、scale の値を Output 文で何度も計算するのではなく、

scale 変数は各出力行で計算さ最初に一度だけ計算しています。

れるのではなく、一度だけ計算
scale 使用：3 秒

されています。

scale 使用しない：4 秒

If/Else のネストを使う

if/else 文がネストした複合的な論理条件節では、最頻条件を先に、逆に最も起りそうもない条件を最後に並べます。
スクリプトが真の条件に合致すれば、それ以降の条件文はスキップされます。
他方、
if 文単純に繰り返すと、全ての条件節を毎回試行します。

if((SPOT̲PAN>=36)and(SPOT̲PAN<47))128
else if(SPOT̲PAN>=32)and(SPOT̲PAN<36))86
else if(SPOT̲PAN>=47)and(SPOT̲PAN<50))170
else if(SPOT̲PAN>=19)and(SPOT̲PAN<32))42
else if(SPOT̲PAN>=50)and(SPOT̲PAN<54))212
else if(SPOT̲PAN<19)0
else if(SPOT̲PAN>=54)255
NESTEDIF.GSF では起りやすい条件を先に置いています。

起りそうな条件が最初：４秒
起りそうな条件が最後：６秒

Page 19

ジ
オ
フ
ォ
ー
ミ
ュ
ラ
を
使
う

地理空間解析のための先進的ソフトウエア
マイクロイメージ社は、地理空間データの可視化、解析、出版の高度な処理を行う、専門家向けソフトウェアTNTmips
を始めとする TNT 製品を提供しています。
TNTmips

TNTmips は、GIS、画像解析、CAD、TIN、デスクトップ地図製作、地理空間データベース管理機能を統合した専門家のためのシステムです。
TNTedit
TNTedit は、様々な形式のベクタ、ラスタ、CAD、TIN、リレーショナルデータベース・オブジェク
トを加工、生成、ジオリファレンス、編集するための対話ツールを提供します。
TNTview
TNTview には、TNTmips と同様の強力な表示機能があります。TNTmips の解析処理機能や編集機能を必要としないユーザ向けです。
TNTatlas
TNTatlas を使用すると、自分の作成した空間データ・プロジェクトを CD-ROM で出版し、安価に配布することができます。
TNTserver TNTserver を使うと、TNTatlas 用に作成したデータをインターネットやイントラネットで公開できます。またウェブブラウザや TNTclient Java アプレットを使ってデータを閲覧、操作することができます。
TNTliteTNTlite は、学生や小規模プロジェクトを行う専門家向けの無料バージョンです。マイクロイメー
ジ社のウェブサイトからダウンロードするか、CD-ROM を注文することができます。マイクロイ
メージ社または（株）オープン GIS までお問い合わせください。

索 引
アプリダット ................................................... 17
一般土壌損失式(USLE) ................................ 15
オブジェクトタブ .............................................. 4
解像度強調 ....................................................... 11
カラー出力 .......................................................... 7
記号の挿入 .......................................................... 5
記号の挿入ダイアログ ................................... 13
グレースケール出力 .......................................... 6
彩度ストレッチ ............................................... 12
サンプルデータ .................................................. 2
ジオフォーミュラ .............................................. 3
ジオフォーミュラの出力の保存 ................... 18
ジオフォーミュラのバッチ処理 ................... 18
ジオフォーミュラレイヤーコントロール ....... 4
出力タブ ............................................................. 4
植生指標 ............................................................. 6
スクリプト開発 ....................................... 17, 19
スクリプトタブ ............................................. 4, 5
正規化差分 .......................................................... 8

属性テーブル ................................................... 13
データチップ ................................................... 16
データ融合 .......................................................... 2
ヌルセルを透明にする ...................................... 6
背景レイヤー ................................................... 16
バンド比 ..................................................... 8, 11
表示時間の最適化 ........................................... 19
フィールド挿入ダイアログ ........................... 13
プレビューパネル ...................................... 9, 19
ラスタ / ベクタの組み合わせ ........................ 14
ベクタオブジェクト ....................................... 13
ベクタ / ラスタの組み合わせ ........................ 14
変換植生指標(TVI) ............................................ 3
ラスタ／ベクタの組み合わせ .................. 14, 4.gsf ファイル ..................................................... 6
Brovey 変換 ....................................... 9, 10, 11
output̲blue, outoput̲red, outoput̲green .................... 7
SML とジオフォーミュラ ............................. 17
TVI ................................................................. 3, 6

11th Floor Sharp Tower 206 South 13th Street
Lincoln, Nebraska 68508-2010 USA
電話 ：（402）477-9554 email： info@microimages.com
FAX ：（402）477-9559 URL： www.microimages.com［翻訳］株式会社 オープン GIS
Open〒130-0001 東京都墨田区吾妻橋 1-19-14 紀伊国屋ビル 1F
GIS Kinokuniya Bld. 1F, 1-19-14 Azumabashi, Sumida-ku, Tokyo 130-0001, JAPANTEL（03）3623-2851 FAX（03）3623-3025