数据:
站点数据,有100个目标字段,每个字段为某一年的站点平均降水量,现需要对每年的平均降水量进行克里金插值,不可能一个一个进行插值,因此可采用Arcpy编程进行迭代.
import arcpy
from arcpy.sa import *
#获取shp文件
fc = r"站点.shp"
#读取字段
fields = arcpy.ListFields(fc)
# 设置输出范围
arcpy.env.extent = "73.5 17.6 135.1 53.6"
def krig(fc,field):
out_raster = "out\kriging_"+field+".tif"
#输出像元大小
cellSize = 0.1
# 设置半变异函数属性
kModelOrdinary = KrigingModelOrdinary("SPHERICAL", cellSize)
arcpy.CheckOutExtension("Spatial")
# 执行克里金插值
print r'执行克里金插值,插值字段为:%s,输出像元大小为: %s' % (field, cellSize)
# VARIABLE 12 是指 搜索半径设置,这里是arcgis默认的12
outKriging = Kriging(fc, field, kModelOrdinary, cellSize, "VARIABLE 12")
print 'save: %s' % out_raster
outKriging.save(out_raster)
接下来,对Fields进行循坏调用krig()函数即可:
for field in fields:
krig(fc,field)
得到的结果为包括研究区的矩形范围,需要再利用模型构建器进行批量掩膜处理,得到最终结果.
如下为一个实例的步骤.