一、背景及意义
在日常工作中,我们接触到的数据库通常包含很多空图层,比如“海机数据处理工具箱”中的“三调国土变更调查工具箱”中的“2各图层逻辑检查工具”输出的矢量有十来个,但是通常有一些图层是空的,如果每次都全部加载进去,需要一个一个图层打开属性表进行查看,费时费力,那么有没有办法可以批量删除工作空间内空图层呢?答案是肯定的,请继续往下看。
二、大体思路
在模型构建器中实现,使用“迭代要素类”迭代工作空间内的所有矢量,使用“获取计数”工具获取要素类的要素数量,但是“获取计数”工具输出的计数是从0开始累加的,所以要素的记录的实际数量应为“获取计数”工具输出的计数加1。
三、具体步骤
1、新开ArcGIS模型构建器;
2、添加名为“输入工作空间”的工作空间类型的变量,右键“输入工作空间”,勾选模型参数;
3、在步骤2基础上接迭代要素类,勾选“递归”;
4、在步骤3基础上接“获取计数加1”子模型;
5、“获取计数加1”子模型如下:
5.1、在子模型中添加“获取计数”工具,右键“获取计数”,依次单击“获取变量-从参数-输入行”,将输出的“行计数”改名为“hang”;
5.2、右键输入行,勾选模型参数;
5.3、子模型中添加“计算值”工具,表达式为“%hang%+1”,将“输出值”改名为“count”,右键“count”,勾选模型参数;
5.3、右键子模型空白处,点击“模型属性”,将名称改为“获取计数加1”,勾选“存储相对路径名、始终在前台中运行”;
5.4、子模型中保存,选择工具存储的文件夹,点击弹窗中的右上角的红盒子(新建工具箱),将新建的tbx工具箱命名为“批量删除工作空间内空图层工具箱.tbx”,名称输入“获取计数加1”,点击保存;
6、将5中成果的工具箱添加到ArcToolbox中,将“获取计数加1”工具拖入到主模型中,接在步骤3后;
7、在主模型中添加“计算值”工具,表达式输入“%hang%+1”,代码块输入:
def pd(a):
if a == 1:
return True
else:
return False
8、将6中结果设置为7的前提条件;
9、步骤3输出的“FeatureClass”接“删除”工具,将步骤8结果设置为“删除”的前提条件;
10、右键主模型空白处,点击模型属性,名称设置为“批量删除工作空间内空图层”,勾选“存储相对路径名、始终在前台中运行”;
11、在主模型中点击保存,选择子模型所在的tbx工具箱,点击保存;
12、11中结果即为我们需要的“批量删除工作空间内空图层”工具。
到这里,我们就得到了需要的结果。
想要获取已做好的工具请私信博主获取。
感谢观看!!!