arcpy gis栅格计算器RasterCalculator的实现:
栅格计算器在窗体实现比较方便,通过代码实现要注意表达式的书写问题。
在类似计算器的界面中,使用 Python 语法构建和执行单个地图代数表达式。注意:引用函数的名称为:arcpy.gp.RasterCalculator_sa
--------
RasterCalculator (expression, output_raster)
--------
expression:“地图代数”表达式。(表达式通过单引号连接,因为双引号需要显示在SQL语句中,例如变量名称)
output_raster:生成输出的信息。(不写扩展名的话会生成带有文件夹形式的栅格数据,如果写 *.tif,则直接生成 tif 文件)
lyrs = arcpy.mapping.ListLayers(mxd)
# 注意写表达式的时候不能有字符串函数什么的,而且变量名需要用双引号
# 因此可以先print下效果
# SQL函数很无语
for i in range(9, 21):
arcpy.gp.RasterCalculator_sa('8.64012 - 14.84545*Log10("' \
+ lyrs[i].name + '") + 10.54793*Power(Log10("' + lyrs[i].name \
+ '"), 2) - 3.45375 * Power(Log10("' + lyrs[i].name + '"), 3) \
+ 0.4254 * Power(Log10("' + lyrs[i].name + '"), 4)', lyrs[i].name + "_sd.tif")