批量提取单个波段tif
时间: 2024-01-16 16:04:15 浏览: 126
您可以使用Python中的GDAL库来批量提取单个波段的TIFF文件。以下是一个示例代码,可以将指定路径下的所有TIFF文件的单个波段提取出来:
```python
import os
from osgeo import gdal
def extract_band(input_file, output_file, band_num):
src_ds = gdal.Open(input_file)
band = src_ds.GetRasterBand(band_num)
arr = band.ReadAsArray()
driver = gdal.GetDriverByName("GTiff")
dst_ds = driver.CreateCopy(output_file, src_ds, 0)
dst_ds.GetRasterBand(1).WriteArray(arr)
src_ds = None
dst_ds = None
# 指定输入文件夹路径
input_folder = "path/to/tiff/folder"
# 指定输出文件夹路径
output_folder = "path/to/output/folder"
# 指定要提取的波段号
band_num = 1
# 遍历输入文件夹中的所有TIFF文件
for file_name in os.listdir(input_folder):
if file_name.endswith(".tif"):
input_file = os.path.join(input_folder, file_name)
output_file = os.path.join(output_folder, file_name)
extract_band(input_file, output_file, band_num)
```
您需要将代码中的 `input_folder` 替换为包含您要提取波段的TIFF文件的文件夹路径,将 `output_folder` 替换为包含提取结果的文件夹路径,将 `band_num` 替换为要提取的波段号。执行代码后,将会在输出文件夹中生成与输入文件夹中的TIFF文件对应的单个波段TIFF文件。
请注意,您需要安装GDAL库(可以使用 `pip install gdal`)并且您的系统中需要正确配置GDAL环境。此外,代码中仅提取了单个波段,如果您需要提取多个波段,可以在循环中多次调用 `extract_band` 函数。
阅读全文