Geog Image Map Shader

「Geog Image Map Shader」の編集履歴(バックアップ)一覧に戻る

Geog Image Map Shader - (2018/09/12 (水) 00:30:18) のソース

#image(Geog_image_map_Location.jpg)
Node Type: Colour Shader

*ノード説明と目的:
『Geog Image Map Shader』は、多くのラスタ地理空間データ形式で画像を読み込んでジオリファレンスする事が出来ます。つまり、航空写真や衛星写真の読み込み時に使用する事が出来ます。ジオリファレンスとは、ジオリファレンス(地理参照)情報が画像と共に入手可能である限り、惑星上の正確な地理的位置に画像を配置する事を意味します。但し、ノードがベクトル画像に未対応である事に注意して下さい(ベクトルは、通常X、Y、Z座標を表す3つのスカラの集合です。また、値は傾斜(=勾配)、方向、横傾斜において一般的に回転を表します)。

『Geog Image Map Shader』は、『Image Map Shader』の特殊バージョンです 『Image Map Shader』と相当数の設定を共有しますが、地理空間データを扱うための新しい機能を備えます。

ノードに対応する画形式のリストが[[ここ>https://www.gdal.org/formats_list.html]]で見る事が出来ます。TGは、そのページの表の「Compiled by default」のカラムに"Yes"と表記されたすべての形式に対応しています。OpenJPEG経由でJPEG2000にも対応しています。最も一般的に使用される画像形式に対応していますが、対応している形式のすべてが実証されているわけではないため、多くは問題ありませんが、一部は全く不明瞭である事に注意して下さい。

『Geog Image Map Shader』は、シェーダの画像投影(地理的投影と混同しないで下さい)を指定する事は出来ません。このノードが対応する唯一の画像投影は、"Plan Y"です。

ジオリファレンス設定は、Professional版でのみ使用可能です。しかしながら、画像の正確なサイズは、必要に応じてジオリファレンスに基づいて計算されます。

ノードが画像を読み込む時、画像の各ラスタバンド(チャネル)を順番に読み込みます。必要に応じて、読込中のラスタバンドごとに進捗ダイアログが表示されます。

ジオリファレンスされた画像を使用し、"&bold(){Georeference}"パラメータがチェックされている場合、画像は惑星上の正確な(地理参照)位置に配置されます。しかし、赤道での本子午線に相当する惑星の基点(TGにおいてのデフォルト)緯度0度、経度0度から遠ざかるにつれ、精度は低下します。ジオリファレンスデータを扱う際の精度を確保にするために、シーンカメラを合わせるエリアに惑星の基点を移動する事を推奨します。これは画像データではそれほど重要ではありませんが、画像をディスプレースメントや、ジオリファレンスされたDEMと共に使用している場合は、結果を生ずる要因となる場合があります。

惑星の基点を移動するのは簡単です。画像を読込み、"Georeference"パラメータにチェックを入れたとしましょう。それを惑星の基点を画像の南西に位置するように移動させる場合、以下の手順を実行します:
+"&bold(){SW corner lat long}"パラメーターの右側にあるクリップボードアイコンをクリックします。
+ポップアップメニューから"Copy coordinates"を選択します。これで、緯度/経線の両方のテキストフィールドの値が同時にコピーされます。
+『Planet 01』ノード(デフォルトの『Planet』オブジェクト)のパラメータビューを開きます。これは【Objects】のノードリストで見付ける事が出来ます。または、ネットワークビューで『Planet 01』ノードをダブルクリックする事も出来ます。
+クリップボードにコピーした値を、"&bold(){Lat long at apex}"パラメータの右側にあるクリップボードアイコンをクリックして、"Paste coordinates"を選択する事でペーストします。
この手順は、惑星の基点をシーンカメラを合わせるエリアに移動させ、最良の結果を確保にするために必須の措置です。

このノードでは、NODATA値を別の値に置き換える事が出来ます。NODATA値とは、有効なデータがない画像内のエリアを示します。通常、無効なデータとは画像内の黒い部分を言い表します。

『Geog Image Map Shader』は、すでにラスタデータが南北に位置合わせされた画像の場合に最も効果的に働きます。例えば、米国国土地理院データベース画像のいくつかは、画像範囲内で回転されたラスタデータを持っています。これらは現在正確に表示されません。『Geog Image Map Shader』は、今後これらの歪んだ画像に対応する予定です。それまでは、汎用なGDALツールを使用して、これらの画像を自分自身で歪めて調整する事となるでしょう。

ノードは、[[GDAL>https://www.gdal.org/]]と[[PROJ.4>https://proj4.org/index.html]]を使用して画像ファイルを読込みジオリファレンスします。

**設定
|&bold(){Image filename}|画像ファイル|このパラメータを使用し、読み込む画像ファイルを指定します。右側のフォルダアイコンをクリックして、ファイル選択ダイアログを開きます。|
----

***Locationタブ
このタブ内のジオリファレンス設定は、Professional版でのみ使用可能です。
|&bold(){Georeference}|ジオリファレンス|チェック時、ハイトフィールドは以下のフィールド値に準じてジオリファレンスします。未チェック時は、このノードが接続する『Heightfield Shader』によってコントロールされます。DEMはファイルから引き出された値によっても正確なサイズになるでしょう。|
|&bold(){Auto georeference from file}|ファイルから自動ジオリファレンス|チェック時、ノードはDEMのジオリファレンス情報を読み込みます。これは新しくノードを作成してファイルを選択した時に、ジオリファレンス情報を自動で読み込むために、デフォルトでオンになっています。ファイルの読み込みで、ノードがジオリファレンス情報を検出すると、"Georeference"パラメータを有効にします。これはまた、開かれたプロジェクトの一部としてのノードが読み込まれた際にジオリファレンス情報が読み込まれるという意味でもある事に注意して下さい。"Georeference"パラメータを無効にする時は、"Auto georeference from file"のチェックをオフにする必要があります。&br()ジオリファレンス値に変更を加えた場合、このパラメータは無効になります。|
|&bold(){Reproject on the fly}|プロジェクト再読み込み時に即時応変|チェック時、プロジェクトの読み込み時に、以前に設定されたジオリファレンスを再度有効にします。チェックを外す事で、以前の作業を再設定しません。|
|&bold(){NW corner lat long}|北西角の緯度/経度|ハイトフィールドの北西角の緯度/経度を設定します。|
|&bold(){NE corner lat long}|北東角の緯度/経度|ハイトフィールドの北東角の緯度/経度を設定します。|
|&bold(){SE corner lat long}|南東角の緯度/経度|ハイトフィールドの南東角の緯度/経度を設定します。|
|&bold(){SW corner lat long}|南西角の緯度/経度|ハイトフィールドの南西角の緯度/経度を設定します。|
|&bold(){Position explicitly}|手動で位置決め|チェック時、ジオリファレンスを使用せずに、直接画像の位置を設定する事が出来ます。これを行うには、以下のパラメータを使用します。この手動による位置決めは、TGのすべてのバージョンで使用が可能です。|
|&bold(){Position center}|中心配置|これがチェック時、シェーダは画像の中心に合わせて配置されます。|
|&bold(){Position lower}|左下配置|これがチェック時、シェーダは画像の左下に合わせて配置されます。|
|&bold(){Position}|位置座標|配置するx、y、z座標を設定します。|
|&bold(){Size}|サイズ|画像サイズをメートル単位で設定します。|
|&bold(){Size from Image}|画像からサイズを設定|このボタンをクリックすると、画像から使用可能なデータに基づいてサイズが設定されます。例えば、画像のジオリファレンスデータが5km×10kmのエリアをカバーしている場合、値は(5000、10000)に設定されます。|
|&bold(){Border blending}|境界の混合量|この設定は、周囲のテクスチャと滑らかに接合するために画像データの境界の混合量をコントロールします。数値の範囲は0から1です。0の場合、混合は行われず画像の境界がくっきりと現れます。1の場合は、画像の終端に最大限のグラデーションが掛かり、滑らかに境界を混合させます。|
|&bold(){Mask by shader}|シェーダでマスク処理|チェック時、指定されたシェーダまたはFunctionノードを使用してこのシェーダをブレンド(マスク)します。指定されたシェーダまたはFunctionがこのシェーダのマスクになります。指定されたシェイダーによって生成された拡散色またはブレンド関数によって生成された値は、ブレンド量として解釈されます。1は100%のブレンド量であり、0はブレンドしません。これらの量は、このシェーダの色と変位が入力にどれだけ適用されるかを決定します。0以下または1以上の値が使用可能となります。旧パラメータ名は"Blend by shader"と呼ばれている通り、抽出した特定のエリアに対して覆い隠したり、強調させたり、あるいは他シェーダによって効果のブレンドを行います。|
|&bold(){Fit mask to this}|マスクに適合|チェック時、指定されたシェーダに、このシェーダのテクスチャスペースに再マッピングするための異なるテクスチャ座標が与えられます。すべてのシェーダがテクスチャ座標を使用するわけではないので、効果の無い場合もあります。実際には、マスクシェーダの入力を、マスクシェーダと同じスケールまたはエリアに拡大縮小する事を意図しています。常用する設定ではないですが、、例えば、マスクシェーダとして『Image map shader』(範囲内を覆うなど)を使用する場合には有用かもしれませんが、マスクシェーダとしての別の処理上のプロシージャル入力としての用途には不適切です。|
|&bold(){Invent mask}|マスクの反転|チェック時、指定したマスク処理を行う特定の範囲を反転します。|
----

***Flipタブ
#image(Geog_image_map_Flip.jpg)
|&bold(){Flip x}|x軸に反転|読み込んだ画像をx軸を中心に反転します。|
|&bold(){Flip y}|y軸に反転|読み込んだ画像をy軸を中心に反転します。|
----

***NODATAタブ
#image(Geog_image_map_Nodata.jpg)
[NODATA]タブでは、画像データ内のNODATA値のピクセルを別の値に置き換えるパラメータを備えます。 NODATA値を持つピクセルは、データが欠落しているか無効である画像内のエリアを示します。下記のパラメータを使用する事で、これらの色や値、または透明に置き換える事が出来ます。

画像の読み込み時に、TGは画像ファイルに可能な限り密接に内部画像形式と一致させる事で、メモリリソースを最小限に抑える方法で置き換えます。しかし、NODATA値のピクセルを置き換えると、内部画像形式がより多くのメモリを消費する必要を生じる場合があります。例として、画像ファイルが8ビットのグレースケールのパレット化/インデックス化された画像であるとします。NODATA値のピクセルを置き換えて透明にする場合、TGは内部画像形式を8ビットから32ビットRGBAに変更し、使用するメモリ量を4倍にする必要があります。ジオリファレンス画像が非常に大きくなる可能性があるので、多くのメモリを使用できない場合は、この事を念頭におかなければなりません。

[Info]タブの"Raster and Projection Info"フィールドを確認すると、画像にNODATA値があるかどうかを確認する事が出来ます。
|&bold(){Replace NODATA values}|NODATA値の置き換え|チェック時、イメージ内のNODATA値のピクセルを置き換えます。画像データを再読込する必要があるため、大きな画像では時間がかかる事に注意して下さい。下記のパラメータを使用して置換値を前もって設定してからチェックをオンにすると効率的です。変更後に[Update]ボタンをクリックする手間を省く事が出来ます。|
|&bold(){Replace with colour}|色を置換|これにチェックすると、NODATA値のピクセルを色で置き換えます。|
|&bold(){NODATA colour value}|NODATAのカラー値|NODATA値のピクセルを置き換える色を選択する事が出来ます。画像がグレースケールのインデックス化/パレット化されている場合、この色の輝度はグレースケール値として使用します。|
|&bold(){NODATA alpha value}|NODATAのアルファ値|置き換える色のアルファ値を設定します。0(完全に透明)~1(完全に不透明)の値を使用します。これは、1以外の値を指定すると、内部画像をRGBAに変更する可能性がある事に注意して下さい。|
|&bold(){Replace colour mode}|置換カラーモード|このポップアップで、NODATA値のピクセルの置換方法を選択する事が出来ます:&br()-&bold(){Channel by channel}:このオプションは、チャンネルごとにNODATA値のチャンネルを置き換えます。例として、画像にR、G、Bチャンネルがあるとします。特定のピクセルに、RチャネルはNODATA値を持ち、GチャネルとBチャネルには有効なデータがあった場合、ノードはNODATAカラー値からR値を取り、ピクセルのRチャネルを置き換えますが、GチャネルとBチャネルは変更しません。&br()-&bold(){Any channel}:このオプションは、いずれかのチャンネルにNODATA値がある場合、ピクセル全体を置き換えます。上記と同じ例として、RチャネルはNODATA値を持ち、GチャネルとBチャネルには有効なデータがあった場合、このオプションを使用すると、GチャネルとBチャネルに有効なデータがあっても、ピクセルはNODATAカラー値を使用して全体を置き換えます。|
|&bold(){Replace with scalar}|スカラを置換|これにチェックすると、NODATA値をスカラ値で置き換えます。これは常にチャンネルごとに動作します。イメージピクセルの1つのチャネルだけがNODATA値を有する場合、そのチャネルのみが置き換えられます。|
|&bold(){NODATA scalar value}|NODATAのスカラ値|NODATAを置換に使用するスカラ値を設定します。|
|&bold(){Make NODATA transparent}|NODATAを透明にする|チェック時、NODATA値を完全に透明にします。ピクセルのいずれかのチャネルがNODATA値を有する場合、ピクセルを完全に透明にします。この設定を使用すると、画像がRGBAに展開され、メモリ使用量が増加する可能性がある事に注意して下さい。|
|&bold(){Update}|更新ボタン|NODATAの置換パラメータのいずれかを変更すると、このボタンをクリックして画像を更新します。これは、大きな画像は時間がかかる処理になる可能性が高いので、変更を自動で行わないようにしています。|
----

***Infoタブ
#image(Geog_image_map_Info.jpg)
[Info]タブには、画像に関する有用な情報が表示されます。画像サイズをメートルとピクセルで表示するだけでなく、画像データと画像の投影に関する情報も持っています。

このタブのパラメータはすべて読み取り専用です。パラメータを編集する事は出来ませんが、表示されたテキストフィールドを選択してコピーする事は可能です。
|&bold(){XY size (metres)}|XY間のサイズ(メートル)|画像サイズをメートル単位で表示します。この値は、ジオリファレンス情報から計算されます。ファイルに対して利用可能なジオリファレンス情報がない場合、1ピクセルのデフォルトスケールは1メートルと同等です。|
|&bold(){XY size (pixels)}|XY間のサイズ(ピクセル)|画像サイズをピクセル単位で表示します。|
|&bold(){Raster and Projection Info}|ラスターと投影情報|このフィールドは、ラスタデータの構造に関する情報と、画像ファイルの投影情報を表示します。&br()最初の2行には、ラスタデータセットのサイズ(ピクセル)と画像のラスタバンド数を表示します。ラスタバンドは、地理空間画像ではカラーデータ以外のデータを表す場合を除いて、通常の画像チャンネルに似ています。画像内の各ラスタバンドについての情報を表示します。ラスタバンド情報の表示例:&br()Raster band 1&br()Colour interpretation: Red&br()Data type: Unsigned 8 bit integer&br()Band doesn't have a NODATA value&br()最初の行は、画像ラスターバンドのインデックスを示します。この場合、"1"です。2行目は、ラスタバンドの色の解釈を示します。色の解釈は、ラスタバンドのデータをどのように読み取るべきかを明示します。この場合、"R(赤)"であり、これはラスタバンドが画像のRチャンネルである事を示します。次の行には、ラスタバンドのデータタイプを示します。この場合、符号なし8ビット整数です。最後は、ラスタバンドのNODATAステータスを示します。この場合、バンドにNODATA値が存在しません。&br()情報の最終区分は、画像をジオリファレンスするために使用する投影と座標系です。座標系は、OpenGIS Well Known Text([[WKT>https://ja.wikipedia.org/wiki/Well-known_text]])形式で表示します。|
----

***Colourタブ
#image(Geog_image_map_Colour.jpg)
|Apply colour|||
|Smooth interpolation|||
|Unpremultiply|||
|Convert to linear|||
|Data is linear|||
|Conversion gamma|||
|Multiplay RGB|||
|Offset RGB|||
----

***Displacementタブ
#image(Geog_image_map_Disp.jpg)
|Apply displacement|||
|Displacement amplitude|||
|Displacement offset|||
|Smooth disp interpolation|||
|Convert disp to linear|||
|Disp data is linear|||
|Disp conversion gamma|||
----

***Effectsタブ
#image(Geog_image_map_Effects.jpg)
|Alpha as opacity|||
|Alpha as colour|||
|Create transparency|||
|Transparency key|||
|Key tolerance|||
|Invert alpha/transparency|||
|Use alpha/transparency for direct blending|||
|Translucent|||
|Translucency tint|||