• 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"
  • 相关阅读:
    slf4j的简单用法以及与log4j的区别
    [转]Git 代码撤销、回滚到任意版本(当误提代码到本地或master分支时)
    【转】IDEA 中配置文件properties文件中文乱码解决
    Python+Selenium练习篇之3-浏览器滚动条操作
    selenium操作下拉滚动条的几种方法
    python利用unittest进行测试用例执行的几种方式
    安装和使用 Python
    PM2实用入门指南
    linux清除缓存
    【centos6.6环境搭建】Github unable to access SSL connect error出错处理
  • 原文地址:https://www.cnblogs.com/publiter/p/15075581.html
Copyright © 2020-2023  润新知