zoukankan      html  css  js  c++  java
  • ArcGis Python脚本——批量添加字段

    插个广告,制作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("
    ",""))
        #next line   #code source: https://www.cnblogs.com/yzhyingcool/ QQ:975601416
        line=f.readline()
    #close the txt file
    f.close()

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

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

  • 相关阅读:
    微擎二次开发
    linux
    自动自发与强制要求的差别
    金老师的经典著作《一个普通IT人的十年回顾》
    离开了公司,你还有什么
    [转]想靠写程序赚更多钱,写到两眼通红,写得比别人都又快又好好几倍,结果又能如何?
    挨踢人生路--记我的10年18家工作经历 续 .转
    论优越感
    当程序员的那些狗日日子-----转载
    C#语法杂谈
  • 原文地址:https://www.cnblogs.com/yzhyingcool/p/10274477.html
Copyright © 2011-2022 走看看