Geotiff画像からCSVファイルへの出力

2,499 views
Skip to first unread message

data.analy...@gmail.com

unread,
Feb 21, 2019, 5:45:34 AM2/21/19
to QGIS初心者質問グループ
お世話になります。標記について質問させてください。

geotiff画像をcsvファイルに変換する方法を探しています。

画像から
Lon, Lat, Value
xxx1,yyy1,100
xxx2,yyy2,156
xxx3,yyy3,120

というような、CSVファイルを作成したいです。

gdallocationinfoを使うことで可能かと思ったのですが、方法がわからなく。。。
gdallocationinfo -wgs84 [input.tiff] * *
みたいな感じでワイルドカードを使えばいけるかと思いましたが...。

どなたかご存知の方がいましたら、教えていただけると嬉しいです。
どうぞよろしくお願い致します。

ありた

unread,
Feb 21, 2019, 9:11:02 AM2/21/19
to QGIS初心者質問グループ
こんにちは

gdal_translate を使用して XYZ 形式(テキスト形式)に変換するのが楽かと思いました。


$ gdal_translate -of XYZ -co COLUMN_SEPARATOR=, input_4326.tif output_4326.xyz

上記の出力ファイルの拡張子は *.xyz にしていますが、 *.csv でも可能です。
ヘッダ行の追加は -co ADD_HEADER_LINE=YES で可能ですが、 X,Y,Z 固定のようでした。

もし、入力の GeoTIFF データが経緯度座標系でなければ、あらかじめ座標系の変換を行います。

$ gdalwarp -of GTiff -t_srs EPSG:4326 input.tif input_4326.tif


その他のオプション(範囲指定や補間法、ノーデータの扱いなど)は以下を確認してください。

data.analy...@gmail.com

unread,
Feb 21, 2019, 7:49:05 PM2/21/19
to QGIS初心者質問グループ
xyzとはテキスト形式のことだったんですね。
ありがとうございます!

sakuya

unread,
Feb 21, 2019, 8:36:48 PM2/21/19
to QGIS初心者質問グループ
こちらsakuyaです。
似たような質問なのでこの場所に投稿させていただきます。
衛星データのように、
X座標,Y座標バンド1,バンド2,バンド3
といったように、複数バンドのデータを持っているGeotiffからテキストデータを入手するためには
gdalをどのように設定してやればよいのでしょうか?

ありた

unread,
Feb 22, 2019, 9:00:06 AM2/22/19
to QGIS初心者質問グループ
sakuya さん

バンドの選択は gdal_translate-b オプションを利用してください。

sakuya

unread,
Feb 22, 2019, 9:32:29 AM2/22/19
to QGIS初心者質問グループ
ありた さま
こちらsakuyaです。お世話になります。
-bオプションを使うということなので

dal_translate -of XYZ -co COLUMN_SEPARATOR=, -b 1 -b 2 -b 3 input_4326.tif output_4326.xyz
とすればいいのかなと思ったのですが、
Warning 6: XYZ driver only uses the first band of the dataset.
と最初のバンドしか出力できないとなってしまいました。3バンドとも同時に出力というのはできないのでしょうか?

ありた

unread,
Feb 22, 2019, 10:15:00 PM2/22/19
to QGIS初心者質問グループ
こんにちは

(おそらく)出力の XYZ 形式側の仕様からか、この方法では単バンドしか出力できないようです。
そのため、やるとしたら各バンドごとに出力して結合させるくらいでしょうか。

いまのところ、私はコマンドによって全バンド出力の方法は知りませんが、もしかしたら、
別のテキストベースのラスタ形式だと可能かもしれません。

あとは Python 等から GDAL ライブラリや libtiff / libgeotiff を使えばいけると思います。

yoh_chan

unread,
Feb 22, 2019, 11:49:07 PM2/22/19
to QGIS初心者質問グループ
こんにちは。

gdal2xyzというコマンドでは、-bandオプションで出力するバンドを指定できるのですが、これを繰り返して複数バンドの値を出力できるようです。

gdal2xyz -band 1 -band 2 -band 3 input_4326.tif output_4326.xyz

gdal2xyzが入っていない環境もあるようなので、もし利用できるのであれば、ということになりますが、お試しください。

adachi

unread,
Feb 24, 2019, 8:09:52 PM2/24/19
to QGIS初心者質問グループ
みなさま有益な情報をお持ちで参考になります。

蛇足的な情報ではありますが、「コマンド打つのはよーわからんからGUIでやりたい!」という方もいらっしゃるかと思いますので(私のように…)

プロセッシングツール → GDAL → ラスタ変換 → gdal2xyz

と、まさにyoh_chanさんのおっしゃったツールがありました。
残念ながら、このツールでは1バンドずつの出力にしか対応していないようですが…

sakuya

unread,
Feb 24, 2019, 9:48:08 PM2/24/19
to QGIS初心者質問グループ
こちらsakuyaでうs。お世話になります。
皆様方、いろいろとありがとうございました。
無事にCSVファイルを入手することができました。
ありがとうございます。
Reply all
Reply to author
Forward
0 new messages