关于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);

posted @ 2016-03-30 21:47  我也是个傻瓜  阅读(6188)  评论(0编辑  收藏  举报