GIS工具系列(四)使用arcpy清空gdb中的数据
在使用arcmap进行数据处理过程中,经常会在Default.gdb下存有大量的临时图层数据。有时如果临时数据太多,逐条手动删除非常苦恼,因此考虑使用arcpy读取gdb中的数据,再逐条删除,用代码帮助我们解决现实问题。
解决思路:遍历gdb中的数据(要素类、要素集、栅格、表等)——>逐个删除——>清空完成
1、数据情况如下
比如计算一次可视域,过程中产生如此多的数据,手动清除则搞死人。
2、代码
# Time:2022/06/29
# Author:XuWei
# Description:对选中工作空间下要素删除
import arcpy
import os
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
in_dir = r"C:\Users\Administrator\Documents\ArcGIS\Default.gdb"
arcpy.env.workspace=in_dir
def deleteAll(list):
i = 0
for li in list:
i = i+1
print(i, li)
arcpy.Delete_management(li)
def deleteInGDB():
featureclasses = arcpy.ListFeatureClasses()
tbs = arcpy.ListTables()
dss = arcpy.ListDatasets()
deleteAll(featureclasses)
deleteAll(tbs)
deleteAll(dss)
print("----------------------")
deleteInGDB()
print(u"Complete!")
print("----------------------")
使用vscode指定arcgis python编辑器,可以在vscode中运行代码完成gdb内的全部数据清除。
3、Toolbox中增加脚本
如果使用vscode较为麻烦,可以将脚本修改下,在Toolbox中注入脚本,在arcmap中执行工具即可完成数据清空。
in_dir选中需要清空的gdb,这里将参数暴露出来,可以支持对任意gdb进行操作。