zoukankan      html  css  js  c++  java
  • arcpy修改mxd symbology.classBreakLabels

    mxd使用分级渲染,

    lyr.symbologyType =‘’
    #coding=utf-8
    import arcpy
    mxd = arcpy.mapping.MapDocument(ur"xxx10.2.mxd")
    copied_mxd = ur"E:xxxx0.2b.mxd"
    # for lyr in arcpy.mapping.ListLayers(mxd):
    #     print lyr.name,lyr.longName
    
    print "Loading mxd file default dataframes..."
    df = ""
    try:
        frames = arcpy.mapping.ListDataFrames(mxd, "图层")
        if len(frames) == 0:
            frames = arcpy.mapping.ListDataFrames(mxd, "Layers") 
        df = frames[0]
    except Exception, e:
        print "load mxd file default dataframes failed:", e
    
    # lyr = arcpy.mapping.ListLayers(mxd, "到最近xxx距离", df)[0]
    # print lyr.symbologyType
    
    # for lyr in arcpy.mapping.ListLayers(mxd, "", df):
    #     print lyr.symbologyType,lyr.symbology.valueField
    
    breaks=[]
    labels=[]
    for lyr in arcpy.mapping.ListLayers(mxd, "", df):
        
        #     print lyr.symbology.classBreakValues
        if 0.0 == lyr.symbology.classBreakValues[0] and 0.0 == lyr.symbology.classBreakValues[1]:
            #print lyr.symbology.classBreakValues
            #print lyr
            breaks=lyr.symbology.classBreakValues
            breaks.remove(breaks[1])
            lyr.symbology.classBreakValues = breaks
    
        labels=lyr.symbology.classBreakLabels
        for i in range(len(labels)):
            if '.000000 - ' in labels[i] or '0.000000 - ' in labels[i]:
                #print labels[i]
                labels[i]=labels[i].replace('0.000000','0').replace('.000000','0')
        lyr.symbology.classBreakLabels=labels
    
    
    
    mxd.saveACopy(copied_mxd)
    del mxd

  • 相关阅读:
    网络协议
    面向对象三大特性之多态
    面向对象三大特性之封装
    面向对象三大特性之继承
    python面向对象编程
    常用模块之configpaser与shutil
    XML模块
    Python模块之OS,subprocess
    Python日志(logging)模块,shelve,sys模块
    Linux 配置 Nginx
  • 原文地址:https://www.cnblogs.com/yansc/p/14205432.html
Copyright © 2011-2022 走看看