zoukankan      html  css  js  c++  java
  • 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())

  • 相关阅读:
    mySQL远程访问
    PHP安装amqp操作记录
    storm与daemontools安装详解
    centos时间同步问题
    nf_conntrack: table full, dropping packet 解决
    rabbitmq主从搭建
    jsonp
    django 整理二
    django中表单验证
    ajax
  • 原文地址:https://www.cnblogs.com/gisoracle/p/3896963.html
Copyright © 2011-2022 走看看