ArcGIS工具 - 批量删除空图层
为了减少数据的冗余,我们经常需将数据库中的空图层(没有任何记录的要素类或表)删除,删除数据本来是一个很简单的操作,但如果数据量大,则需通过程序来处理。例如,删除成百上千个标准分幅DLG数据库中等高线数据为空的图层。采用为源GIS开发的批量删除空图层工具可实现自动判断图层内要素数据,并删除记录数为0的空图层。
需求描述
如果图层较少,可直接打开属性表判断其数量后,使用删除工具可直接删除空图层。
如果量比较多,也可以右键使用批量删除功能。
功能说明
批量删除空图层工具,主要包括有以下特点:
- 能够批量检查记录数量,并自动删除空图层;
- 支持ArcGIS 所有类型的地理数据工作空间(文件夹、地理数据库);
- 兼容ArcGIS 10.0~10.8、ArcGIS Pro多个版本。
使用方法
在ArcGIS Pro加载并运行工具,选择一个或多个需要检查和删除的工作空间,单击“运行”即可得到结果。
在ArcMap中使用方法类似,如下图所示:
代码实现
主要用到List列出数据、GetCount计算和Delete_management操作,关键代码如下:
import arcpy
arcpy.env.workspace = path
def deleteGDBFile(gdbpath):
env.workspace=gdbpath
fcs=arcpy.ListFeatureClasses()
for fc in fcs:
if int(arcpy.GetCount_management(fc).getOutput(0))==0:
arcpy.Delete_management(fc)
fcs = arcpy.ListTables()
for fc in fcs:
if int(arcpy.GetCount_management(table).getOutput(0))==0:
arcpy.Delete_management(fc)
技术支持
如果有任何疑问或问题,可联系微信:wygis2022 , 企鹅:1811335143
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 【全网最全教程】使用最强DeepSeekR1+联网的火山引擎,没有生成长度限制,DeepSeek本体