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"
  • 相关阅读:
    Android 手机摇一摇功能的实现
    Android 只开启一个Activity实例
    android 获取Datepicker日期
    帧动画
    进度条ProgressDialog
    AlertDialog错误
    ListView加checkBox可以实现全选等功能
    一些自己常用的工具类
    错层
    Parallax
  • 原文地址:https://www.cnblogs.com/publiter/p/15075284.html
Copyright © 2011-2022 走看看