zoukankan      html  css  js  c++  java
  • ArcMap中属性字段计算器(Field Calculator)的使用技巧

           很多时候,我们在使用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",这样更加方便。
          通过以上对比,大家也不难发现高级模式与简单模式的区别。还有很多朋友都有增加一个自增字段的需要,那么在高级模式下,就非常简单,添加脚本如下:
    base=0
    def idAdd():
        global base
        pStart=1
        pInterval=1
        if(base==0):
            base=pStart
        else:
            base=base+pInterval
        return base
           在这还需要提醒大家的是Python脚本的语法格式,很多朋友复制网页的脚本,执行时经常会出现错误,基本都是缩进问题。另外,需要注意字段的数据类型以及计算结果的类型要对应。
           以上就是本人对于Field Calculator使用的一些心得,希望能对大家有所帮助,也欢迎大家就Field Calculator计算的技巧来一起讨论。
           更多细节,请参考官网
  • 相关阅读:
    LA 2038 Strategic game(最小点覆盖,树形dp,二分匹配)
    UVA 10564 Paths through the Hourglass(背包)
    Codeforces Round #323 (Div. 2) D 582B Once Again...(快速幂)
    UVALive 3530 Martian Mining(贪心,dp)
    UVALive 4727 Jump(约瑟夫环,递推)
    UVALive 4731 Cellular Network(贪心,dp)
    UVA Mega Man's Mission(状压dp)
    Aizu 2456 Usoperanto (贪心)
    UVA 11404 Plalidromic Subsquence (回文子序列,LCS)
    Aizu 2304 Reverse Roads(无向流)
  • 原文地址:https://www.cnblogs.com/esrichina/p/3199475.html
Copyright © 2011-2022 走看看