Créer un tableau récapitulatif de la symbologie de tous les jeux de données dans plusieurs MXD?


9

Ceci est lié à la symbologie Retain ESRI suivante dans Mapinfo TAB . Dans un premier temps (en arcpy), je souhaite accéder à la symbologie de tous les jeux de données et créer un document contenant les détails de la symbologie selon le graphique ci-dessous. entrez la description de l'image ici

Est-ce possible (si j'investis du temps pour le résoudre) ou si ce n'est pas possible, je devrai simplement me fissurer en le faisant manuellement sur des centaines de MXD (: -

Pour décomposer les étapes, j'espère pouvoir automatiser au moins une partie du processus.

  1. faire défiler les mxd et obtenir les jeux de données qui sont activés ne pose aucun problème

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

  2. comme il trouve un ensemble de données, il doit créer un fichier .lyr (car la plupart ne sont que des fichiers shp / gdb) puis AttribXXX = lyrFile.xxx

où XXX et xxx sont

BRIGHTNESS = lyrFile.brightness

(format ci-dessus à suivant)

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

Le problème est que je ne trouve rien qui obtienne le RVB, le type de ligne / point / polygone, les épaisseurs de ligne, la police, etc. Si ceux-ci peuvent être trouvés, l'étape suivante

  1. écrire chacune des valeurs ci-dessus dans un CSV (facile) ... par exemple (cela doit être développé)

                    f = open(origPath+'\\LayerAtrributes_LOG.txt', 'a')
                    f.write(str(DATASETNAME)+","+str(DATASOURCE)+","+str(DESCRIPTION)+","+str(MXDName)+"\n")
                    f.close()
    
  2. Si possible, un jpg de la symbologie doit être produit comme dans l'exemple et le lien vers celui-ci ajouté au csv.

Suis demande beaucoup d'arc?


Cela peut être possible avec ArcObjects mais certainement pas avec arcpy.
blah238

Merci. Quelqu'un peut-il alors aider au traitement des objets arc?
GeorgeC

Seul peut vous indiquer par où commencer: Aide du SDK ArcObjects .NET ; Utilisation des symboles et des couleurs et Utilisation des calques et des rendus . Si rien d'autre peut-être après avoir lu ceux-ci, vous serez en mesure de définir plus précisément vos besoins et de limiter la portée du travail, car ce sera beaucoup de travail, je pense.
blah238

Voici un ancien exemple VB6 pour exporter des symboles de style: Style Dump . Vérifiez StyleDump.bas pour la viande de celui-ci.
blah238

Réponses:


3

J'ai résolu un problème similaire en convertissant un document MXD en MSD (qui est juste un fichier zip) donc si vous changez l'extension en ".zip" et l'ouvrez, vous trouverez des documents .xml qui contiennent beaucoup d'informations sur la façon dont chacun le calque dans le mxd s'affiche. arcpy.ConvertToMSD Il peut y avoir un certain travail à faire pour obtenir les informations que vous voulez, mais elles devraient être là quelque part. J'espère que cela pourra aider!


Merci pour cette idée fondamentale. C'est vraiment utile. Le code généré dans le xml est assez complexe, avez-vous programmé la capture automatique du xml pertinent et si oui, pouvez-vous le partager, sinon je vais commencer à travailler sur cet aspect.
GeorgeC

Je n'étais intéressé que par deux valeurs dans le xml, donc tout ce que j'avais serait très difficile à construire. Mais il y a des tas de très bons tutoriels xml python là-bas, donc si vous êtes prêt à passer du temps à lire, je suis sûr que vous résoudrez le problème. Joyeux codage :)
dango

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.