由ArcMap属性字段自增引出字段计算器使用Python的技巧
1.前言
前些日子有人问我ArcMap中要让某个字段的值实现自增有什么方法?我首先想到像SQL Server中对于数值型字段可以设置自增。所以我打开ArcCatalog查看发现只提供默认值,没办法只能看一下字段计算器中是否有更好的方法。开始我的方法是在字段计算器中将要自增的值等于默认的OBJECTID值,但是问题又来啦,如果删除一个对象后OBJECTID值变乱,又不能实现自增。本人学习的主要语言是c#,对于字段计算器所支持的VB脚本和Python不了解,对于c#来说写一个for循环很容易实现自增。最后参照帮助文档找到了Python的实现方法,下面分享给大家。
2.帮助文档解析
打开计算字段示例文档找到(累加计算和顺序计算)
首先分析帮助文档提供的代码(注意:红色部分为注释)
Parser:
Python #程序语言
Expression:
autoIncrement() #表达式方法
Code Block: #下面这部分是具体实现,注意在放字段计算器时只需要下面这部分
rec=0
def autoIncrement(): #定义方法名
global rec
pStart = 1 #初始值, 可以调整
pInterval = 1 #自增间隔, 可以调整
if (rec == 0):
rec = pStart
else:
rec = rec + pInterval
return rec
下面是如何在字段计算器中使用
目的实现ghg的字段的自增
打开字段计算器进行设置如下
注意:Python 将强制要求缩进作为语法的一部分。请使用两个或四个空格来定义每个逻辑级别。将语句块的开头和结尾对齐并且保持一致。
查看结果实现自增
3.提升
其实使用Python十分的方便,如果没有Python要实现自增对于一个大项目来说很耗人力的。说到这里上面的那种方法中自定义函数没有输入参数,如果我们需要输入参数该怎么写呢。查看帮助文档有一个计算数值型字段的累加值的例子我们分析一下。
Parser:
Python
Expression:
accumulate(!FieldA!) #该函数需要输入字段做参数
Code Block: #下面这部分是具体实现,注意在放字段计算器时只需要下面这部分
total = 0
def accumulate(increment):
global total
if total:
total += increment
else:
total = increment
return total
目的实现OBJECTID累加值赋值给ghg的字段
注意:Python 计算表达式字段将使用惊叹号 (!!) 括起。
结果:
4.Python该怎么使用
对于有有编程经验的人来说入门简单的Python语法很容易,他和java,c#等语言基础语法很像,
例如控制流,if 语句 2. while语句 3. for 循环 for..in 4. break语句 5. continue语句 几乎主流语言都有。
在ArcMap中也可以使用其他Python的库,例如random函数,可以实现随机值。
例如:通过 numpy 站点包来计算 0.0 和 1.0 之间的随机浮点值。
Parser:
Python
Expression:
getRandomValue()
Code Block:
import numpy.random as R
def getRandomValue():
return R.random()
5.总结
语言是一种工具,你只要你精通一门语言,对于编程你会多一份自信。不管使用什么语言你都可以解决问题。使用编程的思想会大大的提高你的工作效率,所以朋友们你至少要学会一门语言,为了更好地工作。
参考资料:ArcGIS10.2 帮助库
由ArcMap属性字段自增引出字段计算器使用Python的技巧的更多相关文章
- $Django orm增删改字段、建表 ,单表增删改查,Django请求生命周期
1 orm介绍 ORM是什么 ORM 是 python编程语言后端web框架 Django的核心思想,“Object Relational Mapping”,即对象-关系映射,简称ORM. 一 ...
- sql server sql查询数据库的表,字段,主键,自增,字段类型等信息
1.查询数据表的属性(名称.说明.是否主键.数据类型.是否自增) SELECT t1.name columnName,case when t4.id is null then 'false' else ...
- oracle 字段自增 两段代码搞定
(这几天做了个小小课程设计时用的是oracle数据库,第一次用,发现oracle和我们以前用的sql server .mysql是有如此多不同的地方,下面是遇到的问题之一和解决方法,和大家分享下) 用 ...
- SQL语句增删改字段、表、修改默认值
收集转载: 1.修改字段,默认值 .修改字段默认值 alter table 表名 drop constraint 约束名字 ------说明:删除表的字段的原有约束 alter table 表名 ad ...
- Django静态文件配置-request方法-ORM简介-字段的增删改查
app的创建注意事项: 在Django新创建的app要在seetings.py中添加注册,才会生效 创建app:django-adminapp an startapp app名称 或者 python3 ...
- 1.4.2 solr字段类型--(1.4.2.1)字段类型定义和字段类型属性
1.4.2 solr字段类型 (1.4.2.1) 字段类型定义和字段类型属性. (1.4.2.2) solr附带的字段类型 (1.4.2.3) 使用货币和汇率 (1.4.2.4) 使用Dates(日期 ...
- 如何往有自增标识字段的表插入数据时,同时给自增标识字段插入值呢,在Inset Into语句前后加上SQL语句:SET IDENTITY_INSERT TableName ON和SET IDENTITY_INSERT TableName OFF
当要往有设置自增标识字段的表插入数据,并希望同时设置好自增字段的值时,可以在insert into 的SQL语句前后分别加上一句sql语句,SET IDENTITY_INSERT TableName ...
- mongo 让字段自增或自减
查询语句 db.getCollection("A表").update( { id: 1 }, { $inc: { pid: 1} } ) 作用:根据条件让A表中的pid字段自增1 ...
- mysql数据库单表只有一个主键自增id字段,ibatis实现id自增
mysql数据库单表只有一个主键自增id字段,ibatis实现id自增 <insert id="autoid"> insert into user_id ...
随机推荐
- jquery事件核心源码分析
我们从绑定事件开始,一步步往下看: 以jquery.1.8.3为例,平时通过jquery绑定事件最常用的是on方法,大概分为下面3种类型: $(target).on('click',function( ...
- js判断图片是否加载完成
var img = new Image(); //新建一个图片对象:img.src = ...; //图片地址是你准备要加载的地址:if(img.complete){ //表示图片已经加载完成}
- monodroid 调用 JNI Native 的一些问题
在Android版本开发的过程中,需要使用一些用JNI开发的NDK的native库.这里谈一谈踩到的坑,给大家参考. 虽然java的程序我还算熟悉,但是没有了解过 JNI Native 的开发,一般是 ...
- 接口测试SoapUI参数化
上次和大家一起完成了soapui的参数之一properties,今天我们一起交流另外一种参数化的方法,跟着一起练习,不懂不要紧,练习多了就会慢慢懂的: 1.准备excle(目前soapui只支持xls ...
- 39个让你受益的HTML5教程
1. 五分钟入门HTML5 (Learn HTML5 in 5 Minutes!) By Jennifer Marsman 毫无疑问,HTML5是一个热门话题.如果你需要一个迅速了解HTML基础的速成 ...
- css border属性做小三角标
<!doctype html><html> <head> <title></title> <meta charset="ut ...
- spring静态代理
一.代理概念 为某个对象提供一个代理,以控制对这个对象的访问. 代理类和委托类有共同的父类或父接口,这样在任何使用委托类对象的地方都可以用代理对象替代.代理类负责请求的预处理.过滤.将请求分派给委托类 ...
- .net 4.0 ValidateRequest="false" 无效
昨天安装了VisualStudio 2010 Ultimate,今天把最近的一个项目升级到了4.0下,结果跑了一下,发现关于页面启用 ValidateRequest="false" ...
- 自定义 TableViewCell 的分割线
刚开始自定义 tableViewCell 的时候,用的是直接在 cell 上加一张 imageView 的方法,如果在点击 cell 的时候有页面的跳转,这样做没什么问题,但是,如果在点击 cell ...
- apache+php 安装
Apache和PHP的版本分别为: httpd-2.4.9-win64-VC11.zip php-5.6.9-Win32-VC11-x64.zip 下载地址: php-5.6.9-Win32-VC11 ...