ArcGIS之多个GDB批量导出shp至特定文件夹20201228
我们对GDB(文件地理数据库)的批量处理已经做了好几期的技术分享了。如下:
FME批量合并GDB地理数据库(20200908)
ArcGIS中的GDB批量裁剪升级与发布地理处理包( 20200511
ArcGIS之GDB(文件地理数据框)批量处理(20190115)
一、背景
这次我们主要来介绍的是多个GDB怎么批量导出shp至特定的文件夹,这个有些项目是有如此需求。比如如下的数据,有多个GDB(GDB中也包含多个数据集以及要素类)。
目的是要将数据批量导出到特定的文件夹中,比如将福清市.gdb的数据导出shp到福清市文件夹下,其他市一样操作。
二、技术思路
那参考我们的模型构建器的教程教学,整个思路应该是比较简单的。我们把问题通过两个模型来解决。
1、首先根据迭代工作空间迭代器一次去迭代多个GDB,获取名称配合创建文件夹工具,创建对应gdb的多个文件夹。
2、第二步就是根据迭代要素类工具将多个gdb中的要素复制到特定的文件夹中。这其实思路是很清楚的,主要是要怎么将特定的GDB数据。
这里我用了一个解析路径读取每个要素类的路径,路径读取出来后我用计算值去获取这个要素类所在gdb的名称。计算值的语句其实是比较简单的:("%值%".split(".gdb")[0]).split("\\")[-1],获取值后我就可以把这个参数传给复制要素的输出了:%A20201224%\%output_value%\%output_value%_%名称%.shp
看不懂的没关系哦,我们配套了详细的视频介绍哦!
三、模型优化
上面的解决办法我们是通过两个模型来解决,先运行批量创建文件夹工具,再运行批量迭代GDB导出shp模型来处理。接下来我们把模型优化下,把模型优化下,把其他作为子模型,最后只要运行一个模型就出成果的,那这里有两种的方法。
1、最简单的就是我们的创建第3个模型,把上面的两个模型连接在一起就解决问题了。
2、那如果我们不想增加一个模型工具,直接可以把批量创建文件夹的的模型作为子模型嵌套到批量迭代GDB输出shp。
那这里就有个问题要考虑,因为在模型中迭代器每运行一次,所有工具都要运行一次,但是我们的“批量创建文件夹”模型只能让他运行一次,这时候我就通过计算值来生成一个布尔值来空值他的运行,只让它运行一次。
3、要设置成交互界面工具,你可以根据模型构建器教程教学设置参数就好。
四、视频讲解
GIS思维:ArcGIS批量GDB导出shp上篇(批量创建文件夹)20201228
GIS思维:ArcGIS批量GDB导出shp下篇(批量导出shp)20201228