arcpy查找,修复丢失的数据源

#查找丢失数据源的图层

import arcpy.mapping as mapping
mxd = mapping.MapDocument(r”c:\ArcpyBook\Ch3\Crime_BrokenDataLinks.mxd”)
listBrokenDS = mapping.ListBrokenDataSources(mxd)
for layer in listBrokenDS:
    print(layer.name)

#修复丢失的数据源

import arcpy.mapping as mapping
mxd = mapping.MapDocument(r”c:\ArcpyBook\Ch3\Crime_BrokenDataLinks.mxd”)
mxd.findAndReplaceWorkspacePaths(r”C:\ArcpyBook\Ch3\Data\OldData\CityOfSanAntonio.gdb”, r”C:\ArcpyBook\Data\CityOfSanAntonio.gdb”)
mxd.saveACopy(r”C:\ArcpyBook\Ch3\Crime_DataLinksFixed.mxd”)

#替换数据源的方法

import arcpy.mapping as mapping
mxd = mapping.MapDocument(r”c:\ArcpyBook\Ch3\Crime_DataLinksFixed.mxd”)
mxd.replaceWorkspaces(r”c:\ArcpyBook\data\CityOfSanAntonio.gdb”, “FILEGDB_WORKSPACE”,r”c:\ArcpyBook\new_data\CityOfSanAntonio_Personal.mdb”,”ACCESS_WORKSPACE”)
mxd.saveACopy(r”c:\ArcpyBook\Ch3\Crime_DataLinksUpdated.mxd”)
#修复指定的图层数据源

import arcpy.mapping as mapping
mxd = mapping.MapDocument(r”c:\ArcpyBook\Ch3\Crime_DataLinksLayer.mxd”)
df = mapping.ListDataFrames(mxd,”Crime”)[0]
lyr = mapping.ListLayers(mxd,”Burglary”,df)[0]
lyr.replaceDataSource(r”c:\ArcpyBook\data”,”SHAPEFILE_WORKSPACE”,”Burglaries_2009″)
mxd.saveACopy(r”c:\ArcpyBook\Ch3\Crime_DataLinksNewLayer.mxd”)
#找出文件夹中所有丢失数据源的地图文档

import arcpy.mapping as mapping, os
f = open(‘BrokenDataList.txt’, ‘w’)
for root, dirs, files in os.walk(“c:\ArcpyBook”):
    for name in files:
        filename = os.path.join(root, name)
        if “.mxd” in filename:
            mxd = mapping.MapDocument(filename)
            f.write(“MXD: ” + filename + “\n”)
            brknList = mapping.ListBrokenDataSources(mxd)
            for brknItem in brknList:
                print(“Broken data item: ” +  brknItem.name + ” in ” + filename)
                f.write(“\t” + brknItem.name + “\n”)
print(“All done”)
f.close()

转载自:https://blog.csdn.net/A873054267/article/details/85871321

You may also like...