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.
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.
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:
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
é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()
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?
la source
Réponses:
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!
la source
Fondamentalement, cela n'a pas été possible, mais a trouvé un moyen détourné pour obtenir le résultat. Voir le script arcgis python pour résoudre le problème d'outil pour le résultat final.
D'autres questions pour arriver à ce stade sont
Conversion d'un style ArcGIS (symbologie) en police pour MapInfo / OpenGeo?
Conserver la symbologie ESRI dans Mapinfo TAB
et
Créer un tableau récapitulatif de la symbologie de tous les jeux de données dans plusieurs MXD?
la source