很多时候,我们在使用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计算的技巧来一起讨论。
       更多细节,请参考官网

ArcMap中属性字段计算器(Field Calculator)的使用技巧的更多相关文章

  1. [ArcGIS API for JavaScript 4.8] Sample Code-Popups-1-popupTemplate的概念和popup中属性字段值的多种表现形式

    [官方文档:https://developers.arcgis.com/javascript/latest/sample-code/intro-popuptemplate/index.html] 一. ...

  2. T对象序列化后T对象中属性字段不见了?

    序列化:JsonConvert.SerializeObject(T) 直接在类的上面添加[Table("表名")] 在类上添加属性[DataContract] 在属性上添加属性[D ...

  3. ArcMap中字段计算器(Field Calculator)将数字类型转换为字符串类型

    在Field Calculator中选择Python,使用函数str(!字段名称!)

  4. 由ArcMap属性字段自增引出字段计算器使用Python的技巧

    1.前言       前些日子有人问我ArcMap中要让某个字段的值实现自增有什么方法?我首先想到像SQL Server中对于数值型字段可以设置自增.所以我打开ArcCatalog查看发现只提供默认值 ...

  5. ArcGis 字段计算器表达式(Field calculator expression).cal文件与标注表达式(label expression).lxp的实质及其编码方式、解析方法

    ArcGis 字段计算器表达式可以保存为一个扩展名为.cal的文件,该文件的实质是一个文本文件,编码方式为 UTF-16-LE. 官方的说明是“ArcGIS 应用程序使用 UTF-16-LE 编码读写 ...

  6. ArcGIS字段计算器分割字段中的字符串

    ArcGIS字段计算器分割字段中的字符串 实例:在一个字段中存有长宽高三个属性数据,以x分割.例如sss为字段名(字段属性为文本类型),数据格式为:100x200x300,利用字段计算器分别将三个数存 ...

  7. ArcMap中给点shp添加字段后,shp文件破坏无法打开

    这两天遇到一个奇怪的问题,在整理项目中的建筑物数据时发现,有几个图层进行字段添加后出现问题,shp文件被损坏了.这问题很隐蔽,给shp添加字段后不报错,进行赋值,报错如下: 但是无论是选择“是”还是“ ...

  8. C# 属性(Property)和字段(Field)的区别

    导读: 近期学习过程中发现了一些问题,我的学习只是学习,敲代码就是敲代码,没有加入思考,也不问为什么就直接去敲人家写好的例子去敲,把知识都学死了,逐渐散失了思考能力,所以学习的兴趣大打折扣,正如那句话 ...

  9. Django中的form设置field的html属性

    在Django中无论何种field,都有一个widget的属性: class Field(object): widget = TextInput # Default widget to use whe ...

随机推荐

  1. web前端开发过程遇到的问题及解决方式(一)

    1. CSS样式优先级问题 <style> .className input(可换其他元素){ type:val !important; } </style> <body ...

  2. P4149 [IOI2011]Race

    对于这道题,明显是点分治,权值等于k,可以用桶统计树上路径(但注意要清空); 对于每颗子树,先与之前的子树拼k,再更新桶,维护t["len"]最小边数; #include < ...

  3. 2019.03.25 NOIP训练 匹配(match)(贪心)

    题意简述: 思路: 直接考虑把人和物品都看成二维平面上面的a,ba,ba,b两类点,然后一个aaa和bbb匹配的条件是xa≤xb&&ya≤ybx_a\le x_b\&\& ...

  4. IDEA的Database管理台如何显示

    1.找出database的显示view 2.点击设置数据库,下载驱动文件,直接点击下载就行了,用什么数据库就下什么 3.填写服务器地址和用户名密码,点击测试,成功就表示连上了 4.一些常用按钮 5.目 ...

  5. 本学期Windows编程微型技术博客上线!

    将两篇报告生成超链接模式方便阅读,以下为链接: https://files.cnblogs.com/files/Kitty-/Windows编程微型技术报告一.pdf https://files.cn ...

  6. Android中屏幕保持唤醒

    1.锁的类型 PowerManager中各种锁的类型对CPU .屏幕.键盘的影响: PARTIAL_WAKE_LOCK : 保持CPU 运转,屏幕和键盘灯有可能是关闭的. SCREEN_DIM_WAK ...

  7. Android-Could not download kotlin-reflect.jar

    在AndroidStudio中报以下错误: 错误详情: Could not download kotlin-reflect.jar (org.jetbrains.kotlin:kotlin-refle ...

  8. c# 反射小Demo

    今天看了一下C#的反射,之前一直感觉反射是一种很高大上的东东,现在才发现不过是纸老虎而以. 所谓的反射就是,只是知道一个它是一个对象不知道其中有什么字段方法属性等,而反射就是用来获取一个未知对象的字段 ...

  9. Java并发编程:Synchronized底层优化(偏向锁、轻量级锁)

    Java并发编程系列: Java 并发编程:核心理论 Java并发编程:Synchronized及其实现原理 Java并发编程:Synchronized底层优化(轻量级锁.偏向锁) Java 并发编程 ...

  10. Java线程小刀牛试

    线程简介 什么是线程 现代操作系统调度的最小单元是线程,也叫轻量级进程(Light Weight Process),在一个进程里可以创建多个线程,这些线程都拥有各自的计数器.堆栈和局部变量等属性,并且 ...