创建多个MXD中所有数据集的符号系统摘要表?


9

这与Mapinfo TAB中的以下“ 保留ESRI符号”有关。作为第一步(在arcpy中),我想访问所有数据集的符号系统,并创建一个文档,其中包含如下图所示的符号系统详细信息。 在此处输入图片说明

这是否有可能(我应该花点时间来解决),或者如果不可能,我将不得不在数百个MXD上手动进行破解(:-

要分解这些步骤-希望我可以使过程的至少一部分自动化。

  1. 滚动浏览mxd并获取打开的数据集没有问题

    lyrFile = arcpy.mapping.Layer,如果lyrFile.visible == True:

  2. 找到数据集后,应创建一个.lyr文件(因为大多数只是shp / gdb文件),然后创建AttribXXX = lyrFile.xxx

XXX和XXX在哪里

BRIGHTNESS = lyrFile.brightness

(格式如下)

CONTRAST contrast
DATASETNAME datasetName
DATASOURCE dataSource
DESCRIPTION description
LABELCLASSES labelClasses
LONGNAME longName
NAME name
SHOWLABELS showLabels
TRANSPARENCY transparency
WORKSPACEPATH A layer's workspace or connection file path

问题是我找不到能获得RGB,线/点/多边形类型,线宽,字体等的任何东西。如果可以找到,则下一步

  1. 将上述每个值写入CSV(简单)...例如(必须扩展)

                    f = open(origPath+'\\LayerAtrributes_LOG.txt', 'a')
                    f.write(str(DATASETNAME)+","+str(DATASOURCE)+","+str(DESCRIPTION)+","+str(MXDName)+"\n")
                    f.close()
    
  2. 如果可能,应如示例中那样生成符号系统的jpg,并将其链接添加到csv中。

我在问很多arcpy吗?


对于ArcObjects,这可能是可行的,但绝对不是arcpy。
blah238

谢谢。有人可以协助arcobjects处理吗?
GeorgeC 2012年

只有这样才能指出您的起点:ArcObjects .NET SDK帮助 ; 使用符号和颜色以及使用图层和渲染器。我认为,如果在通读这些书后也许没有其他事情,您将能够更精确地定义您的需求并限制工作范围,因为这是很多工作。
blah238

这是一个用于导出样式符号的旧VB6示例:Style Dump。检查StyleDump.bas中的内容。
blah238

Answers:


3

我通过将MXD文档转换为MSD(只是一个zip文件)解决了类似的问题,因此,如果将扩展名更改为“ .zip”并打开它,您会发现一些.xml文档,其中包含许多有关每个文档的信息。显示mxd中的图层。arcpy.ConvertToMSD获取所需的信息可能涉及一些工作,但应该放在某个地方。希望有帮助!


感谢您的开创性想法。这真的很有帮助。xml中生成的代码非常复杂,您是否编写了程序来自动捕获相关的xml,如果可以的话可以共享它,否则,我将着手进行这一方面的工作。
GeorgeC 2012年

我只对xml中的两个值感兴趣,因此我很难建立任何东西。但是那里有很多非常好的python xml教程,因此,如果您准备花一些时间阅读,我相信您会解决问题的。祝您编码愉快:)
dango 2012年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.