批量处理呢
时间: 2023-07-24 14:05:28 浏览: 36
您可以使用Python的os模块来批量处理多个TIFF文件。以下是一个示例代码:
```python
import os
import gdal
# 输入和输出文件夹路径
input_folder = 'input_folder'
output_folder = 'output_folder'
# 获取输入文件夹中所有TIFF文件的路径
tiff_files = [os.path.join(input_folder, f) for f in os.listdir(input_folder) if f.endswith('.tif')]
# 遍历每个TIFF文件并处理
for tiff_file in tiff_files:
# 打开TIFF文件
ds = gdal.Open(tiff_file)
# 获取ENVI元数据信息
metadata = ds.GetMetadata('ENVI')
# 创建输出TIFF文件
output_file = os.path.join(output_folder, os.path.basename(tiff_file))
driver = gdal.GetDriverByName('GTiff')
out_ds = driver.CreateCopy(output_file, ds)
# 设置元数据信息
for key, value in metadata.items():
out_ds.SetMetadataItem(key, value, 'ENVI')
# 关闭数据集
ds = None
out_ds = None
```
在上述代码中,`input_folder`和`output_folder`分别表示输入和输出文件夹的路径。`os.listdir()`函数用于获取输入文件夹中所有以`.tif`结尾的文件。使用列表推导式将所有文件的完整路径保存到`tiff_files`列表中。然后遍历`tiff_files`列表中的每个文件,执行相同的处理步骤。
最后的输出文件路径是通过将输出文件夹路径和输入文件名拼接而成的。保存输出文件时,使用`CreateCopy()`方法创建一个新的TIFF文件。然后,将元数据信息设置到输出文件中,并关闭数据集。
请注意,如果您的输入文件夹中包含其他类型的文件,则需要在列表推导式中添加额外的条件来筛选出TIFF文件。另外,如果输出文件夹不存在,则需要使用`os.mkdir()`函数创建它。