I have a script that does a series of calculations, producing temporary data along the way. However, at each step of the script, data is added to the TOC and then removed when I call the arcpy.Delete_management function on the data. 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 not sure if it matters, but the script is being called from a wxPython GUI launched inside of ArcGIS as a Python Add-In. The GUI contains a button with an event that triggers the above script.