python gdal 大tif 切分成512 512带坐标 带重叠度
时间: 2023-07-26 09:15:15 浏览: 145
要将大的tif文件切分成512 * 512大小的小图,并且保留坐标和重叠度,可以使用Python的GDAL库来实现。
首先,需要使用GDAL库打开tif文件,并获取其地理参考信息(即坐标信息)。可以使用以下代码实现:
```python
from osgeo import gdal
# 打开tif文件
ds = gdal.Open('input.tif')
# 获取地理参考信息
proj = ds.GetProjection()
geotransform = ds.GetGeoTransform()
```
接下来,需要计算出切分后每个小图的重叠度,假设为n像素。可以设置一个滑动窗口,每次移动n像素来切分图像。可以使用以下代码实现:
```python
# 小图大小
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))
# 切分图像并保存
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'
gdal.Translate(filename, ds, srcWin=[x0, y0, tile_size, tile_size])
```
这段代码会将大的tif文件切分成小的tif文件,并保存到当前目录下。每个小图的大小为512 * 512,重叠度为n像素,同时保留了原始图像的地理参考信息。
阅读全文