ArcGIS之多个GDB批量导出shp至特定文件夹20201228

 

我们对GDB(文件地理数据库)的批量处理已经做了好几期的技术分享了。如下:

FME批量合并GDB地理数据库(20200908)

ArcGIS中的GDB批量裁剪升级与发布地理处理包( 20200511

ArcGIS之GDB(文件地理数据框)批量处理(20190115) 

一、背景

这次我们主要来介绍的是多个GDB怎么批量导出shp至特定的文件夹,这个有些项目是有如此需求。比如如下的数据,有多个GDB(GDB中也包含多个数据集以及要素类)。

java gdal 导入osgb_arcgis模型构建起

目的是要将数据批量导出到特定的文件夹中,比如将福清市.gdb的数据导出shp到福清市文件夹下,其他市一样操作。

java gdal 导入osgb_java gdal 导入osgb_02

二、技术思路

那参考我们的模型构建器的教程教学,整个思路应该是比较简单的。我们把问题通过两个模型来解决。

1、首先根据迭代工作空间迭代器一次去迭代多个GDB,获取名称配合创建文件夹工具,创建对应gdb的多个文件夹。

java gdal 导入osgb_arcgis批量导出gdb_03

java gdal 导入osgb_arcgis批量导出shp_04

java gdal 导入osgb_arcgis批量导出shp_05

2、第二步就是根据迭代要素类工具将多个gdb中的要素复制到特定的文件夹中。这其实思路是很清楚的,主要是要怎么将特定的GDB数据。

这里我用了一个解析路径读取每个要素类的路径,路径读取出来后我用计算值去获取这个要素类所在gdb的名称。计算值的语句其实是比较简单的:("%值%".split(".gdb")[0]).split("\\")[-1],获取值后我就可以把这个参数传给复制要素的输出了:%A20201224%\%output_value%\%output_value%_%名称%.shp

看不懂的没关系哦,我们配套了详细的视频介绍哦!

java gdal 导入osgb_java gdal 导入osgb_06

三、模型优化

上面的解决办法我们是通过两个模型来解决,先运行批量创建文件夹工具,再运行批量迭代GDB导出shp模型来处理。接下来我们把模型优化下,把模型优化下,把其他作为子模型,最后只要运行一个模型就出成果的,那这里有两种的方法。

1、最简单的就是我们的创建第3个模型,把上面的两个模型连接在一起就解决问题了。

java gdal 导入osgb_arcgis批量导出shp_07

2、那如果我们不想增加一个模型工具,直接可以把批量创建文件夹的的模型作为子模型嵌套到批量迭代GDB输出shp。

那这里就有个问题要考虑,因为在模型中迭代器每运行一次,所有工具都要运行一次,但是我们的“批量创建文件夹”模型只能让他运行一次,这时候我就通过计算值来生成一个布尔值来空值他的运行,只让它运行一次。

java gdal 导入osgb_arcgis批量导出shp_08

3、要设置成交互界面工具,你可以根据模型构建器教程教学设置参数就好。

java gdal 导入osgb_java gdal 导入osgb_09

四、视频讲解


GIS思维:ArcGIS批量GDB导出shp上篇(批量创建文件夹)20201228


GIS思维:ArcGIS批量GDB导出shp下篇(批量导出shp)20201228