ArcGIS中批量删除指定工作空间内的空图层的实现方法

发布于:2025-06-18 ⋅ 阅读:(13) ⋅ 点赞:(0)

一、背景及意义

在日常工作中,我们接触到的数据库通常包含很多空图层,比如“海机数据处理工具箱”中的“三调国土变更调查工具箱”中的“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中结果即为我们需要的“批量删除工作空间内空图层”工具。

到这里,我们就得到了需要的结果。

想要获取已做好的工具请私信博主获取。

感谢观看!!!


网站公告

今日签到

点亮在社区的每一天
去签到