最近在用ArcGIS10.0出图,出的图比较多,就在网上找了个利用python批量出图的小程序:(path中为路径,res为出图dpi)原网址:
http://hi.baidu.com/dengsilou/item/c13b82f6535ce7cf521c2671第一个版本:
#用途:将一个文件夹中的所有mxd文件(不包括子目录)导出成jpg图片,并放置到该文件夹中。
#用法:用记事本打开,将参数path更改成指定的文件路径,注意将反斜杠“”改成正斜杠“/”;res是设定的dpi值。
#运行方法:打开Python2.6中的IDLE,File - > Open -> run -> run Module。
import arcpy, os, time
path = r'D:/workspace'
res = 100
print '程序开始:' + str(time.ctime())
for afile in os.listdir(path):
if afile[-3:].lower() == 'mxd':
mxd = arcpy.mapping.MapDocument(os.path.join(path,afile))
arcpy.mapping.ExportToJPEG(mxd, os.path.join(path,afile[:-3] + 'jpg'), resolution = res)
del mxd
print '程序结束:' + str(time.ctime())
————————————————————————————————————————————————
————————————————————————————————————————————————
第二个版本:
#用途:将一个文件夹中的所有mxd文件(包括所有子目录中的mxd文件)导出成jpg图片,并存储到该文件夹下。
import arcpy, os, time
path = r'D:/workspace'
res = 200
print '程序开始:' + str(time.ctime())
for root, dirs, files in os.walk(path):
for afile in files:
if afile[-4:].lower() == '.mxd':
mxd = arcpy.mapping.MapDocument(os.path.join(root,afile))
arcpy.mapping.ExportToJPEG(mxd, os.path.join(path,afile[:-3] + 'jpg'), resolution = res)
del mxd
print '程序结束:' + str(time.ctime())
———————————————————————————————————————————————————
说明:
1.对于方法二可以将path改成root,这样就可以将jpg文件放入每一个mxd对应的目录下面,而不是放到path制定的目录下面。
2.使用filegeodatabase比personalgeodatabase导出时会有效率上的提升,以我的图按dpi=10来算有10%的提升。
——————————————————————————————————————————————————
———————————————————————————————————————————————————
另外作者弄了个改进版,增加了出图后自动关机功能:
import arcpy, os, time
path = ur'C:Documents and SettingsAdministrator桌面导图'
res = 100
#mode1可选值为0或1,0表示导出path这个目录及其所有层次子目录中的mxd,1表示只导出path这个目录的mxd文件。
mode1 = 0
#mode2可选值为0或1,0表示mxd导出的图片放到与mxd相同的文件夹下,1表示放到path下面。
mode2 = 0
#mode3可选值为0或1,0表示导图结束后不关机,1表示结束后关机。
mode3 = 0
def main():
for root, dirs, files in os.walk(path):
if mode2 == 0:
temp_path = root
else:
temp_path = path
for afile in files:
if afile[-4:].lower() == '.mxd':
mxd = arcpy.mapping.MapDocument(os.path.join(root,afile))
arcpy.mapping.ExportToJPEG(mxd, os.path.join(temp_path,afile[:-3] + 'jpg'), resolution = res)
del mxd
print ur'succeed in exporting file ' + afile[:-3] + ur'jpg'
if mode1 != 0:
break
if mode3 != 0:
os.system('shutdown -s -t 120')
if __name__ == "__main__":
main()
自己用了之后感觉很不错!