Arcpy批量裁剪mask影像tif
废话不多说,先上代码:
import arcpy
from arcpy import env
from arcpy.sa import *
import os
import os.path
import sys
arcpy.env.workspace=r"D:\Desktop\Study\Academic1\study2\vcf"
rootdir=r"D:\Desktop\Study\Academic1\study2\vcf"
for dirpath,filename,filenames in os.walk(rootdir):
for files in filenames:
if os.path.splitext(files)[1]=='.tif':
filepath= os.path.join(dirpath,files)
inRaster = filepath
arcpy.env.snapRaster = filepath
outname = files[8:12]
outnamepath=r"D:\Desktop\Study\Academic1\study2\VCF_" + outname + 'china.tif'
inMaskData =r"D:\Desktop\Study\Academic1\study2\mask_tif\cci\mask.shp"
arcpy.CheckOutExtension("Spatial")
outExtractByMask = ExtractByMask(inRaster, inMaskData)
outExtractByMask.save(outnamepath)
print outname
print "ok"
下面对语句进行解释
-
1是需要被裁剪影像的路径。该路径需要存放所有TIF文件
-
2与1完全相同,如下图
-
3是输出名字,改变从第4位到第9位,来区别文件(如下图VCF5KYR_2013001_001_201824210156),输出名字截取从第8位到第12位,来区别文件(如下图VCF5KYR_2013001_001_201824210156.tif ,2013是第8-12位)(PS:python区间从0开始起算,前包括后不包括)
-
4是输出路径,重新命名为VCF_2013china
-
5是矢量文件所在位置
-
6可以改为任意ArcGIS操作,如near,buffer等。
结果: