ArcMap中使用属性字段计算器去除XX市(XX县)的Python脚本
来源:互联网 发布:linux 查找文件夹位置 编辑:程序博客网 时间:2024/05/05 17:16
有些时候,我们在对空间数据进行处理时,常常会用到jion这个工具,那么它要求关联字段必须一致。这时属性字段计算器的神奇功效就体现出来啦!今天我要连接的数据是城市名称字段,但是有一份数据带有XX市(xx县)的字样,为了能够较好的关联,于是乎又开始这个Python脚本。
代码如下:
str=""s="市"x="县"def set(id): if(id[-1]==t.decode('utf8') or id[-1]==x.decode('utf8') ): str= id[0:len(id)-1]
else: str= id return str
set(!name!)截图:
值得注意的是:在中文字符比较时需要进行编码转换(字符串在Python内部的表示是unicode编码)。比如 x.decode('utf8')表示将字符编码转换到unicode编码格式,然后才可以比较,否则条件判断一定不成立;
下附之前的一个属性字段计算器使用技巧的博客
首发地址:http://www.cnblogs.com/esrichina/p/3199475.html
******************************************************************************************************
很多时候,我们在使用ArcGIS进行属性数据编辑时,需要批量修改某些字段值,这时候ArcGIS提供的属性字段计算器(Field Calculator)就是一把利器。下面我就Field Calculator实际使用的经验跟大家来分享,希望对大家的使用能够起到一定的帮助。
我遇到的问题是需要添加一个字段根据已有的字段(ID)来设置该字段的内容信息。ID是从1开始自增的字段,需要添加的是该ID对应的视频流访问地址(如:“assets/video/M2U00430.flv”),由于测试数据目前的视频只能提供(M2U00430-M2U00455)的数据。也就是说我需要把ID字段计算后与字符串拼合。
Field Calculator使用有两种方式:A.简单模式;B.高级模式;
首先,使用简单方式来做,思路就是对ID字段进行取余数据计算,也就是将ID除以26,就可以得到0-25的数据,然后累加30,再进行数值到字符的转换,最后拼接。
操作如下:新建url字段,类型为文本类型,简单模式下选择Python脚本,然后输入表达式:"assets/video/M2U004"+str(int( !ID! %26+30))+".flv",其中%为取余;int为取整;str为数值转字符。
对于简单的计算,简单模式就可以完成,不需要高级模式,但是为了便于大家掌握Field Calculator的使用,下来我们来看下如何在高级模式下来完成相应的操作。
高级模式的操作界面如下图:
所谓高级模式,就是在简单模式的对话框上勾选中间的显示代码块(Show Codeblock),然后就可以添加比较复杂的处理脚本,需要指出的Python脚本参数,大家注意下面调用函数的参数是字段名称加!!
当然,因为是高级模式就可以引入其他的库,如random,那么我的函数也可以这么写:
引用random函数库, x=random.randint(30,55) result="assets/video/M2U004"+str(x)+".flv",这样更加方便。
通过以上对比,大家也不难发现高级模式与简单模式的区别。还有很多朋友都有增加一个自增字段的需要,那么在高级模式下,就非常简单,添加脚本如下:
在这还需要提醒大家的是Python脚本的语法格式,很多朋友复制网页的脚本,执行时经常会出现错误,基本都是缩进问题。另外,需要注意字段的数据类型以及计算结果的类型要对应。base=0def idAdd():global basepStart=1pInterval=1if(base==0):base=pStartelse:base=base+pIntervalreturn base
以上就是本人对于Field Calculator使用的一些心得,希望能对大家有所帮助,也欢迎大家就Field Calculator计算的技巧来一起讨论。
更多细节,请参考官网
http://help.arcgis.com/zh-cn/arcgisdesktop/10.0/help/index.html#/na/005s00000029000000/
0 0
- ArcMap中使用属性字段计算器去除XX市(XX县)的Python脚本
- ArcMap中属性字段计算器(Field Calculator)的使用技巧
- 基于Python脚本的ArcMap字段计算器分类赋值
- Python中“xx+=xx”与“xx=xx+xx”的区别
- Java程序中使用XXXX-XX-XX XX:XX:XX格式的日期
- Ubuntu中脚本命令执行. xx和./xx的区别
- 字段计算器通过python脚本完成要素节点坐标信息提取到属性字段中
- 字段计算器通过python脚本完成要素节点坐标信息提取到属性字段中
- ArcMap中使用Python遇到中文字段名错误的解决方法
- ArcMap中使用Python遇到中文字段名错误的解决方法
- hql查询pojo类中关联对象使用关联对象的属性条件时,出现Invalid path: 'xx.xx'的解决方法
- XX
- xx
- xx
- xx
- XX
- xx
- xx
- IT项目(公司)管理小技巧
- Struts2 工作原理
- 数据结构树之二叉树
- 输出素数(输入N之间)
- c语言计算时间方法---clock-GetTickCount-QueryPerformanceCounter
- ArcMap中使用属性字段计算器去除XX市(XX县)的Python脚本
- TCP/IP详解--几类定时器的作用(重传 保活定时器)
- 程序员永远的痛之字符编码的奥秘
- 常系数线性齐次递推 poj3070
- Android开发之开机启动没有界面的应用程序
- 第四周作业——图的表示
- CGI+MySQL: Access denied for user 'root'@'%' to database '
- 蒙版
- .NET--使用类别与基底类别库