如果你的tif影像包含多个波段,而你想要其中几个要素的话,你可以使用以下代码,他会将你想要的波段提取出来
# -*- coding: utf-8 -*-
import arcpy
from arcpy import env
import os
from os import path
import time
if __name__ == '__main__':
filePath = r'E:\2017'
destPath = r'E:\2017band'
t_start = time.time()
# 设置工作空间
env.workspace = filePath
env.overwriteOutput = True
temp_layer = 'temp'
for filename in os.listdir(filePath):
if filename.endswith(".tif"):
print(filename)
# 获取输入TIFF文件的波段数
raster = arcpy.Raster(path.join(filePath, filename))
num_bands = raster.bandCount
# 分别导出每个波段为单波段TIFF文件
for i in range(1, num_bands + 1):
# 创建一个临时的Layer,指定波段
arcpy.MakeRasterLayer_management(path.join(filePath, filename), temp_layer, band_index=str(i))
# 使用CopyRaster_management工具导出单个波段
arcpy.CopyRaster_management(temp_layer,
path.join(destPath, filename.replace(".tif", "_{}.tif".format(i))))
print('Processing cost {} seconds.'.format(time.time() - t_start))