I have a weird thing happening with my script. When I copy/paste it into the python cmd line within ArcMap, I get error messages. However, if I run the first part, then copy in the very last line by and run it by itself everything goes fine. Here's my code:
import os import arcpy from arcpy import env from arcpy.sa import * arcpy.env.workspace = r'H:\Arc' #dem = r'C:\Users\Lucy\Documents\GISthings\DCEW_VegStatistics\miscrasters\bare1m_fl_int' dem = r'H:\Arc\dem_coarseres' # create and store aspect outAspect = Aspect(dem) '''set up vegetation rasters''' pftVeg = r'H:\Arc\veg_4classes' # raster of n and s aspects veg_n = Con((outAspect < 45) | (outAspect > 315), pftVeg) veg_s = Con((outAspect < 225) & (outAspect > 135), pftVeg) ''' buffer around weather stations ''' featureToBuffer = r'H:\Arc\DCEW_WS.shp' #outBuffer = r'C:\Users\Lucy\Documents\GISthings\DCEW_VegStatistics\bufferedWSveg.gdb\buff50m' distanceField = "1000 meters" # creates shapefile of buffers # if you get an error here, try restarting computer to release schema lock arcpy.Buffer_analysis(featureToBuffer, 'outBuffer', distanceField) # Execute PolygonToRaster of buffers valField = 'Field1' assignmentType = "MAXIMUM_AREA" priorityField = 'Field4' cellSize = 0.00001 # 0.000001 arcpy.PolygonToRaster_conversion('outBuffer', valField, 'outRaster', assignmentType, priorityField, cellSize) #outRaster = Lookup(Raster(outBuffer), 'Field1') #superfluous? i = 4 # Process: Raster Calculator arcpy.gp.RasterCalculator_sa("Con(\"outRaster\" == i,\"veg_s\")", 'temp_s')
The Raster calculator line is where everything gets fuzzy. My error message is this:
Runtime error Traceback (most recent call last): File "", line 39, in File "c:\program files (x86)\arcgis\desktop10.3\arcpy\arcpy\geoprocessing_base.py", line 504, in return lambda *args: val(*gp_fixargs(args, True)) ExecuteError: ERROR 000539: Error running expression: rcexec() Traceback (most recent call last): File "", line 1, in File "", line 5, in rcexec File "c:\program files (x86)\arcgis\desktop10.3\arcpy\arcpy\sa\Functions.py", line 255, in Con where_clause) File "c:\program files (x86)\arcgis\desktop10.3\arcpy\arcpy\sa\Utils.py", line 53, in swapper result = wrapper(*args, **kwargs) File "c:\program files (x86)\arcgis\desktop10.3\arcpy\arcpy\sa\Functions.py", line 239, in Wrapper ["IfThen", in_conditional_raster, in_true_raster_or_constant]) RuntimeError: ERROR 000732: Input Raster: Dataset veg_s does not exist or is not supported Failed to execute (RasterCalculator).
Does anyone know what could possibly be going on?
Edit in response to @FelixIP:
I'm using that syntax for my raster calculator because that's what model builder spit out for me. I'm still new to python, so I've been using it for training wheels. I tried your code with
expr on one line and
Rastercalculator on the other but I got the same error message. When I ran them by themselves everything worked perfectly. Does that make any sense? Ideally I'd like to put this within a for loop, so it would be good to not have to run it in two separate sections if possible.