插个广告,制作ArcGIS的Tool工具学习下面的教程就对了:
零基础学习Python制作ArcGIS自定义工具观看链接
《零基础学习Python制作ArcGIS自定义工具》课程简介

以下是正文:


先看如何增加一个字段

函数:arcpy.AddField_management

语法:AddFields_management (in_table, field_description)

参数

说明

数据类型

in_table

要添加指定字段的输入表。该字段将被添加到现有输入表,并且不会创建新的输出表。

可将字段添加到 ArcSDE 的要素类、文件或个人地理数据库的要素类、coverage、shapefile、栅格目录、独立表、带属性表的栅格和/或图层。

Mosaic Layer;

Raster Catalog Layer;

Raster Layer;

Table View

field_name

要添加到输入表的字段的名称。

String

field_type

在创建新字段时所使用的字段类型。

  • TEXT —名称或其他文本特性。
  • FLOAT —特定范围内含小数值的数值。
  • DOUBLE —特定范围内含小数值的数值。
  • SHORT —特定范围内不含小数值的数值;编码值。
  • LONG —特定范围内不含小数值的数值。
  • DATE —日期和/或时间。
  • BLOB —影像或其他多媒体。
  • RASTER —栅格影像。
  • GUID —GUID 值

String

field_precision

(可选)

描述可存储在字段中的位数。所有位都将被计算在内,而无论其处于小数点的哪一侧。

如果输入表是个人或文件地理数据库,则将忽略字段精度值。

Long

field_scale

(可选)

设置可存储在字段中的小数位数。此参数仅可用于浮点型和双精度数据字段类型。

如果输入表是个人或文件地理数据库,则将忽略字段小数位数值。

Long

field_length

(可选)

要添加的字段的长度。它为字段的每条记录设置最大允许字符数。此选项仅适用于文本或 blob 类型的字段。

Long

field_alias

(可选)

指定给字段名称的备用名称。此名称用于为含义隐晦的的字段名称指定更具描述性的名称。字段别名参数仅适用于地理数据库和 coverage。

String

field_is_nullable

(可选)

不存在关联属性信息的地理要素。它们与零或空字段不同,仅支持地理数据库中的字段。

  • NON_NULLABLE —字段不允许空值。
  • NULLABLE —字段允许空值。这是默认设置。

Boolean

field_is_required

(可选)

指定要创建的字段是否是表的必填字段;仅支持地理数据库中的字段。

  • NON_REQUIRED —字段不是必填字段。这是默认设置。
  • REQUIRED —此字段是必填字段。必填字段具有永久性,不能删除。

Boolean

field_domain

(可选)

用于约束地理数据库中的表、要素类或子类型的任何特定属性的允许值。必须指定现有属性域的名称才能将其应用于字段。

String

例:

要对“省级行政区域”增加一个名为“Area”,类型是“Text”,长度是100的字段。

arcpy.AddField_management("省级行政区域",'Area',"TEXT",field_length=100)

①第1参“输入表”与第2参“字段名”是必选参数;

②其他参数为字段描述,可选,最好使用具名参数,如field_length=100。

批量添加字段的处理思路及代码

例:给“省级行政区域”添加“A、B、C、D”4个字段。

①用Excel制作出字段及其描述表;

②复制除标题行以为的内容,粘贴到txt文档,替换空格为“,”(英文符号,);

③arcpy批量添加字段,导入“Fields Description.txt”描述,每一行line是1个字段信息,将每行信息用“,”拆分装入列表lineList;新建字段各属性描述使用“具名参数=列表lineList各索引值指示数据的方式传入;

import arcpy
#get txt file
f=open("C:/Users/yang/Desktop/Fields Description.txt",'r')
#read line
line=f.readline()
while line:
lineList=line.split(',')
#add field
arcpy.AddField_management("省级行政区域",field_name=lineList[0],field_type=lineList[1],field_length=lineList[2],field_precision=lineList[3],field_scale=lineList[4].replace("\n",""))
#next line #code source: https://www.cnblogs.com/yzhyingcool/ QQ:975601416
line=f.readline()
#close the txt file
f.close()

④使用该脚本时只需要改动“Fields Description.txt”描述文件的路径与待处理的要素名(或路径)即可。

Ps 示例中长度、精度均为随意写的,并不准确。

ArcGis Python脚本——批量添加字段的更多相关文章

  1. ArcGis Python脚本——批量删除字段

    注意,ArcGis中shp属性表至少要保留除OID(FID).Shape之外的1个字段. 例:批量删除“省级行政区域”除“FID”.“Shape”.“Area”之外的字段. import arcpy ...

  2. ArcGis Python脚本——批量对影像、要素类定义投影

    这一段是批量定义要素类(FeatureClasses)投影的ArcPy代码: 把要处理的要素类塞进一个文件夹(工作空间,workspace),然后将代码开头的路径换成这个“文件夹”的路径,处理完后再做 ...

  3. python脚本批量生成数据

    在平时的工作中,经常会遇到造数据,特别是性能测试的时候更是需要大量的数据.如果一条条的插入数据库或者一条条的创建数据,效率未免有点低.如何快速的造大量的测试数据呢?在不熟悉存储过程的情况下,今天给大家 ...

  4. arcgis python脚本工具实例教程—栅格范围提取至多边形要素类

    arcgis python脚本工具实例教程-栅格范围提取至多边形要素类 商务合作,科技咨询,版权转让:向日葵,135-4855_4328,xiexiaokui#qq.com 功能:提取栅格数据的范围, ...

  5. ArcGis Python脚本——根据接图表批量裁切分幅影像

    年前写了一个用渔网工具制作图幅接图表的文章,链接在这里: 使用ArcMap做一个1:5000标准分幅图并编号 本文提供一个使用ArcMap利用接图表图斑裁切一幅影像为多幅的方法. 第一步,将接图表拆分 ...

  6. 使用Python脚本批量裁切栅格

    对栅格的裁切,我们通常使用裁切(数据管理-栅格-栅格处理)或按掩膜提取(空间分析-提取分析)来裁切,裁切的矢量要素通常是一个要素图层或Shape文件.如果要进行批量处理,可以使用ToolBox中的批量 ...

  7. 针对mysql中分表批量添加字段

    项目中有用到这种类似的分表,如果要添加一个字段的话,该怎么办呢? dba表示弄 一个脚本批量处理就行了,卧槽,这我哪会啊,于是硬着头皮又继续问dba,dba给一个脚本,一看是这样的. #!/bin/b ...

  8. ArcGis Python脚本——要素图斑自动编号,自上而下,从左到右

    原理: 利用图斑最小外包矩形的左上角坐标(数学坐标)Y坐标将序.X坐标升序的方式获取自上而下,从左到右的要素记录排序,然后遍历编号. "!shape.extent.xmin!"计算 ...

  9. shell脚本 批量添加删除用户

    2021-07-26 1.批量添加用户 # 编写脚本 vi add_student_50.sh # 添加用户组 student groupadd student # 添加用户 student1-stu ...

随机推荐

  1. opencv 图片缩放

    import cv2 as cv import numpy as np # 图片缩放 img = cv.imread('../images/moon.jpg', flags=1) # flags=1读 ...

  2. bzoj2212[Poi2011]Tree Rotations [线段树合并]

    题面 bzoj ans = 两子树ans + min(左子在前逆序对数, 右子在前逆序对数) 线段树合并 #include <cstdio> #include <cstdlib> ...

  3. 洛谷P5069 [Ynoi2015]纵使日薄西山(树状数组,set)

    洛谷题目传送门 一血祭 向dllxl致敬! 算是YNOI中比较清新的吧,毕竟代码只有1.25k. 首先我们对着题意模拟,寻找一些思路. 每次选了一个最大的数后,它和它周围两个数都要减一.这样无论如何, ...

  4. [HEOI2014]逻辑翻译(分治)

    题目描述 在人类的神经系统中,每个信号都可以用?1或+1来表示.这些信号组合起来最后形成 了喜怒哀乐,酸甜苦辣,红黄绿蓝等各种各样的复杂信息.纳米探测科技的突破让生物学家 可以测量大脑中特定区域的完整 ...

  5. 【php】php实现数组反转

    php里面有个函数可以反转数组,工作中也经常用到,非常方便.今天来自己实现这样的功能. $arr = [2,5,6,1,8,16,12]; function reverse($arr){ $left ...

  6. poj 3252 Round Numbers(数位dp 处理前导零)

    Description The cows, as you know, have no fingers or thumbs and thus are unable to play Scissors, P ...

  7. 初入react-redux (基于webpack babel的react应用框架)

    react这么热门的框架也不介绍了,redux是一个单项数据流的小框架,当然不只配合react,它起初是为react而配的,现在面向所有了,比如ng-redux的项目.redux做为react的标准搭 ...

  8. vue2.0项目实战(3)使用axios发送请求

    在Vue1.0的时候有一个官方推荐的 ajax 插件 vue-resource,但是自从 Vue 更新到 2.0 之后,官方就不再更新 vue-resource. 关于为什么放弃推荐? -> 尤 ...

  9. ImageMagickObject.MagickImage.1 '80041771' - 安装vc2008运行库

    今天重装了系统后,发现 ImageMagick 不能正常的使用了: ImageMagickObject.MagickImage.1  '80041771' convert: 455: unable t ...

  10. Linux常用基本命令(less)

    转: Linux常用基本命令(less) LESS:跟more命令的功能类似,都是用于分页显示内容,但是他的性能比more更高,功能比more更丰富,他读取文件是按需加载 格式: less [opti ...