python gdal重采样
inPath 输入影像outPath 输出影像times 重采样多少倍,一般下采样比较多,这里是下采样import osfrom osgeo import gdaldef resample(inPath, outPath, times):in_ds = gdal.Open(inPath)out_rows = int(in_ds.RasterYSize / times)out_columns = i
·
inPath 输入影像
outPath 输出影像
times 重采样多少倍,一般下采样比较多,这里是下采样
import os
from osgeo import gdal
def resample(inPath, outPath, times):
in_ds = gdal.Open(inPath)
out_rows = int(in_ds.RasterYSize / times)
out_columns = int(in_ds.RasterXSize / times)
num_bands = in_ds.RasterCount
gtiff_driver = gdal.GetDriverByName('GTiff')
out_ds = gtiff_driver.Create(outPath, out_columns, out_rows, num_bands)
out_ds.SetProjection(in_ds.GetProjection())
geotransform = list(in_ds.GetGeoTransform())
geotransform[1] *= times
geotransform[5] *= times
out_ds.SetGeoTransform(geotransform)
data = in_ds.ReadRaster(
buf_xsize=out_columns, buf_ysize=out_rows)
out_ds.WriteRaster(0, 0, out_columns, out_rows, data)
out_ds.FlushCache()
for i in range(num_bands):
out_ds.GetRasterBand(i + 1).ComputeStatistics(False)
out_ds.BuildOverviews('average', [2, 4, 8, 16])
del out_ds
更多推荐
所有评论(0)