很多时候,我们在使用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. 【Mybatis】MyBatis之Sql配置文件的使用(四)

    上一章[Mybatis]MyBatis对表执行CRUD操作(三),已经讲了基本操作,本章介绍Sql配置文件中常用功能 1.插入返回主键 2.参数值的获取方式 3.resultMap使用 插入返回主键 ...

  2. HTML之 一 标签

    一 ,标签分类: 1.普通标签: <h1> hello </h1> hello 2.自闭和标签 <hr/> 二,书写html注意事项 1.标签不能交叉嵌套 2. 标 ...

  3. JavaScript基础视频教程总结(131-140章)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  4. 关于Socket.IO的知识点记录

    最近因为项目的需要,开始学习nodejs,本着js的那点儿功底,nodejs学习起来还是挺快能上手的.随着深入学习,知道了express框架并那它写了一个小功能,作为一个php程序员哈,在expres ...

  5. 用pyspider爬取并解析json字符串

    获取堆糖网站所有用户的id 昵称及主页地址 #!/usr/bin/env python # -*- encoding: utf-8 -*- # Created on 2016-06-21 13:57: ...

  6. EF学习笔记(十一):实施继承

    学习总目录:ASP.NET MVC5 及 EF6 学习笔记 - (目录整理) 上篇链接:EF学习笔记(十) 处理并发 本篇原文链接:Implementing Inheritance 面向对象的世界里, ...

  7. js读取txt文件

    $('#selectAreaFile').on('change',function(e){//用户区域的文件选择        var files=e.target.files;        if ...

  8. 大数据解实例决topn问题

    做大数据开发经常遇上在众多数据中统计前几的问题,比如王者荣耀每个区的富豪排行榜(腾讯可以做个刺激消费,

  9. MySQL--更新自增列的潜在风险

    ##=====================================================================##测试环境:MySQL版本:MySQL 5.7.19复制 ...

  10. MySQL--Skip GTID CAP

    import os script_file = "./skip_file.sql" def write_script(script_content): file_handle = ...