Home > GeoTIFFを作成する
| Yaskey |
GeoTIFF を作成する |
update:2006/06/13 |
ここでは、ラスタデータ(画像ファイル)TIFFファイルから地理座標情報を付加した GeoTIFF を作成し、ベクタデータを重ね合わせる方法をメモしてます。
- ここで使用するソフト
- SuperMap Viewer 5 / 地理座標データを付加してラスタデータを読込める
- fGIS / Shapefile編集ソフト。ラスタデータも読込み可能
- GeoTIFF に関するサイト
- GeoTIFF Spec / GeoTIFF に関する詳細な説明
- GeoTIFF FAQ / GeoTIFF に関するQ&A
- メニュー
■ 画像ファイル(ラスタデータを用意する)
- 画像ファイル TIFF を用意します。
- TIFFファイル(Tagged Image File Format)は、今日ではあまり一般的ではないかもしれませんが、GIFやJPGやPNGファイルのようなラスタデータの画像ファイルのことです。一般の画像編集ソフトで閲覧することができます。
TIFF画像表示ソフト IrfanView / 手軽に閲覧するだけなら便利。その他たくさんのラスタデータも閲覧できます。
- 日本語版は「IrfanView 日本語版のページ」からダウンロードできます。
- GIF・JPEG・PNG などの地図ファイルからTIFFへフォーマット変換する場合は、Microsoft Photo EditorなどでTIFF形式に変換できますが、後で説明する GeoTIFF Metadata Format を使用して、GeoTIFF フォーマットへ変換する場合は、圧縮方式が "LZW" の場合はフォーマット変換できませんので、他の圧縮方式(例えば Packbits など)に指定するか、もしくは圧縮せずに変換する必要があります。
- Microsoft Photo Editor(v3.0.2.3)でTIFFファイルに変換する場合
- 変換元のGIFやJPEGファイルなどをMicrosoft Photo Editorで開く
- ファイル > 名前を付けて保存 > ファイルの種類をTIFF形式に選択し、オプションをクリック > 圧縮なしを選択し、保存する
- IrfanView (v3.97)でTIFFファイルに変換する場合
- 変換元のGIFやJPEGファイルなどをIrfanViewで開く
- [Save as]
をクリック > [TIF]を選択 > TIFF save options のウィンドウで [None](圧縮なし) か [Packbits] か [HuffmanRLE](白黒) を選択し保存する。※ Packbits がオススメです。
- その他一般のソフトの場合
- TIFFファイルで保存する場合に、オプションで圧縮方法の選択が可能です。
- Mapion、GoogleMap、国土地理院の空中写真などで表示される地図画像は、いずれも著作権がありますので使用に注意して下さい。
- ここでは、次のような地図画像ファイルがあると仮定して、以下説明していきます。
この地図画像は、世界測地系で表したものとし、
左上端の座標は(135.40584761、34.68274329 )、右下端の座標は(135.45243136、34.64740999)とする。
- 地図画像の経度緯度は、後ほど重ね合わせるベクタデータの測地系と一致している必要があります。
現在、日本の測地系は日本測地系と世界測地系が混在していますが、世界測地系で表す方が無難です。
測地系の値については、国土地理院の Web版TKY2JGD で変換することができます。
■ World File (*.tfw) の作成
- 地理座標参照ファイル Georeference with World File (*.tfw) を作成します。
- TIFF地理座標ファイルとは、英語で World File と呼ばれ、拡張子は tfw となります。この地理座標情報が組み込まれたTIFFファイルのことを GeoTIFF ファイルと呼び、MapServerなどのGISソフトで、ラスタデータとして表示させることができます。
また、MapServer や fGIS の場合は、後で説明(MapServerでGeoTIFFを表示)するように、このファイルを作成するだけで、他のラスタデータを表示させることが可能となります。
この World File はテキストエディタで作成、編集することができ、ファイルの中身は、次のような6つの数字のパラメータが記載されている簡単なものです。この6つのパラメータが TIFFファイル の地理座標を表しています。
World File の中身
0.0000776396 // A
0.0000000000 // B
0.0000000000 // C
-0.0000642424 // D
135.4058864253 //E
34.6827754101 //F
- World File のパラメータ自動生成スクリプト
※画像ファイルの左上と右下のXY座標値とサイズを半角数字で入力し、変換をクリックします。その下に表示された World File のダウンロードをクリックし、「worldfile.tfw」を画像ファイルと同じファイル名(拡張子は.tfwのまま)にして 、画像ファイルと同じフォルダに保管します。
- World File についての詳細は、こちらを参照してください。
■ GeoTIFFの作成 SuperMap Viewer 5 を使用して、地図画像TIFF に world file を付加させ GeoTIFF ファイルに変換します。
※次項で説明する fGISソフトやMapServerでTIFFを表示させる場合は、この欄で解説するGeoTIFFへのファーマット変換の必要はなく、ラスター画像ファイル xxx.tif と同じプレフィックス名(拡張子名を除いた xxx のファイル名)の World File( xxx.tfw) を別ファイルで同じフォルダに用意することによって使用できます。
※SuperMap Viewer 5 は、地理座標を記録していない画像ファイル(ラスタデータ)をインポート/エクスポートする際、画像地理座標参照ファイルにより、地理座標情報を取得できます。また SuperMap Viewer 5 は、4種類の画像地理座標参照ファイルをサポートしているようです。
ここでは、その内 tfw ファイルを使用した方法で説明します(その他のXMLファイルなどの使用方法は、SuperMap Viewer 5 のヘルプを参照ください)
- SuperMap Viewer 5 Ver.5.0.1 を起動します。
- メニュー > ファイル > 新規データソース > 適当なフォルダに適当なファイル名で保管します。
- 地図画像と world file のインポート
- メニュー > データーセット > データーセットのインポート > ファイルの追加 > 地図画像ファイルTIFFを指定し開きます。
- 右下の詳細をクリック > 右下のファイル設定:画像地理座標参照のフォルダアイコンをクリック > ファイルの種類 「TIFF地理座標ファイル(*.tfw )」を選択し、先程作成した world file を選択し、開くをクリック
- これで、TIFFファイルに地理座標情報を付加させることができました。画面下のタスクバーに座標が表示されていますので、正しくインポートされているか確認してください。
また、このままShapefileや数値地図2500(空間データ基盤)などをインポートさせ、重ね合わせることも可能です。地図画像に、世界測地系の数値地図2500(空間データ基盤)を重ね合わせた例
- 地図画像 GeoTIFF のエクスポート
- メニュー > データーセット > データーセットのエクスポート > エクスポートする画像ファイルを選択 > フォーマットをクリック > TIFFファイルを選択 > エクスポート先のフォルダを指定し、エクスポートをクリックします。
■ fGISでGeoTIFF と Shapefile を重ね合わせる Forestry GIS(fGIS)ソフトを使用して、作成した GeoTIFF を表示させ、Shapefileと重ね合わせます。
※ fGISの場合は、GeoTIFFファイルでなくても、ラスター画像ファイル xxx.tif と xxx.tfw を用意するだけで、tfw 情報の経度緯度で表示されます。
- fGISを起動します。
- 任意のフォルダに、任意の fGIS project files(*.ttkgp) のファイル名で、開くをクリックします。
- メニュー > Map > Add Layer > 先程作成したGeoTIFFファイル(xxx.tif と xxx.tfw の場合は xxx.tif ファイル)を選択し、開くをクリックします。
- Shapefileを追加する ⇒ メニュー > Map > Add Layer > Shapefile選択し、開くをクリックします。
▼画面の右半分がベクターデータShapefile(世界測地系)で、左半分が地図画像GeoTIFFを重ね合わせたもの
- 画像地図 GeoTIFF が最新のものであれば、その地図になぞらえて Shapefileを編集できます(例えば、線路や建物を修正したりなど)
- fGISを使用したShapefileの編集方法は、こちらを参照ください。
■ GeoTIFFについて
GeoTIFFについて
- GeoTIFFとは、地理情報が付加されたTIFFファイル(ラスタデータ)のことです。
- GeoTIFFのメインサイト
- GeoTIFF
- GeoTIFF Spec / GeoTIFF に関する詳細な説明
- GeoTIFF FAQ / GeoTIFF に関するQ&A
- libgeotiff / GeoTIFFの編集ソフト
- GeoTIFFのサイトか、MapTools.org からダウンロードできます
- MapTools.org の場合は、ダウンロードリストの中から libgeotiff_GUI.zip をダウンロードします
- ダウンロードしたファイルを解凍し、setup.exe をダブルクリックして、インストールします
▼ GeoTIFF Tools in GUI Form スクリーンショット
※このソフト は、次のことができます。
1.GeoTIFFファイルに含まれる World File や座標系情報(*.gtf)を取出すこと(1.listgeo.exe)
2.地理情報のないTIFFファイルに、World File や座標系情報を含めること(2.geotifcp.exe)
- GeoTIFFファイルから World File を取出す listgeo.exe
- 1.listgeo.exe の右端の [...] ボタンをクリックし、取出したいGeoTIFFファイルを選択します。
- [Enable Esri "-tfw" option] にチェックを入れ、[listgeo] をクリックします(チェックを入れない場合は GeoTIFF metadata (*.gtf )が生成されます)
- メモ帳が開き、World File が表示されます。
※GeoTIFFファイルに World File が含まれてない場合は、「ファイル xxx.tfw が見つかりません。新しく作成しますか」というメッセージが表示されます。- GeoTIFFファイルと同じフォルダに、同じプレフィックス名の World File が生成されています。
- TIFFファイルからGeoTIFFを作成する geotifcp.exe
- 2.geotifcp.exe の GeoTIFF metadata の右端の [...] ボタンをクリックし、付加したい GeoTIFF Metadata Format を選択します。
- [Input tiff] の右端の [...] ボタンをクリックし、付加させたい TIFFファイル を選択します。
- [From 2 - geotifcp [-e esri_worldfile] input output] 右の geotifcp_2 をクリックします。
- World File が付加された GeoTIFF が、[Output GeoTIFF] に記載されているファイル名で同じフォルダに生成されます。
- TIFFファイルからGeoTIFF作成時の注意点
- 作成元のTIFFファイルの圧縮方式が "LZW"の場合は、正しく作成されません ので、他の圧縮方式(例えば Packbits など)のものか、もしくは圧縮されていないTIFFフォーマットである必要があります。
- GeoTIFF Metadata Format とは、TIFFファイルに地理情報を付加させるためのファイルで、このファイルを読込むことで、TIFFファイルに地理情報を付加させ、GeoTIFFにフォーマット変換することができます。
※GeoTIFF Metadata Format に関する詳細は、こちらを参照ください。
- Metadata Format パラメータ
Geotiff_Information:
Version: 1
Key_Revision: 1.0
Tagged_Information:
ModelTiepointTag (2,3):
0 0 0
133.680301 35.6189999 0 //画像の左上の経度と緯度を指定
ModelPixelScaleTag (1,3):
0.000288145337 0.000288145337 0 //1ピクセルのサイズを指定
End_Of_Tags.
Keyed_Information:
GTModelTypeGeoKey (Short,1): ModelTypeGeographic
GTRasterTypeGeoKey (Short,1): RasterPixelIsArea
GeographicTypeGeoKey (Short,1): GCS_WGS_84 //測地系を指定
GeogCitationGeoKey (Ascii,7): "WGS 84" //測地系引用句を指定
GeogAngularUnitsGeoKey (Short,1): Angular_Degree //距離のユニットを指定
End_Of_Keys.
End_Of_Geotiff.
GCS: 4326/WGS 84 //Geographic coordinate system 座標系のコードを指定
Datum: 6326/World Geodetic System 1984 //座標系基準点のコードを指定
Ellipsoid: 7030/WGS 84 (6378137.00,6356752.31) //楕円体形式のコードを指定
Prime Meridian: 8901/Greenwich (0.000000/ 0d 0' 0.00"E) //座標系の基準点コードを指定
Corner Coordinates:
Upper Left (133d40'49.08"E, 35d37' 8.40"N) //画像の左上の経度緯度 ( 度分秒 を d+'+."+東E/北N で指定)
Lower Left (133d40'49.08"E, 33d36'26.85"N) // 〃 左下 〃
Upper Right (136d25'16.10"E, 35d37' 8.40"N) // 〃 右上 〃
Lower Right (136d25'16.10"E, 33d36'26.85"N) // 〃 右下 〃
Center (135d 3' 2.59"E, 34d36'47.62"N) // 〃 中心 〃
- その他の座標系の場合
- 日本測地系2000
- GeographicTypeGeoKey (Short,1): GCS_JGD2000
- GeogCitationGeoKey (Ascii,8): "JGD2000"
- GCS: 4612/JGD2000
- Datum: 6612/Japanese Geodetic Datum 2000
- Ellipsoid: 7019/GRS 1980 (6378137.00,)
- Prime Meridian: 8901/Greenwich
- COORD_OP_METHOD ?
- 旧日本測地系
- GeographicTypeGeoKey (Short,1): GCS_Tokyo
- GCS: 4301/Tokyo
- Datum: 6301/Tokyo
- Ellipsoid: 7004/Bessel 1841 (6377397.155,)
- Prime Meridian: 8901/Greenwich
- 平面直角座標系(6系の場合)
- GTCitationGeoKey (Ascii,40): "JGD2000 / Japan Plane Rectangular CS VI"
- GeogCitationGeoKey (Ascii,8): "JGD2000"
- GeogAngularUnitsGeoKey (Short,1): Angular_Degree
- ProjectedCSTypeGeoKey (Short,1): Unknown-2448 #GeoTIFFでは使用されていないコードのようです。
- ProjLinearUnitsGeoKey (Short,1): Linear_Meter
- PCS = 2448 (name unknown)
- Projection Linear Units: 9001/metre (1.000000m)
- Corner Coordinates:
Upper Left ( -53358.933, -147094.184)
Lower Left ( -53358.933, -148876.077)
Upper Right ( -51199.934, -147094.184)
Lower Right ( -51199.934, -148876.077)
Center ( -52279.434, -147985.130)平面直角座標系(6系の場合)
- COORD_OP_CODE: 17801〜17819
- Japan Plane Rectangular CS zone I〜 XIX
- 使用上の注意点
- 全てのファイルは、ひとつのフォルダの中に置く必要があります。
- ファイル名に、スペースがあってはいけません。
■ OpenEV(GDAL) OpenEV では、ラスタデータを読込み、閲覧することができます。
また、付属のGDALを使用して、ラスタデータ地理情報の詳細を確認することができます。
- GDALを使用して、ラスタデータに付加されている地理情報を確認する
FWTools Shall を起動し、[ gdalinfo ファイル名 ] を入力します。
▼ c:/mapdata/load.tif を照会した例
(load.tif ファイル概要 / 平面直角座標の6系 EPSGコード:2448 )
C:\Program Files\FWTools0.9.8>gdalinfo c:\mapdata\load.tif
Driver: GTiff/GeoTIFF
Size is 1500, 1238
Coordinate System is:
PROJCS["JGD2000 / Japan Plane Rectangular CS VI",
GEOGCS["JGD2000",
DATUM["Japanese_Geodetic_Datum_2000",
SPHEROID["GRS 1980",6378137,298.2572221010002,
AUTHORITY["EPSG","7019"]],
AUTHORITY["EPSG","6612"]],
PRIMEM["Greenwich",0],
UNIT["degree",0.0174532925199433],
AUTHORITY["EPSG","4612"]],
PROJECTION["Transverse_Mercator"],
PARAMETER["latitude_of_origin",36],
PARAMETER["central_meridian",136],
PARAMETER["scale_factor",0.9999],
PARAMETER["false_easting",0],
PARAMETER["false_northing",0],
UNIT["metre",1,
AUTHORITY["EPSG","9001"]],
AUTHORITY["EPSG","2448"]]
Origin = (-53358.933079,-147094.183521)
Pixel Size = (1.43933256,-1.43933256)
Metadata:
AREA_OR_POINT=Area
Corner Coordinates:
Upper Left ( -53358.933, -147094.184) (135d25'3.88"E, 34d40'21.61"N)
Lower Left ( -53358.933, -148876.077) (135d25'4.28"E, 34d39'23.78"N)
Upper Right ( -51199.934, -147094.184) (135d26'28.69"E, 34d40'22.00"N)
Lower Right ( -51199.934, -148876.077) (135d26'29.07"E, 34d39'24.17"N)
Center ( -52279.434, -147985.130) (135d25'46.48"E, 34d39'52.89"N)
Band 1 Block=1500x5 Type=Byte, ColorInterp=Red
Band 2 Block=1500x5 Type=Byte, ColorInterp=Green
Band 3 Block=1500x5 Type=Byte, ColorInterp=Blue
- GDAL その他のオプション
上記のように、座標投影法が設定されているラスタデータでは、gdalwarp を使用して座標系の変換などができます。
- 座標系の変換
gdalwarp -t_srs EPSG:コード 座標変換前のファイル名 座標変換後のファイル名
例) c:/mapdata/geotiff フォルダにある utm10.tif ファイルを、EPSGコード4326へ座標変換し、同じフォルダの wgs84.tif というファイルを作成する。
gdalwarp -t_srs EPSG:4326 C:/mapdata/geotiff/utm10.tif C:/mapdata/geotiff/wgs84.tif
Creating output file that is 9512P x 6981L.
:0...10...20...30...40...50...60...70...80...90...100 - done.
ogr2ogrと違う点
- 作成するファイル名を指定する必要があります
- 座標変換元のファイル名を先、変換後のファイル名を後に記述します
- 座標系のセット
gdalwarp -s_srs EPSG:コード 座標変換前のファイル名 座標変換後のファイル名
- GeoTIFF Tools (geotifcp.exe)で作成した GeoTIFF ファイルを gdal を使用して座標変換する場合
- この GeoTIFF ファイルの場合は、そのままでは正しく座標変換が行われないようです。そのため、一度 gdalwarp -s_srs で現在の座標系セットを行い、その上で gdalwarp -t_srs により、他の座標系に変換します。
■ MapServerでGeoTIFFを表示 MapServerは、GeoTIFFをはじめ、各種ラスタデーターを表示させることができます。詳細は HOWTO for Rasters in MapServer 4.6 を参照してください。
- Mapfileの指定
GeoTIFF ファイルの場合は、地理座標情報 World File がインプットされていますので、他のベクタデータのレイヤーと重ね合わせて、表示させることが可能です。その他のラスタデータ(例えば GIF、PNG、JPEGなど)を使用する場合は、ラスターデータファイルと同じプレフィックス名の World File( *.tfw) を別ファイルで用意することによって使用できます(例えば、mapdata.gif とその World File mapdata.tfwを用意する)※現在、こちらで表示確認できているのは TIFF と PNG のみです。
- mapfileの指定は次のように指定します。
MAP
......
SHAPEPATH "c:/mapdata/" #地図ファイルのパス
LAYER
NAME "USJ"
DATA "usj.tif" #GeoTIFFファイル名
TYPE RASTER #ラスタデーターの指定
STATUS ON #ステータスは必ず "ON "を指定
PROJECTION
"init=epsg:4326" #座標指定
END
END
......
END
- Tile Index タイルインデックス
多くの枚数のラスタデータをMapServerで表示させる場合、mapfileへ1枚1枚のレイヤーを記述していたら大変なことになります。その時は、TileIndexという手法を用います。
- 参照先サイト
- mapfileの指定方法とTileIndexの説明 / HOWTO for Rasters in MapServer 4.6
- GDAL:TileIndexの作成方法 / GDAL: gdaltindex
- Tileindexの作成方法
- gdal を起動し、[ gdalindex タイルインデックスのファイル名 格納するラスタファイル名 ] を入力します。
※タイルインデックスのファイル名は任意の名前を入力すると、自動的にそのファイルが作成されます。
C:\Program Files\FWTools0.9.8>gdaltindex c:\mapdata\index.shp c:\mapdata\1.tif
Creating new index file...Creating new index file...と出力され、タイルインデックスのファイル(Shapefile)が作成されています。
- 2枚目以降は、[ gdalindex タイルインデックスのファイル名 格納するラスタファイル名 ] 格納するファイル名だけ変更して入力します。
何も表示されませんが、先程のタイルインデックスのファイルに追加で保管されています。
C:\Program Files\FWTools0.9.8>gdaltindex c:\mapdata\index.shp c:\mapdata\2.tif
Creating new index file...
- Mapfileの指定方法
何枚ものラスタデータであっても、次のようにTileIndexのレイヤーを指定するだけで、すべてのラスタデータが表示されます。
LAYER
NAME "tile"
STATUS ON
TILEINDEX "../geotiff/index.shp" #タイルインデックスのファイル名を指定します。
TILEITEM "Location" #フィールド名を指定します。※デフォルトで Location というフィールドに格納されます。
TYPE RASTER
END
- Tileindexの補足
- タイルインデックスを作成する場合は、ラスタデータの経度緯度が重なっているものでも問題ありません。
- タイルインデックスへ格納するラスタデータの座標系は同じ設定である必要があります。
- 格納するラスタデータのサイズは同一である必要はありません。
- 格納するラスタデータは、GeoTIFFである必要はなく、ラスターデータと World File だけで使用できます。