batchExportPNG.py不是我的代码
#coding=gbk
#@author lifc,20140806
#批量制作输出专题图
import arcpy,os,time,math
#testpath=raw_input("testpath:")
mainPath = r'C:/Users/yuwhuawang/Desktop/batchExportPNG_lifc' #模板mxd所在目录
mxdTempletName='200mGrid_bj_xicheng.mxd'#mxd模板文件名
tempMxdPath = mainPath+'/tempMxd' #中间过程mxd存储目录
resultPngPath=mainPath+'/resultPng' #png输出结果目录
res = 800 #dpi
#哈希数组arr
arr={'G_A100001':'总人口数',
'G_A100002':'男性人口数',
'G_A100003':'女性人口数',
'G_A100005':'户籍人口数',
'G_A100008':'城镇人口数',
'G_A100009':'非城镇人口数',
'G_A100010':'家庭户总数',
'G_A100011':'属家庭户的人口数 ',
'G_A100013':'家庭户中一人户总数',
'G_A100014':'家庭户中一代户的户数',
'G_A100015':'家庭户中二代户的户数',
'G_A100016':'家庭户中三代户的户数',
'G_A100017':'家庭户中四代及以上户的户数',
'G_A200001':'0岁男性总人数',
'G_A200002':'0岁女性总人数',
'G_A200003':'1-4岁男性总人数',
'G_A200004':'1-4岁女性总人数',
'G_A200005':'5-9岁男性总人数',
'G_A200006':'5-9岁女性总人数',
'G_A200007':'10-14岁男性总人数',
'G_A200008':'10-14岁女性总人数',
'G_A200009':'15-19岁男性总人数',
'G_A200010':'15-19岁女性总人数',
'G_A200011':'20-24岁男性总人数',
'G_A200012':'20-24岁女性总人数',
'G_A200013':'25-29岁男性总人数',
'G_A200014':'25-29岁女性总人数',
'G_A200015':'30-34岁男性总人数',
'G_A200016':'30-34岁女性总人数',
'G_A200017':'35-39岁男性总人数',
'G_A200018':'35-39岁女性总人数',
'G_A200019':'40-44岁男性总人数',
'G_A200020':'40-44岁女性总人数',
'G_A200021':'45-49岁男性总人数',
'G_A200022':'45-49岁女性总人数',
'G_A200023':'50-54岁男性总人数',
'G_A200024':'50-54岁女性总人数',
'G_A200025':'55-59岁男性总人数',
'G_A200026':'55-59岁女性总人数',
'G_A200027':'60-64岁男性总人数',
'G_A200028':'60-64岁女性总人数',
'G_A200029':'65-69岁男性总人数',
'G_A200030':'65-69岁女性总人数',
'G_A200031':'70-74岁男性总人数',
'G_A200032':'70-74岁女性总人数',
'G_A200033':'75-79岁男性总人数',
'G_A200034':'75-79岁女性总人数',
'G_A200035':'80-84岁男性总人数',
'G_A200036':'80-84岁女性总人数',
'G_A300005':'有65岁以上老年人口的户数',
'G_A300006':'有一个65岁以上老年人口的户数',
'G_A300007':'有二个65岁以上老年人口的户数',
'G_A300008':'有三个或以上65岁以上老年人口的户数',
'G_A300012':'从本县(市)及本市市区迁入的人口数',
'G_A300013':'从本省其他县(市)及市区迁入的人口数',
'G_A300014':'从外省迁入的人口数',
'G_A400001':'未上过学的男性人口数',
'G_A400002':'未上过学的女性人口数',
'G_A400003':'小学教育程度的男性人口数',
'G_A400004':'小学教育程度的女性人口数',
'G_A400005':'初中教育程度的男性人口数',
'G_A400006':'初中教育程度的女性人口数',
'G_A400007':'高中教育程度的男性人口数',
'G_A400008':'高中教育程度的女性人口数',
'G_A400009':'大学专科教育程度的男性人口数',
'G_A400010':'大学专科教育程度的女性人口数',
'G_A400011':'大学本科及以上教育程度的男性人口数',
'G_A400012':'大学本科以及上教育程度的女性人口数',
'G_A400016':'15岁及以上文盲人口数',
'G_A400017':'15岁及以上文盲男性人口数',
'G_A400018':'15岁及以上文盲女性人口数'
}
def reverseList(list):
     list.reverse()
     return list
def resv3(li):
    hcnt = int(math.floor(len(li)/2))
    tmp = 0
    for i in range(hcnt):
        tmp = li[i]
        li[i] = li[-(i+1)]
        li[-(i+1)] = tmp
    return li
print '>>Program Start:' + str(time.ctime())
mxd= arcpy.mapping.MapDocument(os.path.join(mainPath,mxdTempletName))
print '>>step1-create temp mxd:' + str(time.ctime())
for lyr in arcpy.mapping.ListLayers(mxd):
     if lyr.name=='grid':
          for k in arr:
               #注:10.2以上才支持GraduatedColorsSymbology
               if lyr.symbologyType == "GRADUATED_COLORS":
                    lyr.symbology.valueField =k
                    lyr.symbology.numClasses =7
                    lyr.symbology.classBreakLabels=resv3(lyr.symbology.classBreakLabels)
                    lyr.symbology.classBreakDescriptions=resv3(lyr.symbology.classBreakLabels)
                    #lyr.symbology.classBreakValues=resv3(lyr.symbology.classBreakValues)
                    arcpy.RefreshTOC()
                    arcpy.RefreshActiveView()
                    v = arr.get(k)
                    for elm in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT"):
                      if elm.text.encode('gbk').startswith('—'):#获取副标题,调整x值&修改名称
                           elm.elementPositionX=15-len(v)*0.25
                           elm.text = "—"+v
                           print k+":"+v
                           mxd.saveACopy(os.path.join(tempMxdPath, k+'.mxd'))
print '>>step1-completed:' + str(time.ctime())
print '>>step2-export png:' + str(time.ctime())
for afile in os.listdir(tempMxdPath):
  if afile[-3:].lower() == 'mxd':
    mxd = arcpy.mapping.MapDocument(os.path.join(tempMxdPath,afile))
    arcpy.mapping.ExportToPNG(mxd, os.path.join(resultPngPath,afile[:-3] + 'png'), resolution = res)    
    del mxd
print '>>step2-completed:' + str(time.ctime())
print '>>Program End:' + str(time.ctime())
batchExportPNG.py不是我的代码的更多相关文章
- PyQt4转换ui为py文件需添加如下代码才可执行
		
1)转换ui为py 命令行进入ui文件所在文件夹,输入pyuic4 ui_name.ui > py_name.py即可 或新建ui2py.bat文件,写入: @echo off @cd /d & ...
 - pycharm,右键执行run unittests in xx.py后,__main__:后的代码没执行
		
如图所示:执行py文件后,打印__name__的名是模块名,而非__main__ 查了好久,发现这个问题跟unittest这个类有关系,执行单元测试的py脚本时,不要右键run unittest,在p ...
 - bottle.py中的路由解析代码
		
# Routing def compile_route(route): """ Compiles a route string and returns a precomp ...
 - python3 计算文件夹中所有py文件里面代码行数,注释行数,空行数
		
import os,re #代码所在位置 FILE_PATH = './' def analyze_code(codefilesource): ''' 打开一个py文件统计其中的代码行数,包括空格和注 ...
 - 10 行 Python 代码写的模糊查询
		
导语: 模糊匹配可以算是现代编辑器(在选择要打开的文件时)的一个必备特性了,它所做的就是根据用户输入的部分内容,猜测用户想要的文件名,并提供一个推荐列表供用户选择. 样例如下: Vim (Ctrl-P ...
 - 【Django】Django命令(Manager.py)
		
django-admin.py startproject mysite 该命令在当前目录创建一个 mysite 目录. django-admin.py这个文件在C:\Python27\Lib\site ...
 - OpenStack的Resize和冷迁移代码解析及改进
		
原文:http://www.hengtianyun.com/download-show-id-79.html OpenStack的Resize(升级)功能,我们可以改变虚拟机的CPU核数.内存及磁盘大 ...
 - python 代码格式化工具:autopep8
		
学习资料: https://github.com/hhatto/autopep8 背景 autopep8 会根据 PEP 8 样式文档来格式化 python 代码.它使用 pep8 来决定代码的哪部分 ...
 - Python 代码实现模糊查询
		
Python 代码实现模糊查询 1.导语: 模糊匹配可以算是现代编辑器(如 Eclipse 等各种 IDE)的一个必备特性了,它所做的就是根据用户输入的部分内容,猜测用户想要的文件名,并提供一个推荐列 ...
 
随机推荐
- find命令之exec
			
find是我们很常用的一个Linux命令,但是我们一般查找出来的并不仅仅是看看而已,还会有进一步的操作,这个时候exec的作用就显现出来了. exec解释: -exec 参数后面跟的是command ...
 - C# 实现无标题栏窗体点击任务栏图标正常最小化或还原的解决方法
			
/// <summary> /// 实现窗体的最小化 /// </summary> protected override CreateParams CreateParams { ...
 - StructLayout特性
			
StructLayout特性 公共语言运行库利用 StructLayoutAttribute控制类或结构的数据字段在托管内存中的物理布局,即类或结构需要按某种方式排列.如果要将类传递 ...
 - 关于JPA封装数据库数据到实体不调用属性的get和set的方法解决办法
			
今天发现JPA封装数据库数据到实体并不调用属性的get和set的,郁闷,本来想在set方法做改字段的值处理的谁知道遇到这个情况: @Column(name = acode) @Access(value ...
 - GitHub 上排名前 100 的 Android 开源库进行简单的介绍
			
若有任何疑问可通过邮件或微博联系我 项目名称 项目简介 1. react-native 这个是 Facebook 在 React.js Conf 2015 大会上推出的基于 JavaScript 的开 ...
 - jquery调用页面的方法
			
本文转载:http://www.cnblogs.com/chenxizhang/archive/2009/05/28/1491250.html 有些朋友问到,能不能在jquery代码中调用后台cs页面 ...
 - MyEclipse使用总结——使用MyEclipse打包带源码的jar包
			
平时开发中,我们喜欢将一些类打包成jar包,然后在别的项目中继续使用,不过由于看不到jar包里面的类的源码了,所以也就无法调试,要想调试,那么就只能通过关联源代码的形式,这样或多或少也有一些不方便,今 ...
 - VK Cup 2012 Qualification Round 2 C. String Manipulation 1.0 字符串模拟
			
C. String Manipulation 1.0 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 codeforces.com/problemset/pr ...
 - ajax开发框架和XMLhttpRequest、responseText、responseXml和JSON的应用
			
1 AJAX开发框架 2 A 初始化XMLHttpRequest对象 3 B指定响应处理函数 4 C发出HTTP请求 5 D处理服务器返回的信息 6 数据格式提要 6 优点 6 缺点 7 解析 JSO ...
 - java课堂练习之可变參数与卫条件
			
/* 有人邀请A,B,C,D,E,F 6个人參加一项会议,这6个人有些奇怪.由于他们有非常多要求,已知: 1)A,B两人至少有1人參加会议: 2)A,E,F 3人中有2人參加会议. 3)B和C ...