arcpy查找失效数据并修复为gdb中的feature class

arcpy查找失效数据并替修复为gdb中的feature class


)
本demo演示了利用arcpy.mapping.ListBrokenDataSources()读取失效数据,然后替换成gdb数据库下的要素类,只是简单的测试下,如果想实现特定批量转换,可以自己查找gsb要素类名称,然后写循环实现即可。

// An highlighted block
#coding=utf-8
import arcpy.mapping as mapping  # 导入arcpy.mapping模块
import os
import time


start = time.time()

print(start)
mxd = arcpy.mapping.MapDocument(r"C:\Users\admin\Desktop\Screenshots\test123344.mxd")  # 引用KeLaMaYi.mxd地图文档文件

wspath=r"C:\Users\admin\Desktop\Screenshots"

gdbfile=os.path.join(wspath, "New File Geodatabase.gdb")
listBrokenDS = arcpy.mapping.ListBrokenDataSources(mxd)  # 获取丢失了数据源的图层列表

""" 迭代列表,输出图层名称"""

for layer in listBrokenDS:
    print(layer.name)



df = arcpy.mapping.ListDataFrames(mxd, "Layers")[0]  # 引用对应数据框

lyr = arcpy.mapping.ListLayers(mxd, "qw.liuheng1.test", df)[0]  # 引用需要改变数据源的图层

lyr.replaceDataSource(gdbfile, "FILEGDB_WORKSPACE", "rrrtest")
print("qw.liuheng1.test替换完成")
lyr = arcpy.mapping.ListLayers(mxd, "qw.liuheng1.polygon", df)[0]  # 引用需要改变数据源的图层
lyr.replaceDataSource(gdbfile, "FILEGDB_WORKSPACE", "pee")
print("qw.liuheng1.polygon替换完成")
mxd.save()

end = time.time()

print(end)

print("It took"+ str(end - start)+ "seconds to complete the scripts")

替换完成后,打开mxd数据失效已经修复完成,可以看到起存放的路径以及文件名称。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_40625478/article/details/105579564
今日推荐