arcgis栅格计算器python教程_基于ArcGIS的python编程 18、在字段计算器中使用Python脚本...

很久没有更新专栏了,趁着五一劳动节,刚好有时间“劳动”一下,更新一下专栏的文章。接下来的文章是关于在ArcMap中的字段计算器中使用Python脚本;字段计算器中可以使用的脚本有两种,分别是Python和VB脚本;本文主要介绍的是Python脚本的使用。

本文实现的功能主要是根据地类编码字段值,给地类名称字段赋上对应的地类名称;整个处理的逻辑很简单,就是通过判断语句,判断地类编码字段值,然后给地类名称字段填上对应的名称即可;地类编码有很多,这里的代码只是通过举例,只列出其中的几个,只要按照下面的代码格式,根据地类编码和地类名称对应表填写完所有的地类代码和名称即可使功能完整,实现所有地类名称的填充。部分地类编码与地类名称对应表

主要代码如下:

def fillDLMC(DLBMField):

if DLBMField==u'1201':

return u'空闲地'

elif DLBMField==u'0701':

return u'城镇住宅用地'

elif DLBMField==u'1108':

return '沼泽地'

else:

return ""

这段代码的参数 DLBMField 代表每个地类要素的地类编码值,如果地类编码为"1201",则返回地类名称"空闲地" ;如果地类编码为"0701",则返回地类名称"城镇住宅用地";…………。代码中"if DLBMField==u'1201'"地类编码前使用u进行标识就是告诉python后面的字符'1201'是unicode编码。

这个代码编写完成后,把这个代码复制到字段计算器工具中的【预逻辑脚本代码】窗口中,然后在赋值窗口中引用脚本代码函数 fillDLMC(!DLBM!);这里的DLBM是地类编码字段名称,这里的!DLBM! 表示获取地类编码字段的字段值。最后的函数引用:DLMC = fillDLMC(!DLBM!)就是获取到地类编码对应的字段名称然后返回赋值给DLMC字段。

字段计算器中使用python脚本要设置的地方有三个:一个是选择解析程序,另一个是复制相关的处理代码到逻辑脚本代码参数;最后一个就是函数的引用。如下图所示。字段计算前工具相关参数设置

这个字段计算器运行成功后,可以通过点击【保存】按钮把上面的设置的相关参数保存到本地文件中;下次要进行同样的字段计算时,就可以利用【加载】按钮把相关的参数加载进来,达到重用的效果。

这个字段计算器运行前的图层属性表如下:字段计算器运行前属性表

字段计算器运行后,图层属性表如下图,可以看到DLMC字段的被填充上对应的地类名称。字段计算器运行后的结果

总结

1、字段计算器中使用python脚本跟以往的通过Python制作脚本工具有些不一样;主要是理解函数两边加上 !号的处理。在字段计算器中使用python脚本的详细内容可以参考ESRI的官方帮助文档。

2、在python脚本中,字段值出现中文的情况,有可能会出现乱码或者其他预想不到的问题,这时就是要根据具体的情况进行处理;例如这里就是在字段值前加标识 u 。

3、本文只是实现了简单的一个需求;如果熟悉掌握在字段计算器中使用python脚本,对于图层属性表的操作就会变得非常简单且高效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值