Español

Error: ERROR 000539: Error al ejecutar la expresión: rcexec()

Mensaje de error

Al ejecutar un script de Python exportado desde ModelBuilder que contiene una función de Calculadora ráster, el código falla porque no es capaz de ejecutar la expresión rcexec(). Aparece el siguiente mensaje de error:

"ERROR 000539: Error al ejecutar la expresión: rcexec()"

Causa

Este error se debe a que la Calculadora ráster no está expuesta a Python como herramienta. En la actualidad, la Calculadora ráster solo se expone como una herramienta de geoprocesamiento en ArcGIS o en ModelBuilder. Sin embargo, existen varias maneras diferentes de usar las funciones de Calculadora ráster en Python, como se muestra en el ejemplo que aparece a continuación.

Este error también se ha devuelto al ejecutar la Calculadora ráster, cuando la salida se especifica como una CUADRÍCULA de ArcInfo, y se especifica una ruta UNC para la salida. La herramienta se ejecuta correctamente, sin ningún error, si la salida es un TIFF, por ejemplo.

Solución o solución alternativa

Este ejemplo muestra cómo Python puede usar el conjunto de herramientas Matemática de Spatial Analyst para realizar funciones matemáticas en datasets ráster, en un script independiente que puede ejecutarse fuera del proceso de ArcMap.

  1. Abra un IDE de Python.
  2. Cree un script de Python con la función de conjunto de herramientas Matemática.

    Ejemplo con la función Menos:
    Código:
    # Nombre: Minus_Ex_02.py
    # Descripción: resta el valor del segundo ráster de entrada al
    #              valor del primer ráster de entrada celda por celda
    # Requisitos: extensión Spatial Analyst
    
    # Importar módulos del sistema
    import arcpy
    from arcpy import env
    from arcpy.sa import *
    
    # Definir la configuración del entorno
    env.workspace = "C:/sapyexamples/data"
    
    # Definir variables locales
    inRaster1 = "degs"
    inRaster2 = "negs"
    
    # Realizar un check-out de la licencia de extensión de ArcGIS Spatial Analyst
    arcpy.CheckOutExtension("Spatial")
    
    # Ejecutar Minus para restar inRaster2 a inRaster1
    outMinus = Minus(inRaster1, inRaster2)
    
    # Guardar la salida 
    outMinus.save("C:/sapyexamples/output/outminus.tif")
  3. Ejecute el script de Python.

Información relacionada