python多张tif波段合成为一张tif
时间: 2023-06-22 09:46:24 浏览: 240
您可以使用Python中的GDAL库来合并多张tif波段为一张tif。以下是一个示例代码:
```python
from osgeo import gdal
# 输入文件名列表
input_files = ["file1.tif", "file2.tif", "file3.tif"]
# 打开第一张tif文件,获取其光栅数据集和地理参考信息
first_tif = gdal.Open(input_files[0])
geotransform = first_tif.GetGeoTransform()
projection = first_tif.GetProjection()
band_count = first_tif.RasterCount
# 创建输出光栅数据集
driver = gdal.GetDriverByName("GTiff")
output_tif = driver.Create("output.tif", first_tif.RasterXSize, first_tif.RasterYSize, band_count, gdal.GDT_Float32)
# 将第一张tif的数据写入输出tif
for i in range(band_count):
band = first_tif.GetRasterBand(i+1)
output_band = output_tif.GetRasterBand(i+1)
output_band.WriteArray(band.ReadAsArray())
# 逐一打开输入tif文件,将数据写入输出tif
for input_file in input_files[1:]:
input_tif = gdal.Open(input_file)
for i in range(band_count):
band = input_tif.GetRasterBand(i+1)
output_band = output_tif.GetRasterBand(i+1)
output_band.WriteArray(band.ReadAsArray())
# 设置地理参考信息
output_tif.SetGeoTransform(geotransform)
output_tif.SetProjection(projection)
# 关闭数据集
output_tif = None
```
以上代码可以将多张tif文件合并为一张tif文件,并且保留原始tif文件的地理参考信息。您可以根据自己的实际需求修改代码中的输入输出文件名和数据类型等参数。
阅读全文