帮我写一个Python代码实现MOD09A1影像的一年内各天的所有波段tif格式文件融合成一个tif文件
时间: 2023-03-29 07:02:26 浏览: 118
可以的,以下是Python代码实现MOD09A1影像的一年内各天的所有波段tif格式文件融合成一个tif文件的示例代码:
```python
import os
import gdal
# 设置输入文件夹路径和输出文件路径
input_folder = "path/to/input/folder"
output_file = "path/to/output/file.tif"
# 获取所有tif文件的路径
tif_files = []
for root, dirs, files in os.walk(input_folder):
for file in files:
if file.endswith(".tif"):
tif_files.append(os.path.join(root, file))
# 获取第一个tif文件的元数据
first_tif = gdal.Open(tif_files[])
driver = first_tif.GetDriver()
cols = first_tif.RasterXSize
rows = first_tif.RasterYSize
bands = first_tif.RasterCount
projection = first_tif.GetProjection()
geotransform = first_tif.GetGeoTransform()
# 创建输出文件
output = driver.Create(output_file, cols, rows, bands, gdal.GDT_Float32)
output.SetProjection(projection)
output.SetGeoTransform(geotransform)
# 将所有tif文件的波段数据写入输出文件
for i in range(bands):
band_data = None
for tif_file in tif_files:
tif = gdal.Open(tif_file)
band = tif.GetRasterBand(i+1)
if band_data is None:
band_data = band.ReadAsArray()
else:
band_data += band.ReadAsArray()
output.GetRasterBand(i+1).WriteArray(band_data)
# 保存输出文件
output.FlushCache()
```
这段代码可以将指定文件夹中的所有tif文件的波段数据融合成一个tif文件,并保存到指定路径。
阅读全文