wfutils.xl(ワールドファイル関連ツール)
著者: 森 洋久 / joshua@globalbase.org ※
プロトタイプ
exl wfutils.xl / generate [.map URL] [.crd URL]
exl wfutils.xl / shift [load-worldfile] [save-worldfile] [x-rate] [y-rate] [x-shift] [y-shift]
exl wfutils.xl / split [load-worldfile] [splited-files trunc] [x-split-nos] [y-split-nos]
引数
[.map URL] マップファイルURL
[.crd URL] 座標系ファイルURL
[load-worldfile] 読み込むワールドファイル名
[save-worldfile] 書き込むワールドファイル名
[splited-files truc] 分割されたファイル名の幹名
[x-rate] X方向解像度増大率
[y-rate] Y方向解像度増大率
[x-shift] X方向平行移動ピクセル数
[y-shift] Y方向平行移動ピクセル数
[x-split-nos] X方向分割数
[y-split-nos] Y方向分割数。
オプション
-
dir =[forward/reverse] デフォルトforward
-
prefix =プリフィックス(.を含む) デフォルト.tfw
-
環境
エージェント exl [UNDEF REF (exl)]
説明
ver.B.b17.02よりサポートされている機能です。
GLOBALBASEコンテンツからワールドファイルを作るツール。
matrix.xl のexport-pnmなどと一緒に利用する。export-pnmと一緒にワールドファイルが生成される仕組みにではないのは、既に生成された画像ファイルにあとからワールドファイルを付加できるようにするためです。
generate
このスクリプトにgenerateを指定すると、GLOBALBASEのコンテンツからワールドファイルを生成する。[.map URL]に指定すべきマッピングは、ソースが画像オブジェクト、.lstファイルであり、デスティネーションが座標系(.crd)である必要がある。一方、[.crd URL]に指定されるファイルは、ワールドファイルの基づく参照系に等価な座標系である。このように指定すると、[.crd URL]の座標系で見た、.lst画像データのワールドファイルを生成する。
dir オプションを指定することができ、dir=reverseとすると、X,Y軸の順番を入れ替えることが出来る。また、prefixはワールドファイル名につくプリフィックスを指定する。
shift
既にあるワールドファイル[load-worldfile]があるマトリックスから生成された画像に対するワールドファイルであったと仮定する。このマトリックスから、解像度の低いデータを出力したり、また、全体の一部の画像を出路した場合のワールドファイルを作る。
levelのレベルの画像の、そのレベルで見た場合の原点からのオフセットを[x-shift][y-shift]とする。[x-rate][y-rate]は 1/(1<<(level*dim_divide bit) の値を指定する。現在ですと、dim_divde bit=4 であることを考慮してこの値を計算する。たとえば、 1/4 という値になった場合は、 /4 と書くことが出来る。
[x-shift],[y-shift]は解像度を落としたあとの画像でどのくらいシフト場所であるかを指定する。
split
matrix.xl export-pnmなどを使って一つの画像を複数の画像に分割した場合に対応して、それぞれの画像ファイルに対するワールドファイルを作る。もとの画像のワールドファイルが、[load-wroldfile]であったとする。それをよこ[x-split-nos]個、たて[y-split-nos]個に分割したと考える。分割後の画像の大きさをチェックするために、[splited-file trunc]を指定する。これは、
matrix.xl のexport-pnmで指定する[pnm-filename]に対応する。ファイルの幹名のみを指定する。これにファイルの番号とプリフィックスが加えられている。一連のファイルを参照しながら、複数のワールドファイルを生成する。
使い方(一枚のワールドファイル画像を作る)
-
マトリックス画像を含む座標系を作り、COSMOSで見られるようにする。そのときの座標系をtest.crd,マトリックス画像をこの座標系に結びつけているマッピングを、test.mapとする。
-
exl wfutils.xl - - / generate test..map test.crd prefix=.tfw
を実行すると、ワールドファイルtest.tfwが生成される。
-
test.mapにより結びつけられているマトリックスtest.mtxから、matrix.xl export-pnmでppmを作成。
xl matrix.xl - - / export-pnm test.mtx test.ppm
-
生成されたtest.ppm からtiff画像を作る。
pnmtotiff test.ppm > test.tif
-
test.tif とtest.tfwとペアでワールドファイルの出来上がり。
使い方(画像の一部の解像度が低いワールドファイル画像を作る)
-
マトリックス画像を含む座標系を作り、COSMOSで見られるようにする。そのときの座標系をtest.crd,マトリックス画像をこの座標系に結びつけているマッピングを、test.mapとする。
-
exl wfutils.xl - - / generate test.map test.crd prefix=.tfw
を実行すると、ワールドファイルtest.tfwが生成される。
-
test.mapにより結びつけられているマトリックスtest.mtxから、level=1として、また、部分画像の指定をして、matrix.xl export-pnmでppmを作成。
xl matrix.xl - - / export-pnm test.mtx test.ppm 1000 2000 500 500 level=1 splitmode=part
-
生成されたtest.ppm からtiff画像を作る。
pnmtotiff test.ppm > test.tif
-
test.tfwから、上記部分出力に合わせてワールドファイルを作りなおす。
exl wfutils.xl - - / shift test.tfw tmp.tfw /4 /4 250 500
mv tmp.tfw test.tfw
level=1の場合、画像の解像度は 1/4 になっている。また、それにともない画像オフセットも 1/4 になる。この比率は、厳密には、マトリックスの生成時の仕様により異なるので注意が必要。
-
test.tif とtest.tfwとペアでワールドファイルの出来上がり。
使い方(一枚のマトリックス画像を複数のワールドファイル画像に分割)
-
マトリックス画像を含む座標系を作り、COSMOSで見られるようにする。そのときの座標系をtest.crd,マトリックス画像をこの座標系に結びつけているマッピングを、test.mapとする。
-
exl wfutils.xl - - / generate test.map test.crd prefix=.tfw
を実行すると、ワールドファイルtest.tfwが生成される。
-
test.mapにより結びつけられているマトリックスtest.mtxから、X方向4分割、Y方向8分割の分割画像を書き出し。
xl matrix.xl - - / export-pnm test.mtx test 4 8 splitmode=split
test-0-0.ppm, test-0-1.ppm, ....というファイルが出来上がる。
-
test.tfwから、上記部分出力に合わせてワールドファイルを作りなおす。
exl wfutils.xl - - / split test.tfw test 4 8 prefix=.tfw
mv tmp.tfw test.tfw
生成されたppmファイルが読み込まれ、対応するtfwが生成される。
-
ppm からtiff画像を作る。
pnmtotiff test-0-0.ppm > test.tif
pnmtotiff test-0-1.ppm > test.tif
.....
-
test-X-Y.tif とtest-X-Y.tfwとペアでワールドファイルの出来上がり。
▲
ページトップへ戻る
戻り値
-
generateの場合
[save-worldfile]で指定したファイル。
-
shiftの場合
[save-worldfile]で指定したファイル。
-
splitの場合
[splited-file trun]で指定したファイル群。
エラー
参考
バグ
▲
ページトップへ戻る