Python GDALバインディングとnumpyを使用して、リモートセンシング画像処理のロープを学ぼうとしています。最初の試みとして、Landsat8ジオティフファイルを読み取り、簡単な操作を行い、結果を新しいファイルに書き込みます。以下のコードは正常に動作するように見えますが、操作されたラスターではなく、元のラスターが出力ファイルにダンプされます。
コメントや提案は歓迎しますが、特に、操作されたラスターが結果に表示されない理由についてのメモです。
import os
import gdal
gdal.AllRegister()
file = "c:\~\LC81980242015071LGN00.tiff"
(fileRoot, fileExt) = os.path.splitext(file)
outFileName = fileRoot + "_mod" + fileExt
ds = gdal.Open(file)
band = ds.GetRasterBand(1)
arr = band.ReadAsArray()
[cols, rows] = arr.shape
arr_min = arr.Min()
arr_max = arr.Max()
arr_mean = int(arr.mean())
arr_out = numpy.where((arr < arr_mean), 10000, arr)
driver = gdal.GetDriverByName("GTiff")
outdata = driver.Create(outFileName, rows, cols, 1, gdal.GDT_UInt16)
outband = outdata.GetRasterBand(1)
outband.WriteArray(arr_out)
outdata = None
print arr_min
> 0
print arr_max
> 65535
print arr_mean
> 4856
Windows 7 32ビットマシンでPython 2.7.1を使用します。
こんにちは、これを見てくれてありがとう!ジオトランスフォームを無視したことは知っています。(Irfanviewを使用して)出力イメージ全体が表示されるので、それができないと思います。今夜席に戻ったときにあなたが要求した情報を生成します。
—
HDR
arr_minはどうなりますか?
—
-fluidmotion
arr_min =0。これを表示するように投稿を更新しました。ありがとう!
—
HDR
gdainfo -stats original.tiff
やgdal-config --version
、あまりにもそれを助けることができます。