Error: ERROR 000539: Error running expression: rcexec()
When running a Python script exported from ModelBuilder that includes a Raster Calculator function, the code fails because it is not able to run the rcexec() expression. The following error message is returned:
"ERROR 000539: Error running expression: rcexec()"
This error is due to Raster Calculator not being exposed to Python as a tool. Currently, Raster Calculator is only exposed as a geoprocessing tool in ArcGIS or in ModelBuilder. However, there are a number of different ways to use Raster Calculator functions in Python, as shown in the example below.
This error has also been returned running the Raster Calculator, when the output is specified as an ArcInfo GRID, and a UNC path is specified for the output. The tool executes successfully, without any errors, if the output is a TIFF, for example.
Solution or Workaround
This example shows how Python can use the Spatial Analyst Math toolset to perform mathematic functions on raster datasets, in a stand-alone script that can be run outside of the arcmap process.
- Open a Python IDE.
- Create a Python script using the Math toolset function.
Sample using the Minus function:
Code: # Name: Minus_Ex_02.py # Description: Subtracts the value of the second input raster from the # value of the first input raster on a cell-by-cell basis # Requirements: Spatial Analyst Extension # Import system modules import arcpy from arcpy import env from arcpy.sa import * # Set environment settings env.workspace = "C:/sapyexamples/data" # Set local variables inRaster1 = "degs" inRaster2 = "negs" # Check out the ArcGIS Spatial Analyst extension license arcpy.CheckOutExtension("Spatial") # Execute Minus to subtract inRaster2 from inRaster1 outMinus = Minus(inRaster1, inRaster2) # Save the output outMinus.save("C:/sapyexamples/output/outminus.tif")
- Run the Python script.
- An overview of the Math toolset
- Raster Calculator (Spatial Analyst)
- How To: Call a ModelBuilder model in a Python script