有多个mxd文件 每个mxd都包含数据驱动页面 如何批量导出图片?

同上所述
已邀请:

turtle

赞同来自: 江宝骅 徐珂 刀光剑影

1.了解下数据驱动页面
http://resources.arcgis.com/zh-cn/help/main/10.2/index.html#/na/00s300000030000000/
 
2. 参考上面链接的示例1:
以下脚本将“数据驱动页面”系列的每一页导出到单个 PNG 文件中。
import arcpy
mxd = arcpy.mapping.MapDocument(r"C:\Project\ParcelAtlas.mxd")
for pageNum in range(1, mxd.dataDrivenPages.pageCount + 1):
mxd.dataDrivenPages.currentPageID = pageNum
print "Exporting page {0} of {1}".format(str(mxd.dataDrivenPages.currentPageID), str(mxd.dataDrivenPages.pageCount))
arcpy.mapping.ExportToPNG(mxd, r"C:\Project\OutPut\ParcelAtlas_Page" + str(pageNum) + ".png")
del mxd
3. 遍历文件夹下的所有mxd文件
import arcpy,os
path = r"C:\mxds"
for root,dirs,files in os.walk(path):
for filename in files:
basename,extension = os.path.splitext(filename)
if extension == ".mxd":
print "MXD:" + filename + "\n"



4. 结合起来
import arcpy,os
path = r"C:"
for root,dirs,files in os.walk(path):
for filename in files:
basename,extension = os.path.splitext(filename)
if extension == ".mxd":
print "MXD:" + filename + "\n"
fullpath = os.path.join(root,filename)
mxd = arcpy.mapping.MapDocument(fullpath)
for pageNum in range(1, mxd.dataDrivenPages.pageCount + 1):
mxd.dataDrivenPages.currentPageID = pageNum
print "Exporting page {0} of {1}".format(str(mxd.dataDrivenPages.currentPageID), str(mxd.dataDrivenPages.pageCount))
arcpy.mapping.ExportToPNG(mxd, r"C:\Project\OutPut\ParcelAtlas_Page" + str(pageNum) + ".png")
del mxd
差不多就是这样吧。。

要回复问题请先登录注册