Viac

Prečo výstupy nástrojov mxd miznú na konci skriptového nástroja pythonu?

Prečo výstupy nástrojov mxd miznú na konci skriptového nástroja pythonu?


Nasledujúci skript funguje dobre a vytvára správny výstup, ale potom, čo sa môj výstup pridá do ArcMap, čo je to, čo chcem, aby robil, potom zmizne, keď sa skript dokončí. Bol by som rád, keby moje údaje zostali na mape viditeľné aj po dokončení skriptu a nezmizli.

Tu je to, čo sa deje:

  1. Výstup vyrovnávacej pamäte „TestFC_buf“ sa pridá na mapu.
  2. "Skript dokončený." a "Dokončený skript TestAddToMap ..." sa vytlačí do dialógového okna skriptu.
  3. „TestFC_buf“ zmizne z mapy.
  4. „Úspešné vo štvrtok, 06. júna ...“ sa vytlačí do dialógového okna skriptu.

Tu je dialógové okno skriptu:

A tu je kód:

import arcpy, os arcpy.env.overwriteOutput = True arcpy.env.addOutputsToMap = True arcpy.env.workspace = r "C:  Users  kgrady  Desktop  Temp  AddOutputToMap_Test  Test.gdb" workspace = arcpy.env.workspace fc = "TestFC" výstup = os.path.join (pracovný priestor, "TestFC_buf") arcpy.Buffer_analysis (fc, výstup, "1 míľa") arcpy.AddMessage ("Skript dokončený.")

Nejaké nápady, prečo výstup z mapy mizne?


Môžete nastaviťaddOutputsToMapdoFalošné, a namiesto toho urobte z výstupu vyrovnávacej pamäte objekt Layer a pomocou funkcie AddLayer ho pridajte do aktuálneho MXD.

import arcpy, os arcpy.env.overwriteOutput = True arcpy.env.addOutputsToMap = False workspace = r "C:  Users  kgrady  Desktop  Temp  AddOutputToMap_Test  Test.gdb" arcpy.env.workspace = workspace mxd = arcpy. mapping.MapDocument ("CURRENT") df = arcpy.mapping.ListDataFrames (mxd) [0] fc = "TestFC" výstup = os.path.join (pracovný priestor, "TestFC_buf") arcpy.Buffer_analysis (fc, výstup, "1 Míľa ") vrstva = arcpy.mapping.Layer (výstup) arcpy.mapping.AddLayer (df, vrstva) arcpy.AddMessage (" Skript dokončený. ")

Pozri si video: Programovanie hier. Python. Lekcia 1