python gdal 大tif 切分成512 512带坐标 带重叠度 并保存
时间: 2023-07-26 22:15:15 浏览: 72
好的,那我来补充一下,将切分后的小图保存到指定目录下。
```python
from osgeo import gdal
import os
# 打开tif文件
ds = gdal.Open('input.tif')
# 获取地理参考信息
proj = ds.GetProjection()
geotransform = ds.GetGeoTransform()
# 小图大小
tile_size = 512
# 重叠度
overlap = n
# 获取原始图像的大小
xsize = ds.RasterXSize
ysize = ds.RasterYSize
# 计算切分后小图的数量
x_tiles = int((xsize - overlap) / (tile_size - overlap))
y_tiles = int((ysize - overlap) / (tile_size - overlap))
# 创建保存小图的目录
if not os.path.exists('tiles'):
os.makedirs('tiles')
# 切分图像并保存
for i in range(x_tiles):
for j in range(y_tiles):
x0 = i * (tile_size - overlap)
y0 = j * (tile_size - overlap)
filename = f'tile_{i}_{j}.tif'
tile_ds = gdal.Translate(os.path.join('tiles', filename), ds, srcWin=[x0, y0, tile_size, tile_size])
tile_ds.SetProjection(proj)
tile_ds.SetGeoTransform((geotransform[0] + x0 * geotransform[1], geotransform[1], 0, geotransform[3] + y0 * geotransform[5], 0, geotransform[5]))
tile_ds = None
```
这段代码会将切分后的小图保存到名为"tiles"的目录下,并且每个小图都带有原始图像的地理参考信息。