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)的一个必备特性了,它所做的就是根据用户输入的部分内容,猜测用户想要的文件名,并提供一个推荐列 ...
随机推荐
- QTbaWidget控件几个例程 【worldsing笔记】
Qt Creator自带的 QTabWidget控件几个例程 在Qt Windos版本安装后,在Example目录可以找到与QTabWidget相关的工程Demo,如果按默认安装的话他们分别是: ...
- HDU 5778 abs (素数,暴力)
题意:给定一个数x,求正整数y≥2y\geq 2y≥2,使得满足以下条件: 1.y-x的绝对值最小 2.y的质因数分解式中每个质因数均恰好出现2次. 析:由于y质因数分解式中每个质因数均出现2次,那么 ...
- OC:关于Itunes你了解多少?
在苹果电脑里有一个 iTunes 简单的说iTunes是苹果公司开发的一个应用程序,由苹果电脑在2001年1月10日于旧金山的 Macworld Expo 推出的一款数字媒体播放应用程序,用于播放以及 ...
- Gartner:Hype Cycle for Emerging Technologies-2013
The “Hype Cycle for Emerging Technologies” report is the longest-running annual Hype Cycle, provid ...
- 学习tolua#·20多个例子
初始项目搭建 clone官方库 新建unity工程 依次把官方库里的Assets和Unity5.x/Assets拷贝到项目Assets里 打开unity工程, 开始逐个学习例子,例子目录: 1. he ...
- 使用JDK开发Servlet程序
在eclipse中集成JDK和tomcat服务器方法很简单,我们可以在服务器上运行想要的东西.但有时也需要我们手动档编译我们的Servlet程序. 所以才有了今天这篇文章,本文以下内容从网上参考,有很 ...
- PL/pgSQL学习笔记之三
http://www.postgresql.org/docs/9.1/static/plpgsql-overview.html 39.1.2. Supported Argument and Resul ...
- C++ 方法隐藏
1.过载:一个类中,方法名相同,形参表不同的方法. 2.重写:子类与父类的virtual方法,方法名,形参表相同. 3.考虑下面的情况,子类与父类方法名相同. 父类是virtual方法 ...
- 企业应用架构模式阅读笔记 - Martin Fowler
1. 数据读取
- Codeforces Beta Round #12 (Div 2 Only) D. Ball sort/map
D. Ball Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/problemset/problem/12/D D ...