zoukankan      html  css  js  c++  java
  • 批量合并GDB

        在实际操作中,经常对数据库文件进行合并、裁切等。如果遇到gdb比较多,要素层比较多,而且还存在数据集。虽然ArcGIS中的批量处理的功能,但填写参数过程也比较麻烦,如果一次性处理过多,程序容易停止工作。

        所以,选用Python来处理这样的问题,优势就非常明显了。把路径设置好,读取数据库及要素类,然后进行合并操作。下面是Python示例代码:

    # ---------------------------------------------------------------------------
    # Purpose : AppendGDB
    # Author :gisweis
    # Date :2015.2.4
    # Version : ArcGIS 10.1
    # Email :liweis2014@hotmail.com
    # Notes :Don't support dataset
    # ---------------------------------------------------------------------------
     
    import sys
    reload(sys)
    sys.setdefaultencoding( "utf-8" )
    import arcpy
    import string
     
    try:
        workspace = arcpy.GetParameterAsText(0) #input workspace
        outdb = arcpy.GetParameterAsText(1) #out db
     
        #target fc,but don't support dataset
        arcpy.env.workspace=outdb
        fcs = arcpy.ListFeatureClasses()
     
        arcpy.env.workspace=workspace
        for File in arcpy.ListFiles("*.*db"):
            for fc in fcs:
                arcpy.Append_management(File+"\"+fc, outdb+"\"+fc)
    except arcpy.ExecuteError:
        print arcpy.GetMessages()
    

      

        这里需要说明的是:

    1. 此代码不支持包含数据集(dataset)的数据库,如果存在这种情况,可根据实际情况来设置输入和输出的路径。如arcpy.Append_management(File+"\dlg\"+fc, outdb+"\ dlg \" +fc),这里的dlg即为数据库中的数据集,如果存在多个数据集,则需要读取数据集,这样的功能将在后续进行完善;
    2. 代码中11、12行是重载编码,但这样的结果是print无输出(环境:Win7 x64+Python2.7),这是因为忽略了UNICODE,把ASCII直接传给UTF-8,显示有问题是正常的。注释即可。
  • 相关阅读:
    SQL Server 实现Split函数
    15.java设计模式之访问者模式
    14.java设计模式之命令模式
    13.java设计模式之模板模式
    12.java设计模式之代理模式
    11.java设计模式之享元模式
    10.java设计模式之外观模式
    9.java设计模式之组合模式
    8.java设计模式之装饰者模式
    7.java设计模式之桥接模式
  • 原文地址:https://www.cnblogs.com/liweis/p/4274109.html
Copyright © 2011-2022 走看看