Arcpy批量化提取多波段TIFF数据中的某个波段
在进行论文数据的处理过程中,因为个人的习惯影响,喜欢使用tif格式的栅格数据进行处理,而下载的一些数据通常为多波段数据,格式五花八门,针对各种格式的数据都有相应的处理教程,但tif格式的栅格数据在使用那些方法的时候,总是出错,自己只好想办法进行处理。
使用Arcgis自带的Arcpy处理数据,主要是代码简洁易懂,且帮助文档对菜鸟友好。
本文使用的arcpy工具“创建栅格图层”说明
工具可视化界面
在arcpy中使用案例
根据需求,我需要第一个波段数据,所以提取波段1
// An highlighted block
# coding:utf-8
import arcpy
arcpy.CheckOutExtension("spatial")
arcpy.gp.overwriteOutput = 1
arcpy.env.overwriteOutput = 1
arcpy.env.workspace = "E:\\A03DataP\\PML" #输入数据文件夹
outPath_GPP = 'E:/A03DataP/GPP/' #输出数据文件夹
Ratif = arcpy.ListRasters("*", "tif") #指定数据格式
for Ratif1 in Ratif:
Name_GPP1 = "GPP_" + Ratif1[6:16] + ".tif" #数据输出名称
outGpp = arcpy.MakeRasterLayer_management(Ratif1, Name_GPP1, "#", "96.5 20.0 113.0 30.0", "1")
#创建栅格数据图层,第一个参数为输入数据,第二个是名称,
#第三个参数没弄,第四个是范围,第五个是我需要的波段
print (str(outGpp) + " ___________GPP")
Out_GPP2 = outPath_GPP + Name_GPP1 #输出路径加名称
arcpy.Int_3d(outGpp, Out_GPP2)
#因为需要将数据转为整形,使用Int_3d工具将数据转为整形并输出
#且直接导出创建的栅格图层为tif格式没有走通,可以通过其他需要处理步骤将数据导出
print (" _____fengefu____________ ")
在使用代码时可以将代码汉字注释删除,避免一些问题的出现
代码十分简单,在学习的路上做的笔记,如有问题错误,欢迎指正!