Suite

Classe d'entités en sortie vide après avoir essayé de l'afficher sur la carte à l'aide de arcpy.mapping ?


J'essaie d'afficher la sortie de mon script sur un mxd une fois qu'il est créé. Pour ce faire, j'ai créé une fonction à la fin de ma classe qui gère tous les mappages. J'ai testé le code jusqu'à la fonction de mappage et cela fonctionne très bien. Mais lorsque j'essaie d'exécuter le script avec la fonction de mappage, le fichier de sortie est vide, tout comme le fichier de couche que j'ai créé avec. Y a-t-il quelque chose qui ressorte qui pourrait modifier/enregistrer sur mon fichier de sortie ?

def MapOutput(self):"Cette fonction crée une carte, ajoute les données de sortie et exporte une miniature des données."# Créer des entités de carte. mxd = arcpy.mapping.MapDocument(self.MapDocument) dfs = arcpy.mapping.ListDataFrames(mxd) df = dfs[0] # Créer un fichier de couche à partir des données d'entrée et le symboliser. arcpy.MakeFeatureLayer_management(self.dBaseComparison(), 'Layer') arcpy.ApplySymbologyFromLayer_management('Layer', self.OutSymb) # Ajouter une couche symbolisée au document cartographique. addLayer = arcpy.mapping.Layer('Layer') arcpy.mapping.AddLayer(df, addLayer) # Créez une copie de la carte et enregistrez-la. copyName = self.MapDocument[:-4] + "_Output.mxd" mxd.saveACopy(copyName) del mxd # Exporte une image PNG de la carte. mxd = arcpy.mapping.MapDocument(copyName) arcpy.mapping.ExportToPNG(mxd, copyName[:-4] + "_Map.png">

arcpy.MakeFeatureLayer_management()ne crée pas de calque déposer, il crée une couche en mémoire. L'ajout d'un calque en mémoire à un mxd ne devrait pas fonctionner, vous devez enregistrer le calque dans un fichier de calque avecarcpy.SaveToLayerFile_management_management()ensuite (ou alternativement, utilisez une couche déjà présente dans la table des matières d'un mxd) :

… arcpy.MakeFeatureLayer_management(self.dBaseComparison(), 'Layer') arcpy.ApplySymbologyFromLayer_management('Layer', self.OutSymb) arcpy.SaveToLayerFile_management('Layer', r'C:folderlyr.lyr')…


Voir la vidéo: ArcGIS Tutorial, Layout Map In ArcGIS (Octobre 2021).