免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 2891|回复: 26
收起左侧

[经验共享] 【 ArcGIS工具 - 批量删除空图层】

  [复制链接]

4

主题

1122

铜板

10

好友

技术员

Rank: 3Rank: 3

积分
87
QQ
发表于 2022-7-8 10:13 | 显示全部楼层 |阅读模式
为了减少数据的冗余,我们经常需将数据库中的空图层(没有任何记录的要素类或表)删除,删除数据本来是一个很简单的操作,但如果数据量大,则需通过程序来处理。例如,删除成百上千个标准分幅DLG数据库中等高线数据为空的图层。采用为源GIS开发的批量删除空图层工具可实现自动判断图层内要素数据,并删除记录数为0的空图层。
需求描述
如果图层较少,可直接打开属性表判断其数量后,使用删除工具可直接删除空图层。
删除工具.png
如果量比较多,也可以右键使用批量删除功能。
批量删除.png
功能说明
插图.png
批量删除空图层工具,主要包括有以下特点:
  • 能够批量检查记录数量,并自动删除空图层;
  • 支持ArcGIS 所有类型的地理数据工作空间(文件夹、地理数据库);
  • 兼容ArcGIS 10.0~10.8、ArcGIS Pro多个版本。
使用方法
在ArcGIS Pro加载并运行工具,选择一个或多个需要检查和删除的工作空间,单击“运行”即可得到结果。
参数设置2.png
在ArcMap中使用方法类似,如下图所示:
参数设置1.jpg
代码实现
主要用到List列出数据、GetCount计算和Delete_management操作,关键代码如下:
  1. import arcpy

  2. arcpy.env.workspace = path
  3. def deleteGDBFile(gdbpath):
  4.     env.workspace=gdbpath
  5.     fcs=arcpy.ListFeatureClasses()
  6.     for fc in fcs:
  7.         if int(arcpy.GetCount_management(fc).getOutput(0))==0:
  8.             arcpy.Delete_management(fc)
  9.     fcs = arcpy.ListTables()
  10.     for fc in fcs:
  11.         if int(arcpy.GetCount_management(table).getOutput(0))==0:
  12.             arcpy.Delete_management(fc)
复制代码


7

主题

3万

铜板

21

好友

地信院士

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

积分
2778
QQ
发表于 2022-7-11 10:12 | 显示全部楼层
虽然看不懂代码,收藏慢慢学习
走自己的路,让别人无路可走
回复 支持 反对

使用道具 举报

1

主题

3310

铜板

1

好友

至尊VIP

Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24

积分
248
发表于 2022-7-13 16:44 | 显示全部楼层
感谢分享
回复

使用道具 举报

0

主题

405

铜板

1

好友

技术员

Rank: 3Rank: 3

积分
36
发表于 2022-7-16 11:41 | 显示全部楼层
感谢分享
回复

使用道具 举报

0

主题

1万

铜板

12

好友

教授级高工

Rank: 12Rank: 12Rank: 12

积分
1311
发表于 2022-7-16 11:43 | 显示全部楼层
感谢分享
回复

使用道具 举报

0

主题

5148

铜板

1

好友

地信院士

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

积分
2100
发表于 2022-7-18 22:49 | 显示全部楼层
谢谢分享,学习学习
回复 支持 反对

使用道具 举报

1

主题

1万

铜板

2

好友

黄金会员

Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23

积分
5179
发表于 2022-11-27 20:53 | 显示全部楼层
感谢分享!
回复

使用道具 举报

0

主题

477

铜板

1

好友

技术员

Rank: 3Rank: 3

积分
31
发表于 2023-7-26 17:39 | 显示全部楼层
感谢分享
回复

使用道具 举报

0

主题

262

铜板

1

好友

技术员

Rank: 3Rank: 3

积分
25
发表于 2023-9-13 10:32 | 显示全部楼层
谢谢分享
回复

使用道具 举报

0

主题

468

铜板

0

好友

助理工程师

Rank: 5Rank: 5

积分
136
发表于 2023-9-14 09:54 | 显示全部楼层
:zt:zt:zt:zt:zt
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表