Tôi đang thử tìm hiểu các quy trình xử lý hình ảnh Viễn thám bằng cách sử dụng các ràng buộc Python GDAL và gọn gàng. Lần thử đầu tiên, tôi đang đọc tệp địa lý Landsat8, thực hiện một thao tác đơn giản và ghi kết quả vào một tệp mới. Mã dưới đây có vẻ hoạt động tốt, ngoại trừ raster ban đầu được đổ vào tệp đầu ra, thay vì raster thao tác.
Bất kỳ ý kiến hoặc đề xuất đều được hoan nghênh, nhưng đặc biệt lưu ý về lý do tại sao raster bị thao túng không hiển thị trong kết quả.
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
Tôi sử dụng Python 2.7.1 trên máy Windows 7 32 bit.
gdainfo -stats original.tiff
vàgdal-config --version
cũng có thể giúp ích.