Geotif演習の解答例
 4隅の座標値が経緯度なので,10.htmの V gdal/ogrで地図関係の変換,を参考に。ここではMapIbaraki.tifを使用する。元画像は衛星写真ではあるが通常の画像として出力したものである。測地系投影法は世界測地系UTM経緯度北半球53帯s。まずは,gdal_translateコマンドを使って元画像をgeotiff化する。これは世界測地系UTM経緯度。これをgdalwarpコマンドを使って世界測地系の日本の平面直角座標系VI系に変換する形を例としたい。

使用するコマンドは次のようになる。なお,スペースは半角一つ。「\」は表示上の改行を示しているにすぎない。実際は改行しない。

 

I gdal_translate 

  gdal_translate -of "GTiff" -a_srs EPSG:???? -a_ullr 左上X座標 左上Y座標 右下X座標 右下Y座標 input.tif output.tif
 さて,それぞれの値を調べてゆく必要がある。

I.1 四隅の対応する経緯度からUTMmを求める

 矩形領域は,左上(34h55m45.00s, 135h29m00.00s),右下(34h46m08.00s, 135h37m30.00s)。
http://www.oasisphoto.com/navigation/convert_form.php からUTMmを求める。経緯度値のまま,gdal_translateを実行することも可能ではあるが,画像のピクセル幅や高さを求める必要があるなど徒労なのでUTMmを先に求めた方が簡便である。

http://www.gsi.go.jp/LAW/G2000-g2yogo.htm には,測地系の説明がある。上のサイトでは,測地系を指定する必要がある。通常,GRS80(Geodetic Reference System測地基準系1980の略語。IAG(International Association of Geodesy:国際測地学協会)及びIUGG(International Union of Geodesy and Geophysics:国際測地学及び地球物理学連合)によって1979年に採択された。地球の形状、重力定数、角速度等地球の物理学的な定数及び計算式である。GRS80では、楕円体の形状や軸の方向及び地球重心を楕円体の原点とすることも定められています。この楕円体をGRS80楕円体という。)を使用する。WGS84 (World Geodetic System世界測地系1984の略語。米国が構築・維持している世界測地系です。GPSの軌道情報で使われているほか、GPSによるナビゲ−ションの位置表示の基準として使われる)とGRS80にはほとんど違いはない。しかし高い精度はGRS80。

http://www.oasisphoto.com/navigation/convert_form.php の実行結果を次ぎに。

左上:

Latitude, Longitude Global UTM
Lat: N
Lon: E
ddd°mm'ss.s"
34° 55' 45''
135° 29' 0''
Northing 3865294
Easting 544142

右下:

Lat: N
Lon: E
ddd°mm'ss.s"
34° 46' 8''
135° 37' 30''
Northing 3847592
Easting 557192
Zone 53S
53S

なお,Northingがy値,Eastingがx値に対応する。

I.2 EPSG値を求める

  http://spatialreference.org/ref/?search=japan&srtext=Search を参照。
下記に対応していることがわかる。
http://spatialreference.org/ref/epsg/3099/
EPSG:3099: JGD2000 / UTM zone 53N (Google it)
• WGS84 Bounds: 132.0000, 23.5000, 138.0000, 37.7000
• Projected Bounds: 193603.3243, 2602071.9055, 806396.6757, 4176766.8945

 gdalwarpで次のII章で世界測地系の平面直角座標系に変換するからこのEPSG値も必要である。http://vldb.gsi.go.jp/sokuchi/patchjgd/download/Help/jpc/jpc.htm から大阪は平面直角座標系はVIだから,http://spatialreference.org/ref/epsg/2448/ に対応していることがわかる。
EPSG:2448: JGD2000 / Japan Plane Rectangular CS VI
• WGS84 Bounds: 134.8400, 33.4000, 137.0000, 36.3000
• Projected Bounds: -107906.0620, -287955.6846, 93021.8190, 33909.6201

I.3 入出力ファイルのパスを求める


 ぼくの場合,マック版Grassでは次のようにした。FileConvert_folder/Ibaraki_images/に,ETMnat _Forest_Urban_fusion.tif,ETMnat_Btrace.tif,MapIbaraki.tifが入っている。MapIbaraki.tifファイルを例に次ぎに示す。出力ファイルは同じフォルダに入れる。茨木域であることはこのファイル名でわかるのでgeotifであることを示すためにgeoを追加して,MapIbarakigeo.tifとする。その結果,
/Users/moto/grassdata/FileConvert_folder/Ibaraki_images/MapIbaraki.tif /Users/moto/grassdata/FileConvert_folder/Ibaraki_images/MapIbarakigeo.tif となる。

I.4 まとめと実行
gdal_translate -of "GTiff" -a_srs EPSG:3099 -a_ullr 544142 3865294 557192 3847592 /Users/moto/grassdata/FileConvert_folder/Ibaraki_images/MapIbaraki.tif /Users/moto/grassdata/FileConvert_folder/Ibaraki_images/MapIbarakigeo.tif

I.5 Geotif化の結果

GRASS 6.4.0 (UTM53-JGD2000):~ > gdal_translate -of "GTiff" -a_srs EPSG:3099 -a_ullr 544142 3865294 557192 3847592 /Users/moto/grassdata/FileConvert_folder/Ibaraki_images/MapIbaraki.tif /Users/moto/grassdata/FileConvert_folder/Ibaraki_images/MapIbarakigeo.tif
Input file size is 1652, 2320
0...10...20...30...40...50...60...70...80...90...100 - done.
GRASS 6.4.0 (UTM53-JGD2000):~ >

I.6 Grassへの取り込み

r.in.gdal -o -f input=/Users/moto/grassdata/FileConvert_folder/Ibaraki_images/MapIbarakigeo.tif output=MapIbaraki25000 --overwrite

Windows版のPythonで成功。 RGBの取り込みメッセージが出ないと実行できなかったことになる。
MapIbaraki25000.red,MapIbaraki25000.green,MapIbaraki25000.blueの3マップが作成されている。

I.7 Grassでの表示

 個々に読んでもグレイ表示しかしない。カラーの合成をする必要がある。なお,ぼくの場合は,MapIbaraki25000@PERMANENTにgroup化されているが,これで表示はできない。
 d.rgb red=MapIbaraki25000.red green=MapIbaraki25000.green blue=MapIbaraki25000.blue
 この場合は,表示の際だけ合成表示される。

 合成画像を作成するには,r.compositeを実行すること。下記を参照。

 http://mf-atelier.sakura.ne.jp/mf-atelier/modules/tips/index.php/software/grass/commands/r.composite.html
r.composite

 RGBのTIFF画像を読み込むとチャンネルごとに別々のラスタデータになってしまうので、その後でカラー画像を作成したいときに使用。Raster/Manage map colors/Create RGBで,rgbそれぞれの画像データを指定して、出力ファイルを指定して実行。 "Number of levels to be used for each component"の項目は、通常の8bit画像なら32を指定。256も実行してみよう。

r.composite red=MapIbaraki25000.red@PERMANENT green=MapIbaraki25000.green@PERMANENT blue=MapIbaraki25000.blue@PERMANENT levels=32 output=MapIbaraki25000rgb --overwrite

 Mac版では実行できたとするがマップが作成されていない。Windows版tcl/tkで実行。10分ほど要した。

II gdalwarp

 今後追加予定。