python代码示例将一张1米*1米的图重采样为5米*5米
时间: 2024-03-17 08:40:56 浏览: 12
下面是一个使用Python的GDAL库实现的示例代码,可以将1米*1米的图重采样为5米*5米:
```python
from osgeo import gdal
# 打开原始图像
src_ds = gdal.Open('input.tif')
# 计算输出图像的大小
src_geo = src_ds.GetGeoTransform()
x_res = src_geo[1] * 5
y_res = src_geo[5] * 5
x_size = int(src_ds.RasterXSize * src_geo[1] / x_res)
y_size = int(src_ds.RasterYSize * abs(src_geo[5]) / y_res)
# 创建输出图像
dst_driver = gdal.GetDriverByName('GTiff')
dst_ds = dst_driver.Create('output.tif', x_size, y_size, src_ds.RasterCount, src_ds.GetRasterBand(1).DataType)
dst_ds.SetProjection(src_ds.GetProjection())
dst_ds.SetGeoTransform((src_geo[0], x_res, 0, src_geo[3], 0, y_res))
# 进行重采样
gdal.ReprojectImage(src_ds, dst_ds, src_ds.GetProjection(), dst_ds.GetProjection(), gdal.GRA_NearestNeighbour)
# 关闭数据集
src_ds = None
dst_ds = None
```
在上面的代码中,我们首先使用GDAL打开了原始图像,然后计算了输出图像的大小。接下来,我们创建了一个新的输出图像,并将其投影设置为与原始图像相同。最后,我们使用gdal.ReprojectImage函数将原始图像重采样为新的输出图像。在函数中,我们使用了gdal.GRA_NearestNeighbour参数,表示使用最近邻插值法进行重采样。最后,我们关闭了数据集对象,释放了内存。