基于ArcGIS的Python——要素类至地理数据库
目录
需求
(1)将目录下中的多个(甚至多达1000个)gdb中的要素类合并到同一个gdb中
(2)目录结构如下图所示:
思路
利用da.walk()来输出目录中gdb数据库里要素类的实际名称;walk函数式arcpy.da的一部分,通过自上而下或自下而上的方式遍历目录树,生产目录树中的文件名;每个目录或工作空间生产一个包含目录路径、目录名称和文件名的元组。
这个函数类似Python的os.walk(),但是da.walk()具有识别地理数据库结构的优点。具体实现代码如下:
... import arcpy.da as da
... import os
...
... rootdir="F:\\panzhao"
... print("arcpy da walk")
...
... for dirpath, dirnames, filenames in da.Walk(rootdir,datatype="FeatureClass"):
... for filename in filenames:
... print(os.path.join(dirpath, filename))
... arcpy.FeatureClassToGeodatabase_conversion(os.path.join(dirpath, filename),'F:/output1.gdb')
代码中将目录路径传递给变量rootdir;da.walk()函数有两个参数,要进行检索的顶层工作空间(当前工作空间)和用于筛选返回列表的数据类型,本例检索了要素类的相关文件。walk()函数返回一个包含目录路径、目录名称和文件名的元组。
其中函数FeatureClassToGeodatabase_conversion (Input_Features, Output_Geodatabase),如果名称在输出地理数据库中已存在,系统会在要素类名称的结尾追加一个数字以确保其唯一性(例如b11_1)。见参考资料中官网介绍。
参考资料
转载自:https://blog.csdn.net/gislaozhang/article/details/81415585