zoukankan      html  css  js  c++  java
  • 导出图层到shp文件

    此例子是从Oracle空间库导出图层到shp文件的Python脚本,并支持创建Arcgis工具。

    此脚本的目的是自动去除一些不需要的属性字段,同时修改导出字段名称。

    import arcpy
    from arcpy import env
    
    #toolbox界面输入参数
    #infc = arcpy.GetParameterAsText(0)
    #outpath = arcpy.GetParameterAsText(1)
    #outfc = arcpy.GetParameterAsText(2)
    #arcpy.AddMessage("in featureclass:" + infc)
    #arcpy.AddMessage("outpath: " + outpath)
    #arcpy.AddMessage("out featureclass: " + outfc)
    
    #直接运行参数
    #输入sde连接、要素类
    print "featureclass to shp"
    env.workspace = r"C:UsersAdministratorAppDataRoamingESRIDesktop10.2ArcCatalogxxxxx.sde"
    infc = "dataset_name.features_name"
    print "in workspace: " + env.workspace
    print "in featureclass:" + infc
    
    #输入要导出的shp文件夹路径、要素类
    outpath = r"D:outdataset_name"
    outfc = "features_name.shp"
    print "outpath: " + outpath
    print "out featureclass: " + outfc
    
    #创建字段映射表
    fieldmappings = arcpy.FieldMappings()
    #轮询属性字段
    infields = arcpy.ListFields(infc)
    for infield in infields:
        fname = infield.name
        #不导出字段
        if fname == "OBJECTID" or fname == "shape" or fname == "SHAPE" or fname == "SHAPE.AREA" or fname == "SHAPE.LEN":    
            continue
        if fname == "SHAPE_AREA" or fname == "SHAPE_LEN":
            continue
        #转换导出字段名称
        outname = infield.name
        if fname == "OLDNAME":
            outname = "NEWNAME"
        #创建字段映射
        arcpy.AddMessage("add field map:" + infield.name + " - " + outname)
        print "add field map:" + infield.name + " - " + outname
        fieldmap = arcpy.FieldMap()
        fieldmap.addInputField(infc, infield.name)
        outfield = fieldmap.outputField
        outfield.name = outname.upper()
        fieldmap.outputField = outfield
        fieldmappings.addFieldMap(fieldmap)
        #清除缓存
        del fieldmap, outfield
    arcpy.AddMessage("start to export shp ......")
    print "start to export shp ......"
    arcpy.FeatureClassToFeatureClass_conversion(infc, outpath, outfc, "", fieldmappings)       
    arcpy.AddMessage("done")
    print "done"
  • 相关阅读:
    docker常用命令
    根据另一个表数据更新到指定表
    java中支持前端jq通过ajax提交(post)json内容到控制器
    VS2017用正则表达式替换多行代码
    net core中动态给log4net添加日志类型
    MySqlBulkLoader设置Columns时要注意的地方
    部署NETCORE在LINUX上报Error -99 EADDRNOTAVAIL address not available
    select 下拉框 设置值
    tp添加分页
    js异步获取数据的问题
  • 原文地址:https://www.cnblogs.com/publiter/p/15075284.html
Copyright © 2011-2022 走看看