使用arcpy导出要素类和删除要素类中的要素数据

需求:

目的是在指定的GDB数据库中,将要素数据集SourcePolygon下的北京图层中的Layer字段值等于“KZ-控制指标”的记录先导出到新创建的TempPolygon下,导出的图层名为“ControlIndex”,然后再将北京图层中的Layer字段值等于“KZ-控制指标”的记录删除。

示例数据:

链接:https://pan.baidu.com/s/115XtROqpCLkFQ8ZSJ8Nbhg  
提取码:4n1i 

具体代码:

环境:Python2.x

# -*- coding:utf-8 -*-

import arcpy
import sys
reload(sys)
sys.setdefaultencoding("utf-8")

output_gdb_name = r"D:\test.gdb"  # 指定GDB文件

tempDataSet = "TempPolygon"
sqlFilterStr = "Layer='KZ-控制指标'"

arcpy.env.workspace = output_gdb_name
targetFC=""
# 判断指定的数据库是够存在使用的历史图层 ControlIndex,没有则创建,有:
#targetFC =

ifFind =False
datasets = arcpy.ListDatasets(feature_type='feature')
datasets = [''] + datasets if datasets is not None else []
for ds in datasets:
    for fc in arcpy.ListFeatureClasses(feature_dataset=ds):
        if fc=="北京":
            print "true..."
            targetFC =fc
            ifFind =True
            break
    if ifFind:break

arcpy.FeatureClassToFeatureClass_conversion(targetFC, output_gdb_name + "\\"+tempDataSet,"ControlIndex",sqlFilterStr)  #"Layer='KZ-控制指标'"   可执行
print "指标数据导出已完成...."

# a删除合并数据图层中的指标块数据
with arcpy.da.UpdateCursor(targetFC,"Layer",'"Layer"=\'KZ-控制指标\'') as  cursor:  #   sqlFilterStr

    cntr = 0
    for row in cursor:
        cursor.deleteRow()
        cntr +=1

print("原始指标数据删除已完成!共删除记录数:"+str(cntr)+"条。")

打印结果:

D:\app\desktop108\Python27\ArcGIS10.8\python.exe D:/java/***********.py
true...
指标数据导出已完成....
原始指标数据删除已完成!共删除记录数:14条。

Process finished with exit code 0
 

结果图:

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值