¿Está creando una tabla resumen de simbología de todos los conjuntos de datos en múltiples MXD?

9

Esto está relacionado con la siguiente simbología Retener ESRI en Mapinfo TAB . Como paso inicial (en arco), quiero acceder a la simbología de todos los conjuntos de datos y crear un documento que tenga los detalles de la simbología según el gráfico a continuación. ingrese la descripción de la imagen aquí

¿Es esto posible (debería invertir el tiempo para resolverlo) o si no es posible, tendré que comenzar a hacerlo manualmente en cientos de MXD (: -

Para desglosar los pasos, espero poder automatizar al menos parte del proceso.

  1. desplazarse por mxd's y obtener los conjuntos de datos que están encendidos no es problema

    lyrFile = arcpy.mapping.Layer if lyrFile.visible == True:

  2. a medida que encuentra un conjunto de datos, debe crear un archivo .lyr (ya que la mayoría son solo archivos shp / gdb) y luego AttribXXX = lyrFile.xxx

donde XXX y xxx son

BRIGHTNESS = lyrFile.brightness

(formato anterior al siguiente)

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

El problema es que no puedo encontrar nada que obtenga RGB, tipo de línea / punto / polígono, grosores de línea, fuente, etc. Si se pueden encontrar, entonces el siguiente paso

  1. escriba cada uno de los valores anteriores en un CSV (fácil) ... por ejemplo (esto debe ampliarse)

                    f = open(origPath+'\\LayerAtrributes_LOG.txt', 'a')
                    f.write(str(DATASETNAME)+","+str(DATASOURCE)+","+str(DESCRIPTION)+","+str(MXDName)+"\n")
                    f.close()
  2. Si es posible, debe producirse un jpg de la simbología como en el ejemplo y el enlace a él agregado al csv.

¿Estoy pidiendo mucho de arcpy?

GeorgeC
fuente
Esto puede ser posible con ArcObjects pero definitivamente no es arcpy.
blah238
Gracias. ¿Alguien puede ayudar con el procesamiento de arcobjects entonces?
GeorgeC
Solo puede indicarle dónde comenzar: ArcObjects .NET SDK Help ; Trabajando con símbolos y colores y Trabajando con capas y renderizadores . Si nada más, después de leerlos, podrá definir sus requisitos con mayor precisión y limitar el alcance del trabajo, porque creo que será mucho trabajo.
blah238
Aquí hay una muestra antigua de VB6 para exportar símbolos de estilo: Style Dump . Verifique StyleDump.bas para ver su carne.
blah238

Respuestas:

3

Resolví un problema similar al convertir un documento MXD a un MSD (que es solo un archivo zip), por lo que si cambia la extensión a ".zip" y la abre, encontrará algunos documentos .xml que contienen mucha información sobre cómo cada uno Se muestra la capa dentro del mxd. arcpy.ConvertToMSD Puede haber algún trabajo invocado para obtener la información que desea, pero debería estar allí en algún lugar. ¡Espero que ayude!

dango
fuente
Gracias por esta idea seminal. Es realmente útil El código generado en el xml es bastante complejo, ¿programó usted automáticamente la captura del xml relevante y, de ser así, puede compartirlo? De lo contrario, comenzaré a trabajar en este aspecto.
GeorgeC
Solo estaba interesado en dos valores en el xml, por lo que cualquier cosa que tenga será muy difícil de construir. Pero hay montones de tutoriales de Python xml realmente buenos, así que si estás preparado para pasar un tiempo leyendo, estoy seguro de que resolverás el problema. Happy coding :)
dango