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.