画像そのものを変形せずにGIS上で変形を適用したい場合があります。
その場合はGeoTIFFやTFWでは以下のようにします。
GeoTIFFの場合
ModelTiepointタグとModelPixelScaleタグでは縦横ごとの拡大・縮小しか表現することができません。
変形を表現したい場合はTransMatrixタグを使用します。
例えば、縦・横のピクセル解像度がそれぞれrU、rV、平行移動量がdX、dY、
画像原点を中心として回転角がθである場合のアフィン変換を表す場合は、
TransMatrixタグの16個の値は以下のようにします。
なおrVは、画像の+方向(下向き)と地図上の+方向(上向き)が逆なので、負の値を指定します。
| 1 | rU*cosθ |
| 2 | -rU*sinθ |
| 3 | 0 |
| 4 | dX |
| 5 | rV*sinθ |
| 6 | rV*cosθ |
| 7 | 0 |
| 8 | dY |
| 9 | 0 |
| 10 | 0 |
| 11 | 1 |
| 12 | 0 |
| 13 | 0 |
| 14 | 0 |
| 15 | 0 |
| 16 | 1 |
平行移動(300,400)、回転+30°、地上解像度(1m,2m)の時のTransMatrixタグ

listgeo出力結果
TFWの場合
TFWの書式は以下のとおりですので、アフィン変換ならそのまま表現することができます。
rU*cosθ rV*sinθ -rU*sinθ rV*cosθ dX dY
すなわち、アフィン変換を{X=ax+by+c,Y=dx+ey+f}としたときに、上から{a,b,d,e,c,f}と並べていることになります。
このとき、rVは上記のGeoTIFFの場合と同様、負の値を指定します。
平行移動(300,400)、回転+30°、地上解像度(1m,2m)の時のTFW
0.86602540378443864676372317075294 -1.0 -0.5 -1.7320508075688772935274463415059 300 400
