zoukankan      html  css  js  c++  java
  • SHP矢量属性字段操作

    利用Python脚本往shp图层矢量添加、修改、删除属性字段。


    添加字段:

    import sys
    import arcpy
    from arcpy import env
    
    #输入sde连接、要素类
    print "shp add fields"
    env.workspace = r"D:	est"
    infc = "xxx.shp"
    print "in workspace: " + env.workspace
    print "in featureclass:" + infc
    
    iid = 100000000
    
    #添加字段
    arcpy.AddField_management(infc, "BZ", "TEXT", "", "", 200)
    arcpy.AddField_management(infc, "DATEFROM", "DATE")
    arcpy.AddField_management(infc, "XH", "LONG", 38)
    arcpy.AddField_management(infc, "IID", "LONG", 18)
    arcpy.CalculateField_management(infc, "IID", iid)
    
    print "done"


    修改字段:

    import time
    import sys
    import arcpy
    from arcpy import env
    
    #直接运行参数
    print "shp add fields"
    env.workspace = r"D:	est"
    infc = "xxx.shp"
    print "in workspace: " + env.workspace
    print "in featureclass:" + infc
    
    bz = "bzstring"
    
    codeblock = """def StringToTime(stime):
      if stime == None :
        return None
      stime = stime.replace(" ", "")
      stime = stime.replace("T16:00:00.000Z", "")
      stime = stime.replace(".", "-")
      stime = stime.replace("-0", "-")
      if len(stime) == 0 :
        return None
      if stime.endswith("-") :
        stime = stime + "1"
      if stime.count("-") == 1 :
        stime = stime + "-1"
      return stime"""
    
    #从字段1复制值到字段2
    arcpy.CalculateField_management(infc, 'FIELD2', '!FIELD1!', 'PYTHON_9.3')
    
    #转换字符串日期为标准日期格式(2021-7-20),然后直接插入
    arcpy.AddField_management(infc, "FIELD2", "DATE")
    expression = "StringToTime(!FIELD1!)"
    arcpy.CalculateField_management(infc, 'FIELD2', expression, 'PYTHON_9.3', codeblock)
    
    #填充字段值
    arcpy.AddField_management(infc, "BZ", "TEXT", "", "", 200)
    if len(fsrctable) > 0:
        arcpy.CalculateField_management(infc, "BZ", """ + bz + """)
    
    print "done"


    删除字段:

    import time
    import sys
    import arcpy
    from arcpy import env
    
    #直接运行参数
    print "shp add fields"
    env.workspace = r"D:	est"
    infc = "xxx.shp"
    print "in workspace: " + env.workspace
    print "in featureclass:" + infc
    
    arcpy.DeleteField_management(infc, "FIELD1")
    
    print "done"
  • 相关阅读:
    交换机的配置文件和系统映像文件备份与恢复(如果不小心损坏了,可以用这种方法恢复)
    交换机端口安全配置
    路由器密码重置(不是适用于所有有些启动顺序数字不一样)
    交换机的默认网关(跨网段telnet)
    思科交换机的初始配置(使用telnet登录)
    Linux命令集(第一部分共40个)
    Linux6.9安装
    javamail邮件发送报错解决方案
    isEmpty()与equals()、==“”区别
    eclipse svn 修改了类名之后提交
  • 原文地址:https://www.cnblogs.com/publiter/p/15075581.html
Copyright © 2011-2022 走看看