GeoTIFF作成(変換)方法(フリーソフト)

GeoTIFF作成(変換)

 衛星画像は、画像処理を行った後にGISを使って表示したり、他者に画像を提供する場合には、位置情報を持った画像にする必要があります。
 位置情報を持った画像としては、一般的にGeoTIFFファイルが使用されています。
 著者自身も画像処理後の衛星データを公開したり他者に提供する場合、ビットマップファイルをGeoTIFFにしたり、RAW(Unsigned int)やRAW(Float)画像をGeoTIFFにしたりしています。
 リモートセンシング画像処理ソフト「RSP」は、これらの画像をGeoTIFFに変換(保存)する機能が備わっています(エクセルの数値データ(表データ)も、GeoTIFFに変換できます)。
 フリーソフト「RSP」は、簡単にGeoTIFFを作成することができることから、GeoTIFF作成用ツールとしてのみの使用も可能です。
 当サイトでは、「RSP」を使ってGeoTIFFファイルを作成する方法について説明します。なお、「RSP」には、GeoTIFFファイルのGeoTIFFコードならびにTIFF(GeoTIFF)のタグコードを見ることができる機能が備わっています(当講座の「ファイルフォーマット」参照)。
 さらに、RSP Ver.2.10からは、元のGeoTIFFからGeoTIFFコードデータを抜出・保存し、GeoTIFF作成時にジオリファレンスデータを読み戻すことができるため、簡単にGeoTIFF画像を作成することができます。
 「RSP」では、表示画像(ビットマップ、RAW表示画像、JPEG)をGeoTIFFにする場合は、メニュー「ファイル」→「保存」→「GeoTIFF」で行います(次図参照)。
 ビットマップ、RAW、JPEG以外の画像をGeoTIFFにするには、事前に画像を、ビットマップか、RAWか、JPEGに変換してから使用します。





 ここで、「GeoTIFFコード読込」ボタンを押して、あらかじめ保存しておいたGeoTIFFコードデータを読込みます。
 (「GeoTIFFコード読込」で使用する保存データの作成方法は、以下のLandsat-8画像で示します。)
 読込んだ画面を以下に示します。



 GeoTIFFコードデータが設定されたため、この後、「画像保存」ボタンを押して、GeoTIFFを作成します。


 また、RAW(Unsigned integer)画像をGeoTIFFにするには、メニュー「ツール」→「Unsigned integer処理」→「ファイル」→「保存」→「GeoTIFF」で、RAW(Float)画像をGeoTIFFにするには、メニュー「ツール」→「Float処理」→「ファイル」→「保存」→「GeoTIFF」で保存・作成することができます。

 なお、GeoTIFFについて詳しく知りたい方は、当講座の「ファイルフォーマット」をご覧ください。

GeoTIFF作成(変換)に関する概要

 GeoTIFFは、ラスターデータに対して位置情報を付加したファイルです。
 GeoTIFFを作成するには、まず、ラスターデータと位置情報に関する以下のことについて、把握しておかなければなりません。

 ◆モデルタイプ(座標系)が、プロジェクト(UTM等)なのか、ジオグラフィック(経緯度)なのか。
 ◆ラスタータイプが、面(Area)タイプなのか、点(Point)タイプなのか。

 次に、座標の登録情報は、以下のどれで登録するのかを決める必要があります。

 ◆ピクセル長と画像の左上の(I,J,K)と(X,Y,Z)で登録するのか。・・・モデルタイプがプロジェクトの場合
 ◆画像の四隅の(I,J,K)と(X,Y,Z)で登録するのか。
 ◆幾何補正情報(16データ)で登録するのか。

 GeoTIFFは、これらの情報をもとに、作成します。

Landsat-8画像のGeoTIFF作成(変換)方法

 RSPのGeoTIFFコード出力で、関東地方を撮影したLandsat-8画像のGeoTIFFコード出力した事例を以下に示します。
 GeoTIFFコード出力は、RSPのメニュー「ファイル」→「フォーマット変換」→「TIFF(GeoTIFF)」→「GeoTIFFコード−>テキストファイル」で出力し、テキスト・エディタで見ることができます。この機能で出力されるファイル名は、元のファイル名+「_Geo.txt」です。

==========
Model Pixel Scale (33550)  ・・・・・1ピクセルの長さ
30.000000 ・・・・・X軸方向(東方向)に30.0m
30.000000 ・・・・・Y軸方向(北方向)に30.0m
0.000000 ・・・・・Z軸方向(高さ方向)に0.0m

Model Tiepoint (33922) ・・・・・画像座標(横軸I,縦軸J,高さ軸K)と実際の座標(X,Y,Z)との対応
0.000000 ・・・・・画像I座標 0.0ピクセル
0.000000 ・・・・・画像J座標 0.0ライン
0.000000 ・・・・・画像K座標 0.0
307200.000000 ・・・・・画像I座標に対応するX座標(UTMゾーン54の中央子午線の東経141度を500000mとしたときのX座標が307200.0m)
4100100.000000 ・・・・・画像J座標に対応するY座標(赤道から北側に4100100.0m)
0.000000 ・・・・・画像K座標0.0に対応するZ座標(0.0m)

Geo Key Directory (34735) ・・・・・ジオ・キー情報
1, 1, 0, 6 ・・・・・GeoTIFFバージョン情報とデータ数(データ数は以下の6データ(以下の6行分))
1024, 0, 1, 1 ・・・・・モデルタイプはプロジェクト( Projected = 1)
1025, 0, 1, 2 ・・・・・ラスタータイプは、点データ( Point = 2)
1026, 34737, 25, 0 ・・・・・引用先はGeoAsciiParams(タグコード34737)の0文字目から25文字(終了の「|」含む)で記載
2052, 0, 1, 9001 ・・・・・距離の単位はm( Linear_Meter = 9001)
2054, 0, 1, 9102 ・・・・・角度の単位は度( Angular_Degree = 9102)
3072, 0, 1, 32654 ・・・・・座標系はWGS84で、投影法はUTMで、ゾーンは54(東経138度から144度)の北半球(PCS_WGS84_UTM_zone_54N = 32654)

Geo Ascii Params (34737) ・・・・・引用(文字で記載)
UTM Zone 54 N with WGS84|
==========

 切り取り処理を行っていない場合は、RSPで上記のデータをこのまま入力することで、GeoTIFFファイルを作成することができます。

 また、RSP ver.2.10以降からは、元のGeoTIFF画像から、GeoTIFFコードデータを保存し、GeoTIFF作成時に、これを読込むことができます。
 元のGeoTIFF画像のGeoTIFFコードデータの保存は、メニュー「ファイル」→「フォーマット変換」→「TIFF(GeoTIFF)」→「GeoTIFFコード保存」です。



 保存したGeoTIFFコードデータを、GeoTIFFファイルを作成する(メニュー「ファイル」→「保存」→「GeoTIFF」)ときに、「GeoTIFFコード読込」で読み込んだ後、「画像保存」ボタンでGeoTIFF画像を作成することができます。

 切り取り処理を行った場合は、以下のようにGeoTIFFファイルを作成します。
 まずは、上記の記載より、切り取り処理を行った場合は、「Model Tiepoint」のX座標とY座標のデータを記載し直せばよいことがわかります。
 すなわち、画像の左上のX座標とY座標がわかれば、GeoTIFFファイルは作成できます。

 RSPは原点の座標が(0.0)であるため、切り取り処理の左座標が(1000,2000)である場合、GeoTIFFコードのModel TiepointのX、Y座標は、
 X座標=307200.0+1000×30m=337200m、Y座標=4100100.0−2000×30m=4040100mになります。
 上記の元のGeoTIFFコードデータに対して、この2か所のデータを入れ替えれば、GeoTIFFファイルを作成することができます。

ALOS-2画像のGeoTIFF作成(変換)方法

ALOS-2 PALSAR-2の高分解能モード(地上分解能2.5m)CEOSファイルからGeoTIFFを作成する方法について、以下に記載します。

1.各端点の座標を確認する。
 LEDファイルを開いて、各端点の座標を確認します。
数値は、Y(緯)、X(経)の順で、単位はkmである。これが四隅4点分続き、その後、緯度・経度の値で四隅4点分が記載されている。4点の並びは、1番目が左上、2番目が右上、3番目が右下、4番目が左下の順(右回り順)です。

左上Y  左上X  右上Y  右上X  右下Y  右下X  左下Y  左下X
左上緯度 左上経度 右上緯度 右上経度 右下緯度 右上経度 左下緯度 左下経度

2.UTM座標でGeoTIFFを作成する場合(上記の左上Yと右上Yが一致している場合)

(1)LEDファイルを開いて、「UNIVERSAL TRANSVERSE MERCATOR」の記載欄を確認します。
各データは、並び順に、次のとおり。

54 ・・・・(3074)UTM54系
500000.00000 ・・・・(3082)
0.00000 ・・・・(3083)
139.6588132 ・・・・(3080)経度
36.2052803 ・・・・(3081)緯度
0.9996000 ・・・・(3092)

(2)各端点の座標を確認する。数値は、Y(緯)、X(経)の順で、単位はkmです。これが四隅4点分続き、その後、緯度・経度の値で四隅4点分が記載されています。4点の並びは、1番目が左上、2番目が右上、3番目が右下、4番目が左下の順(右回り順)です。
このデータは、「Model Tiepoint」(33922)と、「Model Transformation」(34264)に使用します。使用するには、km単位ではなく、m単位として使用します。

左上Y  左上X  右上Y  右上X  右下Y  右下X  左下Y  左下X
左上緯度 左上経度 右上緯度 右上経度 右下緯度 右上経度 左下緯度 左下経度

(3)画像のピクセル(幅)とライン(高さ)を確認します。

ピクセル ライン

============================
以上の結果を使って、GeoTIFFの各コードの数値について記載します。

■Model Pixel Scale (33550)
 これは、固定値です。
2.5 ・・・・(1ピクセルのX長(地上分解能)=2.5m)
2.5 ・・・・(1ピクセルのY長(地上分解能)=2.5m)
0.0

■Model Tiepoint (33922)
 これは、上記(1)と(2)の一部のデータを使用します。

0.5 ・・・・固定値(画像左上のI)
0.5 ・・・・固定値(画像左上のJ)
0.0 ・・・・固定値
左上X
左上Y
0.0 ・・・・固定値

■Model Transformation (34264)
 この値は、上記(2)の4か所の座標(m)データから、アフィン変換式の係数を求めて、これを使用します。
 アフィン変換式の係数は、RSPの「幾何補正」→「GCP評価(アフィン変換)」で求めることができます。「GCP」の入力値は、以下の値を使用します。

GCP点数=4
0.5,0.5,左上X,左上Y
ピクセル−0.5,0.5,右上X,右上Y
0.5,ライン−0.5,左下X,左下Y
ピクセル−0.5,ライン−0.5,右下X,右下Y

このデータを使って、GCP評価を行い、アフィン変換の係数(a、b、c、d、e、f)を求めます。

Model Transformationのデータは、次のとおりです。

a b 0.0 c
d e 0.0 f
0.0 0.0 0.0 0.0
0.0 0.0 0.0 1.0

■Geo Key Directory (34735)
 各データは、以下のとおりです。
1, 1, 0, 18
1024, 1
1025, 1
2016, Geo-coded
2048, 4338 ・・・・固定値
2049, Datum=ITRF97 Ellipsoid=GRS80 Projection=UTM
2050, 6655 ・・・・固定値
2051, 8901 ・・・・固定値
2052, 9001 ・・・・固定値
2054, 9102 ・・・・固定値
2056, 7019 ・・・・固定値
3072, 32767 ・・・・固定値
3074, 16+XXX ここで、XXXは座標系(上記(1))である。16は北半球。
         54系の場合は、「16054」
3076, 9001 ・・・・固定値
3080, 上記(1)より
3081, 上記(1)より
3082, 上記(1)より
3083, 上記(1)より
3092, 上記(1)より

以上で、GeoTIFFファイルができます。


3.緯度経度座標でGeoTIFFを作成する場合

(1)各端点の緯度経度を確認する。4点の並びは、1番目が左上、2番目が右上、3番目が右下、4番目が左下の順(右回り順)です。

左上緯度 左上経度 右上緯度 右上経度 右下緯度 右上経度 左下緯度 左下経度

(2)画像のピクセル(幅)とライン(高さ)を確認します。

ピクセル ライン

============================
以上の結果を使って、GeoTIFFの各コードの数値について記載します。

■Model Tiepoint (33922)
 ここでは、上記の四隅の緯度経度と、ピクセル数・ライン数を使って、画像四隅の(I,J,K)と、これに対応する実際の(経度,緯度,高さ)を登録します。

0.5 ・・・・I: 固定値
0.5 ・・・・J: 固定値
0.0 ・・・・K: 固定値
左上X ・・・・X: 左上の経度
左上Y ・・・・Y: 左上の緯度
0.0 ・・・・Z: 固定値

ピクセル数−0.5 ・・・・I: 引き算で求めます
0.5 ・・・・J: 固定値
0.0 ・・・・K: 固定値
右上X ・・・・X: 右上の経度
右上Y ・・・・Y: 右上の緯度
0.0 ・・・・Z: 固定値

ピクセル数−0.5 ・・・・I: 引き算で求めます
ライン数−0.5 ・・・・J: 引き算で求めます
0.0 ・・・・K: 固定値
右下X ・・・・X: 右下の経度
右下Y ・・・・Y: 右下の緯度
0.0 ・・・・Z: 固定値

0.5 ・・・・I: 固定値
ライン数−0.5 ・・・・J: 引き算で求めます
0.0 ・・・・K: 固定値
左下X ・・・・X: 左下の経度
左下Y ・・・・Y: 左下の緯度
0.0 ・・・・Z: 固定値

 ここで、実際の座標の入力順番は、経度(X軸・横)、緯度(Y軸・縦)であることに注意してください。

■Geo Key Directory (34735)
 各GeoKeyデータは、以下のとおりです。

GeoKey-> 登録データ
1024 -> 2 ・・・・モデルタイプは緯度経度(Geographic (latitude-longitude) = 2)
1025 -> 1 ・・・・ラスタタイプは面データ(Area = 1)
2052 -> 9001 ・・・・距離の単位はm( Linear_Meter = 9001)
2054 -> 9102 ・・・・角度の単位は度( Angular_Degree = 9102)

 以上を入力することで、GeoTIFFファイルを作成することができます。

 なお、切り取り処理を行った場合は、切り取った画像の四隅の緯度経度と切り取り後のピクセル数とライン数を把握する必要があります。
 ALOS-2のLEDファイルには、経度・緯度とピクセル値・ライン値の変換式の係数が記載されているため、これを使用して、切り取り後の四隅の経度と緯度を求めます。

 当ホームページでは、「ALOS-2座標計算ツール」を公開しています。
 このツールを使うことで、経度・緯度(X,Y)と画像座標(I,J)の換算を容易に行うことができます。なお、本ツールの画像座標は、左上隅の1ピクセル・1ライン目の画素の座標を(0,0)として計算します(RSPの表示座標と同じです)。