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进行操作。