Suite

Pourquoi les sorties d'outils disparaissent-elles du mxd à la fin d'un outil de script python ?


Le script ci-dessous fonctionne correctement et produit la sortie correcte, mais après l'ajout de ma sortie à ArcMap, ce que je veux qu'il fasse, il disparaît alors que le script se termine. J'aimerais que mes données restent visibles sur la carte une fois le script terminé et ne disparaissent pas.

Voici ce qui se passe :

  1. La sortie du tampon "TestFC_buf" est ajoutée à la carte.
  2. "Script terminé." et " Script terminé TestAddToMap… " s'imprime dans la fenêtre de dialogue de script.
  3. "TestFC_buf" disparaît de la carte.
  4. "Succeed at Thu Aug 06… " s'imprime dans la fenêtre de dialogue de script.

Voici la boîte de dialogue du script :

Et voici le code :

import arcpy, os arcpy.env.overwriteOutput = True arcpy.env.addOutputsToMap = True arcpy.env.workspace = r"C:UserskgradyDesktopTempAddOutputToMap_TestTest.gdb" workspace = arcpy.env.workspace fc = "TestFC" output = os.path.join(workspace, "TestFC_buf") arcpy.Buffer_analysis(fc, output, "1 Mile") arcpy.AddMessage("Script Finished.")

Avez-vous une idée de la raison pour laquelle la sortie disparaît de la carte ?


Vous pourriez définiraddOutputsToMapàFaux, et à la place, transformez la sortie du tampon en un objet Layer et ajoutez-le au MXD actuel à l'aide de la fonction AddLayer.

import arcpy, os arcpy.env.overwriteOutput = True arcpy.env.addOutputsToMap = False workspace = r"C:UserskgradyDesktopTempAddOutputToMap_TestTest.gdb" arcpy.env.workspace = workspace mxd = arcpy. mapping.MapDocument("CURRENT") df = arcpy.mapping.ListDataFrames(mxd)[0] fc = "TestFC" output = os.path.join(workspace, "TestFC_buf") arcpy.Buffer_analysis(fc, output, "1 Mile") layer = arcpy.mapping.Layer(output) arcpy.mapping.AddLayer(df, layer) arcpy.AddMessage("Script Finished.")


Voir la vidéo: Analyser des données texte en Python (Octobre 2021).