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"
  • 相关阅读:
    Asp.Net MVC ajax调用 .net 类库问题
    sql关键查询
    js数组
    win2003 sp2+iis 6.0上部署.net 2.0和.net 4.0网站的方法
    Linux开启服务器问题(李蕾问题)
    SWFUpload 中文乱码问题
    设置html滚动条(陶庭飞问题)
    反射(前台到后台,后台到前台)
    MySql数据类型
    将页面居中
  • 原文地址:https://www.cnblogs.com/publiter/p/15075284.html
Copyright © 2011-2022 走看看