Я намагаюся вивчити мотузки обробки зображень віддаленого зондування за допомогою прив'язки 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
Я використовую Python 2.7.1 на 32-бітній машині Windows 7.
gdainfo -stats original.tiff
таgdal-config --version
надто, що може допомогти.