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"
  • 相关阅读:
    今天整理一下以前各博客网站上的文章
    转一篇详解Excel逻辑函数的文章
    Google中国的首页变化
    [转]在QuantumGrid4.5中手动添加数据
    [转]VISTA服务介绍
    Idiomatic Phrases Game zoj 2750 Dijkstra
    Fleury 求欧拉回路
    QS Network ZOJ 1586 Prim
    Burn the Linked Camp ZOJ 2770 差分约束系统 SPFA
    ZOJ 1092 POJ 2240 Arbitrage Floyd
  • 原文地址:https://www.cnblogs.com/publiter/p/15075581.html
Copyright © 2011-2022 走看看