1、常规方法
ArcGIS中批量更新数据源一般可以在ArcCatalog中进行,如下图:
通常情况下,我们的mxd数据源从一个文件夹或者数据库, 迁移到另一个文件夹或者数据库,数据根目录发生了变化,图层名并没有变化,可使用此方法。
2、基于Arcpy
偶然也有一些特殊情况,如老的数据源和新数据源均在同一数据库,但是图层名称有变化,通常有经验的老GISER会用一些前缀或者后缀来区分新老数据。这个时候,如果要更新数据源,可参考下来方法。
以下代码实现:
1、getTabList方法获取SDE连接中第一个数据集里面的所有表(图层)
2、replaceSource方法读取mxd中的图层并替换其中的图层数据源,新数据源来自getTabList方法,替换规则:将"SZ_"开头的图层替换为"GZ_"开头的图层。
import arcpy
ws = r'SDE Connection'
# 获取数据源列表
def getTabList():
arcpy.env.workspace = ws
dataSets = arcpy.ListDatasets(feature_type = 'fea