とらりもんHOME  Index  Search  Changes  Login

GDAL

GDALとは

  • GDALはGeospatial Data Abstraction Libraryの略。ジーダルではなくグドールと読むらしい。
  • ラスター(画像のようなメッシュ)形式のGISデータを処理するライブラリ。
    • ベクターを処理する場合はogr
  • GISソフトを起動してごちゃごちゃやらないとできないような処理が, GDALではLinuxのコマンドラインからさくっとできてしまう。
  • Linuxだけでなく,Windowsでも動作する。
  • http://www.geopacific.org/opensourcegis/gdal-ogr/gdal-commands

インストール方法 (Ubuntu Linux)

シェルコマンドだけ: sudo apt-get install gdal-bin
pythonから使う: sudo apt-get install python-gdal python3-gdal

使い方メモ(シェル)

  • 地図投影法の変換など → 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 -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 ...
  • ヘッダ情報の追加、フォーマット変換、画像拡大縮小など → 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.

使い方メモ(python) http://www.gdal.org/gdal_tutorial.html

import gdal, gdalconst
from gdalconst import *
ds=gdal.Open("N14E105_W02DC068DR_sl_HV")

使い方メモ(OGR)

  • 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 "出力ファイル名" "入力ファイル名"

C++ライブラリ

sudo apt-get install libgdal-dev libgdal1-dev libgdal1h gdal-bin
  • CE_None ... GDALの記号定数で, =0。意味はNo erro。
  • GDALDatasetクラスとGDALRasterBandクラス
  • nodataの値はどこに記録されているのか?
Last modified:2017/10/30 14:16:22
Keyword(s):
References:[When you don't know how to do it.] [とらりもんHOME]