GDALを使用してInt16データをバイトに変換する方法


8

HDF形式のInt16バンドのデータがあります。

これをGeoTIFF形式のバイトバンドに変換したいと思います。

Int16のデータ範囲は-2000〜12000なので、これをバイト範囲0〜255にマッピングします。

GDALツールでこれを行うにはどうすればよいですか?(可能な場合)それ以外の場合、これを行うPythonスクリプトをどのように記述できますか?

回答:


8

gdaltranslateツールの-scale機能を知っているかどうかはわかりません。それはまさにあなたが探しているものかもしれません。デフォルトは0〜255で、ラスタの最小値と最大値です。また、これを使用する前にnull値を設定する必要があります。

念のため、出力をByteタイプとして指定することもできます -ot "Byte"

お役に立てれば、 :)

編集:私は常に役立つリンクを含めるのが好きです:http : //www.gdal.org/gdal_translate.html


いいえ、どいたしまして。
s_a 2012

6

あなたがしたいことは正規化と呼ばれ、一般的な式は次のとおりです:

正規化式

どこ:

  • In =新しい値
  • I =現在価値
  • Min =現在の最小値
  • 最大=現在の最大値
  • newMin / newMax =希望の最小/人(あなたの場合0と255)

gdal / python / numpyの組み合わせを使用して、hdfデータセットを開き、上記の式に基づいてセル計算を実行できます(ただし、eg:geotiffファイルの場合ほど簡単ではありません。開始スクリプトを今すぐ見つけることができますここにサブデータセットをロードする方法)


情報をありがとう。このためのスクリプトを作成できるかどうかを確認します。
ljbade 2012
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.