Deutsch

Error: ERROR 000539: Error running expression: rcexec()

Fehlermeldung

Bei der Ausführung eines aus ModelBuilder exportierten Python-Skripts mit der Funktion "Raster berechnen" schlägt der Code fehl, da der Ausdruck "rcexec()" nicht ausgeführt werden kann. Die folgende Fehlermeldung wird zurückgegeben:

Error: ERROR 000539: Error running expression: rcexec()

Ursache

Dieser Fehler ist darauf zurückzuführen, dass "Raster berechnen" nicht als Werkzeug für Python verfügbar gemacht wird. Aktuell wird "Raster berechnen" nur in ArcGIS oder ModelBuilder als Geoverarbeitungswerkzeug verfügbar gemacht. Es gibt jedoch verschiedene Möglichkeiten, Funktionen von "Raster berechnen" in Python zu verwenden, wie im folgenden Beispiel dargestellt.

Dieser Fehler wird auch bei Ausführung von "Raster berechnen" zurückgegeben, wenn die Ausgabe als ArcInfo GRID angegeben ist und für die Ausgabe ein UNC-Pfad festgelegt wurde. Wenn als Ausgabe z. B. TIFF angegeben ist, wird das Werkzeug erfolgreich ohne Fehler ausgeführt.

Lösung oder Problemumgehung

Dieses Beispiel zeigt, wie in Python das Spatial Analyst-Toolset "Mathematik" zur Ausführung mathematischer Funktionen in Raster-Datasets in einem eigenständigen Skript verwendet werden kann, das sich außerhalb des ArcMap-Prozesses ausführen lässt.

  1. Öffnen Sie eine Python-IDE.
  2. Erstellen Sie ein Python-Skript mit der Toolset-Funktion "Mathematik".

    Beispiel, in dem die Funktion "Minus" verwendet wird:
    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")
  3. Führen Sie das Python-Skript aus.

Referenzinformationen