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

时间: 2024-08-07 01:54:48

关于ArcGIS10.0中的栅格计算中的函数的相关文章

ArcGIS教程:ArcGIS中的栅格计算

栅格计算是栅格数数据空间分析中数据处理和分析中最为常用的方法,应用非常广泛,能够解决各种类型的问题,尤其重要的是,它是建立复杂的应用数学模型的基本模块. ArcGIS 9 提供了非常友好的图形化栅格计算器,利用栅格计算器,不仅可以方便的完成基于数学运算符的栅格运算,以及基于数学函数的栅格运算,而且它还支持直接调用ArcGIS 自带的栅格数据空间分析函数,并且可以方便的实现多条语句的同时输入和运行. 一 数学运算 数学运算主要是针对具有相同输入单元的两个或多个栅格数据逐网格进行计算的.主要包括三组

CDH5.12.0 中扩容增加计算节点

CDH5.12.0 中扩容增加计算节点 标签(空格分隔): 大数据平台构建 一: 环境准备 二: 增加节点环境系统初始化 三: 增加节点关于CDH5.12.0环境配置 四: 在CM 上面节点增加 一:环境的概述与准备 概述: 很多时候,企业的大数据环境(CDH5.12.0),根据使用的时间越来越长,空间会有不足的情况,集群的计算 能力也因此下降, 此时需要对将大数据的 集群环境进行扩容 增加计算节点. 1.1 系统逻辑部署图 1.2 安装文件详细信息列表: CM: cloudera-manage

在如下8*6的矩阵中,请计算从A移动到B一共有____种走法。要求每次只能向上或向右移动一格,并且不能经过P。

在如下8*6的矩阵中,请计算从A移动到B一共有__种走法.要求每次只能向上或向右移动一格,并且不能经过P. A:456 B:492 C:568 D:626 E:680 F:702 解析: 8*6的矩阵,从左下角A到右上角B,一共需要走12步,其中5步向上,7步向右,因此总的走法一共有C(12,5)=792种,但题目规定不能经过P,因此需要减去经过P点的走法. 经过P的路径分为两部分,从A到P,从P到B. 同理,从A到P的走法:C(6,2)=15: 同理,从P到B的走法:C(6,3)=20: 因此

Python中的简单计算

Python中的简单计算 (1)基本的加减乘除 >>> 2 + 2 4 >>> 50 - 5*6 20 >>> (50 - 5*6) / 4 5.0 >>> 8 / 5  1.6 (2)除法总是会返回一个浮点数,想要返回整数,需要用"//"来表示(floor division),另外,可以用"%"进行取余操作 >>> 17 / 3  # classic division ret

mysql explain 中key_len的计算

今天丁原问我mysql执行计划中的key_len是怎么计算得到的,当时还没有注意,在高性能的那本书讲到过这个值的计算,但是自己看执行计划的时候一直都没有太在意这个值,更不用说深讨这个值的计算了: ken_len表示索引使用的字节数,根据这个值,就可以判断索引使用情况,特别是在组合索引的时候,判断所有的索引字段都被查询用到. 在查看官方文档的时候,也没有发现详细的key_len的计算介绍,后来做了一些测试,在咨询了丁奇关于变长数据类型的值计算的时候,突然想到innodb 行的格式,在这里的计算中有

程序中关于浮点数计算的问题

在进行数值计算编程的过程中往往需要用到浮点数的计算,但浮点数的加减运算通常是会出现误差的.具体出现问题代码如下: double begin = 0.0; //起始位置 double end = 20.0;  //结束位置 int k = 2;  //核函数支持半径的倍数 double initialDis = 0.1;   //粒子间的初始距离(需要与粒子的控制体积保存一致性) /*****************第一步初始化粒子**********/ for(double i=begin-(2

警惕C++中整数除法计算的精度损失

很偶然发现了一个精度损失的问题,简单来说: 有表达式: l = i/30 + j/40 + k/25, 求当{i,j,k} = {50,85,27}时l的值,很简单,用计算器马上可以算出答案为4.8717,但是编写了以下程序来实现: int i = 50,j = 85, k = 27; double l = i/30 + j/40 + k/25; 运行后,结果显示4.000000000! 为什么?这是因为在C++中两个整数相处得到的结果还是整数,故除法都被四舍五入了再相加,就得到结果4.0000

openstack中彻底删除计算节点的操作记录

在使用openstack的过程中,我们经常会添加好几台计算节点来部署虚拟机,在后续使用中由于某些原因,一些计算节点出现了问题,需要将这些出了问题的计算节点从openstack的控制节点中踢出去!但是很多时候,在删除计算节点的时候由于删除不彻底而导致了后面使用openstack出现了诸多问题. 下面记录了在openstack中彻底删除计算节点linux-node2.openstack的操作: 在控制节点上操作 查看计算节点 [[email protected] src]# openstack ho

Mean and Standard Deviation-从文件中读取数据计算其平均数和标准差

Meanand Standard Deviation-从文件中读取数据计算其平均数和标准差 //Meanand Standard Deviation-从文件中读取数据计算其平均数和标准差 #include<iostream> #include<fstream> #include<cstdlib> #include<cmath>   int main() {     usingnamespace std;     ifstream fin;     ofstr