中文

错误:ERROR 000539:运行表达式时出错:rcexec()

错误消息

当运行从 ModelBuilder 导出的包括栅格计算器函数的 Python 脚本时,代码将因为无法运行 rcexec() 表达式而运行失败。 将返回以下错误消息:

“错误:ERROR 000539:运行表达式时出错:rcexec()”

原因

此错误是由于栅格计算器没有以工具形式显示给 Python。 当前,栅格计算器仅在 ArcGIS 或 ModelBuilder 中显示为地理处理工具。 但是,可以通过许多不同的方法在 Python 中使用栅格计算器函数,如下例所示。

在将输出指定为 ArcInfo GRID 且为输出指定了 UNC 目录的情况下,运行栅格计算器时也会返回此错误。 例如,如果输出为 TIFF,工具将正确执行而不返回任何错误。

解决方案或解决方法

此示例说明 Python 使用 Spatial Analyst 数学工具集对栅格数据集执行数学函数的方法为:使用可以在 arcmap 进程外部运行的独立脚本。

  1. 打开 Python IDE。
  2. 使用数学工具集函数创建 Python 脚本。

    使用减函数的示例:
    代码:
    # 名称:Minus_Ex_02.py
    # 描述:逐个地从第一个输入栅格的值
    #              中减去第二个输入栅格的值
    # 要求:Spatial Analyst 扩展模块
    
    # 导入系统模块
    import arcpy
    from arcpy import env
    from arcpy.sa import *
    
    # 设施环境设置
    env.workspace = "C:/sapyexamples/data"
    
    # 设置局部变量
    inRaster1 = "degs"
    inRaster2 = "negs"
    
    # 检出 ArcGIS Spatial Analyst 扩展模块许可
    arcpy.CheckOutExtension("Spatial")
    
    #执行减函数以从 inRaster1 中减去 inRaster2
    outMinus = Minus(inRaster1, inRaster2)
    
    # 保存输出 
    outMinus.save("C:/sapyexamples/output/outminus.tif")
  3. 运行 Python 脚本。

相关信息