Hello all,I've built a series of scripts that run great in Pythonwin, but I've recently ran into an error after bringing them in as ArcGIS tools. All the scripts/tools work fine the first time when I run them, but for some reason I am getting an attribute error when I either run the script again or run the next script in the analysis sequence. All my scripts have the same structure so I suspect once I solve this issue for one I'll solve it for them all. The exact error reads: Executing: 4ReclassifySnowto12 J:\MODIS_Test\SnowCloudFill\HEB_SNOW_GEO_RUN6_NibbleFill J:\Scratch J:\MODIS_Test\SnowCloudFill\HEB_SNOW_GEO_RUN7_ReclassSnow1 Start Time: Fri Apr 01 19:18:54 2011 Running script 4ReclassifySnowto12... <type 'exceptions.AttributeError'>: Object: Error in parsing arguments for AddMessage Failed to execute (4ReclassifySnowto12). End Time: Fri Apr 01 19:18:54 2011 (Elapsed Time: 0.00 seconds) If I click cancel and try running the script again it works fine. It just seems to fail every second time I try to run the script, but I can't figure out what Argument is not parsing correctly. Any help would be great. Attached is a sample script code:# Con_sample.py
# Description: Performs a conditional if/else evaluation on each cell of an input raster.
# Requirements: None
# Author: ESRI
# Date: 12/01/03
# Import system modules
import sys, string, os, arcgisscripting,time,datetime
# Create the Geoprocessor object
gp = arcgisscripting.create(9.3)
# Load required toolboxes...
gp.AddToolbox("C:/Program Files (x86)/ArcGIS/ArcToolbox/Toolboxes/Spatial Analyst Tools.tbx")
##gp.AddToolbox("C:/Program Files/ArcGIS/ArcToolbox/Toolboxes/Spatial Analyst Tools.tbx")
# Check out Spatial Analyst extension license
gp.CheckOutExtension("spatial")
print " got extensions"
gp.OverWriteOutput = 1
start = time.clock()
print "Time starting"
gp.AddMessage ("Time Starting")
# workspace containing raw MODIS rasters
##gp.workspace = r"J:\GEOG683\SnowCloudFill\HEB_SNOW_GEO_RUN4"
gp.workspace = sys.argv[1]
print "Workspace with Original rasters is = " + gp.workspace
gp.AddMessage("Workspace with Original rasters is = " + gp.workspace)
# Set location of Scratch Directory
gp.scratchworkspace = r"J:\Scratch"
gp.scratchworkspace = sys.argv[2]
print "Scratch Workspace = " + gp.scratchworkspace
gp.AddMessage("Scratch Workspace = " + gp.scratchworkspace)
##outputFolder = r"J:\GEOG683\SnowCloudFill\HEB_SNOW_GEO_RUN6_NibbleFill"
outputFolder = sys.argv[3]
print "Output Directory for Nibble Filled Raster will be" + outputFolder
gp.AddMessage("Output Directory for Nibble Filled Raster will be " + outputFolder)
##RasterDirectory = r"J:\GEOG683\SnowCloudFill\HEB_SNOW_GEO_RUN5_ReclassNodata"
RasterDirectory = sys.argv[4]
print "Directory with Raster Mask for Nibble Filled Raster will be" + RasterDirectory
gp.AddMessage("Directory with Raster Mask for Nibble Filled Raster will be" + RasterDirectory)
##OutputDirACC4 = r"J:\GEOG683\SnowCloudFill\HEB_SNOW_GEO_ACC_4"
OutputDirACC4 = sys.argv[5]
print "Output Directory for Assumption Raster 4 will be" + OutputDirACC4
gp.AddMessage("Output Directory for Assumption Raster 4 will be = " + OutputDirACC4)
try:
# Start raster list of all rasters in the original raster workspace
rsList = gp.ListRasters("*")
# begin looping through rasters
##rs = rsList.Next()
for rs in rsList:
# Creat the name for the output raster including output directory location
##InRaster = rs
InRaster = gp.workspace + "\\" + rs
print "Input Raster = " + InRaster
#outputFolder = "J:/GEOG683/SnowCloudFill/HEB_SNOW_GEO_RUN6_FocalFill"
##outputFolder = r"J:\GEOG683\SnowCloudFill\HEB_SNOW_GEO_RUN6_NibbleFill"
OutRaster = outputFolder + "\Nib" + rs
##RasterDirectory = r"J:\GEOG683\SnowCloudFill\HEB_SNOW_GEO_RUN5_ReclassNodata"
InRasterMask = RasterDirectory + "\\RclND_" + rs
print "InRaster Mask = " + InRasterMask
print "Output Raster = "+ OutRaster
print " ......................."
# Process: FocalStatistics
#InExpression = "con("+ gp.workspace + "\\" + InRaster + " == 50, focalmajority(" + gp.workspace + "\\" + rs + ", Rectangle, 3,3),"+ gp.workspace + "\\" + InRaster + ")"
#print InExpression
##gp.Nibble_sa(Fill50AfterOnly_Montana_Canada_Maximum_Snow_Extent_A2000D065_tif, tests_tif, Nibble_Fill51, "DATA_ONLY")
gp.Nibble_sa(InRaster, InRasterMask, OutRaster, "DATA_ONLY")
print "Nibble Fill Succuess"
##rs = rsList.Next()
AccuracyOutput4 = OutputDirACC4 + "\\" + "Acc4" + rs
print "ACC4 " + AccuracyOutput4
gp.AddMessage ("ACC4 " + AccuracyOutput4)
print "Acc input " + InRaster
gp.AddMessage("Acc input " + InRaster)
print "Acc output " + OutRaster
gp.AddMessage("Acc output " + OutRaster)
Accuracyexpression4 = "con("+ InRaster +" == " + OutRaster + ",0, 4 )"
print "Accuracy4 expression = "+ Accuracyexpression4
gp.AddMessage ("Accuracy4 expression = "+ Accuracyexpression4)
gp.SingleOutputMapAlgebra_sa(Accuracyexpression4, AccuracyOutput4)
print "Accuracy 4 is completed"
gp.AddMessage("Accuracy 4 is completed")
# Error checker
except:
print " Does not work"
gp.getmessage()
# Stop Time Clock
end = time.clock()
print "Processing time:", (end-start)/60, "minutes"
gp.AddMessage("Processing time:", (end-start)/60, "minutes")
Thanks in Advance