AnsweredAssumed Answered

Stop temporary layers from showing up in TOC during gp script [Python Add-In]

Question asked by markieta on Jun 27, 2012
Latest reply on Nov 17, 2014 by rewarner_Ball
I have a script that does a series of calculations, producing temporary data along the way. Temporary data is added to the TOC once calculated in the script and then removed when I call the arcpy.Delete_management function on the data towards the end. Before my script reaches the delete function, the temporary data that I've calculated is shown in the TOC. Is there a way to explicitly specify these datasets as temporary, or freeze the TOC during script processing. Example below:

class StationTypology:      def __init__(self, areaName, bufferDistance):         self.areaName = areaName         self.bufferDistance = bufferDistance      def BusinessDensity(self):         try:             # Make a temporary table in memory based on query of feature class             query = ("""\"AreaName\" = '""" + self.areaName + """' AND                      \"BufferDistance\" = """ + str(self.bufferDistance) + """ AND                      \"UseType\" = 'Business'""")              arcpy.MakeTableView_management("LANDUSE",                                            "business",                                            query)              # Calculate the sum of floor space, from above table             arcpy.Statistics_analysis("business",                                       "in_memory\\businessStatistics",                                       [["FloorArea", "SUM"]])              # Use SearchCursor to access table records and store rows in a variable             rows = arcpy.SearchCursor("in_memory\\businessStatistics",                                       "",                                       "",                                       "SUM_FloorArea",                                       "")              # Table has one row; access with iteration, grab value of SUM_FloorArea             for row in rows:                 businessDensity = row.SUM_FloorArea              del rows  # Housekeeping             arcpy.Delete_management("business")  # Housekeeping             arcpy.Delete_management("in_memory\\businessStatistics")  # Housekeeping              return businessDensity          except:             try:                 del rows  # Housekeeping                 arcpy.Delete_management("business")  # Housekeeping                 arcpy.Delete_management("in_memory\\businessStatistics")  # Housekeeping             except:                 pass


I am running this script from a Python Add-In (ArcGIS 10.1) wxPython GUI. A user will press a button that triggers an event which starts a series of geoprocessing calculations as shown in the example.

Just a note: I have also posted this question to GIS.stackexchange.com

Outcomes