Zusammenfassung
Gibt einen auf einem angegebenen Python-Ausdruck basierenden Wert zurück.
Verwendung
Dieses Werkzeug ist nur für die Verwendung in ModelBuilder, nicht in Python-Skripten vorgesehen.
Der Parameter Datentyp wird in ModelBuilder verwendet, um die Ausgabe des Werkzeugs Wert berechnen mit anderen Werkzeugen verketten zu können. Wenn Sie das Werkzeug Wert berechnen z. B. zum Berechnen einer Entfernung als Eingabe für den Parameter Pufferabstand des Werkzeugs Puffer verwenden, können Sie für den Parameter Datentyp "Lineare Einheit" angeben.
In ModelBuilder erstellte Variablen können in diesem Werkzeug verwendet werden, Variablen für den Parameter "Ausdruck" können jedoch nicht mit dem Werkzeug Wert berechnen verbunden werden. Wenn Sie diese im Ausdruck verwenden möchten, setzen Sie den Variablennamen in Prozentzeichen (%). Wenn Sie beispielsweise die Variable Eingabe durch 100 dividieren möchten, muss der Ausdruck %Eingabe%/100 lauten.
Hinweis: Wenn im oben aufgeführten Ausdruck Eingabe = 123 ist, gibt der Ausdruck 1 zurück. Um Dezimalstellen zu erhalten, fügen Sie den Werten im Ausdruck Dezimalstellen hinzu. Beispiel: %Eingabe%/100,00 gibt 1,23 zurück. Die Abbildung unten veranschaulicht ein weiteres Beispiel für die Verwendung von Eigenschaften im Ausdruck.
Ausdrücke können nur in Python erstellt werden; andere Skriptsprachen werden nicht unterstützt.
Mit dem Werkzeug Wert berechnen können einfache mathematische Ausdrücke ausgewertet werden. Nachfolgend finden Sie einige Beispiele:
- 3+5
- 9*8
- 4+(9/3)
Mit dem Werkzeug Wert berechnen kann das math-Modul von Python zur Durchführung komplexer mathematischer Operationen eingesetzt werden. Zum Aufrufen des mathematischen Moduls muss der gewünschten Funktion math vorangestellt werden. Nachfolgend finden Sie einige Beispiele:
- math.sqrt(25)
- math.cos(0.5)
Das math-Modul unterstützt außerdem Konstanten. Beispiel:
- math.pi
Die Funktion arcgis.rand() wird unterstützt. Die Funktion arcgis.rand() wurde für ArcGIS-Werkzeuge erstellt und darf nicht mit der Python-Funktion Rand() verwechselt werden. Es folgen einige Beispiele für die Verwendung von arcgis.rand():
- Berechnung eines Zufallswertes, der von einer Ganzzahl-Gleichverteilung zwischen 0 und 10 abgeleitet wurde: arcgis.rand("Ganzzahl 0 10")
- Berechnung eines von einer Normalverteilung mit einem Mittelwert von 10 und einer Standardabweichung von 3 abgeleiteten Zufallswertes: arcgis.rand("Normal 10 3")
Am Allgemeinen geben Sie die Ausdrücke im Parameter Ausdruck ein. Für kompliziertere Ausdrücke, wie zum Beispiel mehrzeilige Berechnungen oder logische Operationen ("if", "then"), muss der Code-Block-Parameter verwendet werden. Der Code-Block-Parameter kann nicht alleine verwendet werden. Er muss in Verbindung mit dem Ausdruck-Parameter eingesetzt werden.
Der Ausdruck kann auf die im Code-Block-Parameter definierten Variablen verweisen.
Funktionen können im Code-Block-Parameter definiert und im Ausdruck aufgerufen werden. Im folgenden Beispiel gibt die Funktion auf der Grundlage eines Zufallseingabewertes eine Windrichtungszeichenfolge zurück. In Python werden Funktionen mit dem Schlüsselwort def definiert, auf das der Name der Funktion und die Eingabeparameter der Funktion folgen. In diesem Fall lautet die Funktion getWind und sie umfasst einen einzelnen Parameter mit dem Namen wind. Werte werden von einer Funktion mit dem Schlüsselwort return zurückgegeben.
Sie können die Variable im Parameter Ausdruck übergeben und im Code-Block die If-Else-Logik für direkte Variablen verwenden. Im Code-Block wird überprüft, ob die Variable Eingabe-Zellengröße leer ist, und dann wird je nach Bedingung ein Wert zurückgegeben.
Python-Methoden können direkt im Parameter Ausdruck des Werkzeugs verwendet werden. Wenn beispielsweise ein Eingabewert mit Dezimalstellen (in diesem Fall der Feldwert der Eingabetabelle) vorliegt und Sie den Wert über die direkte Variablenersetzung im ausgegebenen Namen eines anderen Werkzeugs verwenden möchten, können Sie den Dezimalwert im Ausdruck des Werkzeugs Wert berechnen mit der replace-Methode von Python ersetzen.
Im Parameter "Code-Block" können Python-Module aufgerufen und Methoden wie replace kombiniert oder gestapelt werden. Im folgenden Beispiel wird das time-Modul in den Code-Block importiert, der wiederum das aktuelle Datum und die Uhrzeit zurückgibt, z. B. Fri Mar 19 2010 09:42:39. Dieser zurückgegebene Wert wird im Werkzeug Ordner erstellen als Name für den Ordner verwendet. Da der Name des Ordners keine Leerzeichen oder Interpunktionszeichen enthalten darf, wird die Methode replace von Python für jedes zu ersetzende Element gestapelt. Der Name des Ordners in diesem Beispiel lautet daher FriMar192010094239.
Wenn Sie im Modell einen Wert berechnen und den berechneten Wert in Werkzeugen wie Puffer verwenden möchten, die sowohl einen Wert für den Pufferabstand als auch eine lineare Einheit erfordern, müssen Sie wie folgt vorgehen:
- Geben Sie die lineare Einheit im Code-Block zusammen mit dem Distanzwert zurück.
- Ändern Sie den Datentyp der zurückgegebenen Werte wie unten dargestellt.
- Legen Sie den Parameter für den Datentyp auf "Lineare Einheit" fest, sodass das Ergebnis des Ausdrucks in eine lineare Einheit konvertiert wird.
Sie können die Ausgabe des Werkzeugs Wert berechnen direkt in einem beliebigen Werkzeug von Spatial Analyst verwenden, das ein Raster oder einen konstanten Wert wie Plus, Greater Than und Less Than akzeptiert (diese Werkzeuge befinden sich in der Toolbox Spatial Analyst / Toolset "Mathematik"). Um die Ausgabe von Wert berechnen zu verwenden, ändern Sie den Ausgabedatentyp in "Formuliertes Raster". Dieses Format des Ausgabedatentyps ist eine Raster-Oberfläche, deren Zellenwerte durch eine Formel oder eine Konstante angegeben werden.
In Python bilden richtige Einrückungen einen wichtigen Teil der Syntax. Die Einzugsebene (zwei oder vier Leerstellen) spielt keine Rolle, solange sie innerhalb des Code-Blocks einheitlich ist.
Vom Code-Block kann nicht auf Modellvariablen zugegriffen werden. Solche Variablen müssen vom Ausdruck an den Code-Block übergeben werden. Dies kann durch Erstellen einer Definition im Code-Block-Parameter und Verweisen auf die Definition im Ausdruck-Parameter erzielt werden.
Modellvariablen vom Typ Liste sollten nicht im Ausdruck-Parameter verwendet werden. Aufgrund der Funktionsweise von Variablen in ModelBuilder wird Wert berechnen einmal ausgeführt, indem der erste Wert in der Listenvariable verwendet wird; andere Werte in der Listenvariable werden nicht an Wert berechnen übergeben.
Syntax
arcpy.mb.CalculateValue(expression, {code_block}, {data_type})
Parameter | Erklärung | Datentyp |
expression | Der auszuwertende Python-Ausdruck. | SQL Expression |
code_block (optional) | Zusätzlicher Python-Code. Der Ausdruck im Parameter Ausdruck kann auf Code im Code-Block verweisen. | String |
data_type (optional) | Der Datentyp der Ausgabe, die vom Python-Ausdruck zurückgegeben wird. Verwenden Sie diesen Parameter in ModelBuilder, um das Werkzeug Wert berechnen mit anderen Werkzeugen verketten zu können. | String |
Abgeleitete Ausgabe
Name | Erklärung | Datentyp |
value |
Umgebungen
Dieses Werkzeug verwendet keine Geoverarbeitungsumgebungen.
Lizenzinformationen
- Basic: Ja
- Standard: Ja
- Advanced: Ja