arcgis批量对比,导出图层
最近工作中遇到了这么一个问题,把套好底图的mxd中的关键数据导入另一个底图当中,也就是需要换底图。一个个的换实在费劲,开发了新的程序进行批量导出。
首先就是对关键数据的图层导出,我们都知道,arcgis中只导出数据的话,调好的颜色、分类的等会变,需要在新图上重新调整,所以我们需要把调整好的关键数据导出为图层形式,这样就不再需要重新对图层进行调整啦。今天我们就来看看如何通过对比批量导出图层数据。
1.工作环境
工作环境依然是arcgis10.2和python2.7,所需的库有arcpy、sys、os、re。
# -*- coding:utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import arcpy as arc
import os
import re
2.文件路径
已经做好的成图mxd和底图在同一个文件夹中。文件夹中既有mxd又有其他的文件存在。首先需要写文件的所在路径。
mxd_list主要用作mxd文件名的储存。
path = ur'G:\三水转换图' # 加u解码中文
filename = os.listdir(path) # 可读出文件夹下所有文件名称
mxd_list = [] # 储存文件夹下所有mxd文件的列表
3.读取mxd文件
这里mxd文件的读取采用正则表达式的方式进行。
for i in filename:
if re.findall(".mxd$",i): # 正则表达式,$,匹配字符串最后的字母为$前的字母
mxd_list.append(str(i))
利用$匹配后缀名为.mxd的文件,保存到mxd_list中。
4.判断并导出关键数据图层
由于我的mxd中,每一个都有所有的底图图层,加一个自己做的关键数据图层,所以我采取了与底图图层名字对比的方式进行图层的筛选,还可以利用图层属性判断栅格、矢量等图层,利用图层类型对图层进行筛选。
- 利用类型筛选
# 判断图层类型
list1 = ['CREDITS', 'SYMBOLOGY', 'WORKSPACEPATH', 'DESCRIPTION',