关于ArcGIS10.0中的栅格计算中的函数
版本升级确实很重要,在ArcGIS10.1中计算成功的,在10.0中出了问题。
问题
在进行栅格计算时,计算公式很简单,包括两个Ln函数:
"-22.73 + 11.1 * Ln(5) + 0.34 * Ln("人口.tif")"
可计算结果报错:000539 : Python 错误消息。Error running expression: rcexec() <type 'exceptions.RuntimeError'>: No CellSize and Extent set。
分析
帮助文档中的说明是计算字段或计算值工具使用的计算无效。提供的此错误消息将列出特定的 Python 错误。其解决方案还是让我一头雾水
在GEONET中找到了一个类似的情况:
https://geonet.esri.com/thread/23934
它的意思是按错误提示去设置环境变量中的CellSize and Extent即可解决,原因是这是arcgis10.0的bug,必须手动设置,因为输出的不是一个值而是栅格。
解决
软件操作
在ArcMap中环境中设置处理范围为"与输入栅格相同"、像元大小(栅格分析下)为与"与输入栅格相同";如果输入有多个栅格,可能会提示警告。
代码操作
参考python脚本语法,在AO代码中操作如下:
GP.SetEnvironmentValue("extent",inRaster); GP.SetEnvironmentValue("cellSize", inRaster);
作者:我也是个傻瓜
出处:http://www.cnblogs.com/liweis/
签名:成熟是一种明亮而不刺眼的光辉。