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"
  • 相关阅读:
    Thinkphp无法加载验证码 undefined function Thinkimagettftext() 解决方案 mac系统
    fragment使用不当 导致java.lang.IllegalStateException
    怎样从GitHub项目中,下载单个文件夹或文件
    Android 5.0 app样式
    OpenCV fitline直线拟合函数学习
    Linux文件系统
    Ubuntu 12.04 笔记本触摸板失灵解决方法
    利用微软测试工具PICT生成测试用例
    Myeclipse 使用JUnit 进行单元测试
    Myeclipse 2014 安装checkstyle、PMD和Metrics
  • 原文地址:https://www.cnblogs.com/publiter/p/15075581.html
Copyright © 2011-2022 走看看