解析ArcGis的字段计算器(三)——文本型字段计算,编号那些事儿

摘要:
在实践中,我们通常将数字字段定义为文本类型,因为数字不是序列号,它是一个增量值,数字通常是数字字符串代码。最简单的数字-˃直接使用数字字段中的字段计算器来计算FID字段值+1。可以看出,序列号前面的“0”位数是可变的,可以通过以下方式轻松实现。上述问题尚未完全理解。这是另一个需求。县编号已更改为“371488”。如何操作?使用替换函数,该函数通常反映Excel函数≠ VB函数在开始时由作者反复提示。

实际操作中我们一般会将编号字段定义为文本型,因为编号不是序号,序号是一个递增数值,而编号往往是一个数字串代码。

本篇无说明的均使用VBScript语句
1、怎么编号?
最简单的编号—>直接在编号字段使用字段计算器将FID字段值+1计算过来便是。

BH=[FID]+1


这应该只能叫做序号值,还不够,还有一个问题需要我们去解决,因为编号往往是一个数字代码,它一般是由区域代码或者类型标识码等(前缀)+固定位数序号组成的
BH的固定位数如果是4位,那么全码应该是“前缀+0001”,“前缀+0002”……“前缀+0010”……“前缀+0100”……“前缀+9999”。
可以看出序号前面补的“0”位数是变化的,可以通过下面的方式轻松实现。

BH="前缀" & left("0000",4-len( [FID]+1)) & ([FID] +1)

left("字符串",n)是从左侧开始截取字符串的指定前n位;len("字符串")是计算字符串长度。这个例子中序号部分长度为4,序号部分“0”的长度应该是4-序号值的长度,暂记为n,从“0000”左边开始截取n个0 拼接上序号值就是我们要的结果了。

对于补0的操作还可以用string函数:

BH="前缀" &string(4-len( [FID]+1),"0") & ([FID] +1)

string函数的用法是string(重复次数,"重复字符"),注意第二参应使用数字或英文

有没有比较zhuangbility的操作?当然有的,比如下面可以smallzhuangbility一下的Python函数

rec=0
def autoIncrement():
 global rec
 pStart = 1 #初始值
 pInterval = 1 #间隔值
 if (rec == 0): 
  rec = pStart 
 else: 
  rec = rec + pInterval 
 return rec

怎么调用翻看俺前边的帖子

autoIncrement()直接调用
(str(autoIncrement())).zfill(5) 固定位数为5,前边补0
autoIncrement()+1000 加起码1000

分类编号

把不同行政区、不同种类的图斑编号,每类都是从1开始起编,简单的方法是借助Excel处理回挂实现,具体参考下面链接博文中的Excel操作自行领悟:

解析ArcGis的字段计算器(二)——有玄机的要素Geometry属性,在属性表标记重复点线面

2、编号的修改

假定一个编号“37148210120101005”,很明显能看出这是一个按行政区域编码的代码串,至于是哪个行政区的俺也不知道,因为这是俺随手造的。
现在有这样一个需求——需要把该编号拆成县、乡、村、组、编号5个字段,如何操作呢?
最前边的县编号与最后边的编号两个字段分别可以用left、right函数截取出来,中间的呢?这时需要引入一个新函数了,它就是mid,mid( [BH],7,3)就可以截取乡镇编号了,它的用法是mid( "字符串",起点位置,截取长度)。
上边的还没整明白,这里又来一个需求,县级编号改了,成“371488”了,如何操作?
用replace函数,它的用法很典型的体现了作者开篇一再提示的Excel函数≠VB函数。
replace( [BH],"371482","371488")就可以了,用法是replace(“字符串”,"字符串中待替换的字符子串","替换为的字符串"),当然该例中replace函数有缺省参数没有使用,如有兴趣可以自己百度一下VB的replace函数用法。 

免责声明:文章转载自《解析ArcGis的字段计算器(三)——文本型字段计算,编号那些事儿》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇DirectX 官方文档二、全国大学生电子设计竞赛测控(无人机)方向___赛题分析下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

ArcGIS Server管理工具之批量发布动态地图服务工具.md

友好阅读链接:(http://swj.me/2015/08/26/batchPublishtools/) update0918: 修复了创建链接文件时而出错的bug 修复了在24011的警告已处理的情况下,依然出现提示的异常。 将多个脚本文件,压缩成一个脚本文件。压缩后的脚本文件名称为Publishservice.py,使用如下命令执行工具 pytho...

etopo1 arcmap 制图

下载地址 https://www.ngdc.noaa.gov/mgg/global/global.html 下载的flt格式的etopo1文件转换成arcmap中的raster格式. (应有flt格式数据文件和头文件hdr格式的文件,共2个,否则转换报错) (1)格式转换 (a)python import arcpyarcpy.FloatToRaster_...

ArcGIS地图文档(mxd)过大的问题

  今天在作图的时候无意发现了一个问题,mxd文档居然有6MB多,原先以为是符号库引起的,就移除了加载的所有符号库,可文件体积并没有发生大的变化。上网搜了一下esri的论坛,才发现这个问题原来是geoprocessing引起的,只要在arcmap中执行过工具,就会把工具执行的结果保存在mxd里,因此才造成了文件大的离谱。      解决方法:点击geopr...

ArcGIS Server常见问题之二

同样摘自ESRI公司网站。 内容摘要 本指导描述了如何配置Windows XP SP2防火墙,使得ArcGIS Server能正常工作。为了完成下面的过程,必须安装Windows XP Service Pack 2,下面的步骤需要为ArcGIS Server配置Windows防火墙。 过程描述 当升级的Windows XP SP2,将安装Windows防火...

ArcGIS地形分析

ArcGIS地形分析的基本步骤如下: 1. 整理并添加带有高程属性的CAD等高线或者高程点; 2. 将导入的等高线或高程点数据转换为GIS可编辑的Shapefile文件; 3. 使用整理好的Shapefile生产数字高程三角模型TIN文件; 4. 将TIN文件转换为栅格数字高程模型DEM文件; 5. 基于DEM即可进一步进行基于地形的坡度、坡向、起伏度、汇...

ArcGIS 基础2-编辑数据

本文来自ESRI官方资源,为刚入门使用ArcMap软件的同学提供帮助。 练习数据和完整文档可在百度网盘中下载: 共享地址:https://pan.baidu.com/s/1GMr0O4rNwOc61MY21zbDVA 共享目录:ArcGIS基础培训上机操作步骤   (1) 在工具栏上点击编辑器按钮以激活编辑器工具条。 (2) 点击编辑器工具条上...