とらりもんHOME  Index  Search  Changes  Login

GDAL_shell

How to use GDAL/OGR library on Linux shell. シェルでGDAL/OGRライブラリ(コマンド)を使うためのメモ。

気をつけよう!

  • gdalwarpの四隅指定: xmin ymin xmax ymax
  • gdal_translateの四隅指定: ulx uly lrx lry つまりxmin ymax xmax ymin

地図投影法の変換など: gdalwarp

# UTM54からlatlonへの変換例
gdalwarp -s_srs EPSG:32654 -t_srs EPSG:4612 ALAV2A116402870-OORIRFU.RCRefG.tif out.tif
EPSGコードを調べたいときは, $ less /usr/share/proj/epsg

リサンプリング:

  • gdal_translateとgdalwarpのどちらでもできるが, gdalwarpの方が良い。
  • gdalwarpの方が, 4隅をきっちり正確に決めてくれる(gdal_translateは少しずれる)
  • gdalwarpはNNやCCなどの手法も指定できる。 gdalwarp -r ...
  • ただし, いくつかの特定バンドだけ抜き出すのはgdal_translateしかできない。そういうときは2段階でやるのがよい:
gdalwarp -te 140.0842835 36.0799195 140.1285914 36.1377125 -ts 1376 1795 -r average inp.tif dummy.tif
gdal_translate -b 1 -b 2 -b 3 -b 5 -b 6 -b 7 dummy.tif out.tif

画像の切り出し

gdal_translate -projwin 140.07 36.15 140.17 36.05 src.tif cut.tif ← 左上と右下の座標を指定すること。

サムネイルの作成

gdal_translate -of JPEG -b 3 -b 2 -b 1 AVNIR2.tif AVNIR2_thumbnail.jpg -outsize 6.25% 6.25%

バンドごとに別ファイルになってるのを1つのファイルに統合する

gdal_merge.py -separate -o out.tif band1.tif band2.tif band3.tif ...

モザイク(この例はGTOPO30を全球モザイク):

gdal_merge.py [EW]??????.DEM -o GTOPO_world.tif -ul_lr -180 90 180 -90 -n -9999 -a_nodata -9999
  • 注: gdal_mergeは, 同じファイル名のファイルがあると上書きしてくれないことがある。まず既存のファイルの削除を!!
  • ファイルのない場所(海とか)を埋める値の指定: -init 255

ヘッダ情報の追加、フォーマット変換、画像拡大縮小など → gdal_translate

ヘッダ情報などの基本情報の表示 → gdalinfo

複数のGeoTIFF画像をモザイクして一枚の画像にする:

$ gdalwarp "入力ファイル1" "入力ファイル2" ・・・ "出力ファイル名"
ワイルドカードも使える:
$ gdalwarp *.tif "出力ファイル名"

ピクセル値の抜き出し

gdallocationinfo -wgs84 filename [lon value] [lat value]

フォーマット変換

gdal_translate -of ENVI input.tif output   (GeoTIFFファイルをRawファイルにする)
↑ENVIは.hdrというヘッダファイルが付随するが, 本体はRaw。

座標情報の付加・書き換え

gdal_translate -a_srs EPSG:4326 -a_ullr 105.3 15.38 105.4 15.28 in.tif out.tif
... -a srs EPSG:4326 「緯度経度座標系(latlon; EPSGコード4326)に設定せよ」
... -a ullr x1 y1 x2 y2 「四隅の座標をこのように設定せよ」

get slope from DEM

gdaldem slope -s 111120 filename_of_DEM.tif filename_of_slope.tif
The value of -s is the ratio dx/dz. In case of latlon, it must be 111120.

ogrinfo

# レイヤ名の一覧を表示
ogrinfo data
# 特定のレイヤの属性を表示
ogrinfo -summary data data_zokusei
または
ogrinfo -summary data -al
# sql構文
ogrinfo data data_zokusei -sql "select * from data_zokusei where hoge='piyo'"
# 単に属性を選択する場合は、下のようにも書ける
ogrinfo data data_zokusei -where "hoge='piyo'"

ogr2ogr

# 入出力のファイル順がgdal_translateと逆な点に注意!
ogr2ogr "出力ファイル名" "入力ファイル名"
Last modified:2019/09/25 14:23:23
Keyword(s):
References:[GDAL]