先上代码,讲解各行代码的意思,从而达到自己写代码的目的
#....Edit by Longhao Wang....
import arcpy
from arcpy import env
from arcpy.sa import *
import os
import os.path
import sys
arcpy.env.workspace="D:/OneDrive/UCAS/group/Tian/tif"
rootdir="D:/OneDrive/UCAS/group/Tian/tif"
inPointFeatures = "D:/OneDrive/UCAS/group/Tian/Export_Output.shp"
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[2:10]
outnamepath=r"D:\OneDrive\UCAS\group\Tian\out\table_" + outname + '.shp'
out_xls=r"D:\OneDrive\UCAS\group\Tian\out\table_" + outname + '.xls'
arcpy.CheckOutExtension("Spatial")
outExtractPoint = ExtractValuesToPoints(inPointFeatures, inRaster, outnamepath,
"INTERPOLATE", "VALUE_ONLY")
arcpy.TableToExcel_conversion(outExtractPoint, out_xls)
print outname
print "ok"
为方便说明,逐行讲解:
本代码实现【把栅格值提取到点】:输入元素是栅格影像 + 点矢量,输出带像元值属性的矢量表
本代码实现【表转excel】:把输出的矢量点属性表转为xls

接下来对影像存储的文件夹进行遍历,保证文件夹中都是tif
因此,若要批量对数据进行处理,只需修改核心函数就可以了,其次再修改文件名、文件夹、路径和切片就完成了。
寻找函数的话,只需要在你想要的工具下面,点击Tool Help即可

提供了源代码与数据讲解,我们只需要把核心函数复制过来就行了

有了上述的基础后,我们也能自己实现功能了,我尝试了批量裁剪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"
``