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.
Vorsicht:
Direkte Variablen vom Typ "Zeichenfolge" müssen in Ausdrücken in Anführungszeichen eingeschlossen werden ("%Zeichenfolgevariable%"). Für direkte Variablen mit numerischen Typen ("Double", "Long") sind keine Anführungszeichen erforderlich (%Double%).
Ausdrücke können nur in einem Standard-Python-Format erstellt werden. Andere Skriptsprachen werden nicht unterstützt.
Mit dem Werkzeug Wert berechnen können einfache mathematische Ausdrücke ausgewertet werden. Beispiel:
- 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. Beispiel:
- math.sqrt(25)
- math.cos(0.5)
Das math-Modul unterstützt außerdem Konstanten. Beispiel:
- math.pi
Das Modul random wird zum Erstellen zufälliger Zahlen unterstützt. Es folgen einige Beispiele für die Verwendung des Moduls random:
- Berechnen Sie einen zufälligen ganzzahligen Wert zwischen 0 und 10: random.randint(0, 10)
- Berechnung eines von einer Normalverteilung mit einem Mittelwert von 10 und einer Standardabweichung von 3 abgeleiteten Zufallswertes: random.normalvariate(10, 3)
Ältere Versionen:
arcgis.rand() wird ab ArcGIS Pro 2.0 nicht mehr unterstützt. Stattdessen sollten vergleichbare Funktionen unter Verwendung des random-Moduls von Python verwendet werden. Um das random-Modul erfolgreich zu verwenden, fügen Sie es als Import in den Parameter Code-Block ein.
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 Codeblock-Parameter verwendet werden. Der Codeblock-Parameter kann nicht alleine verwendet werden. Er muss in Verbindung mit dem Parameter Ausdruck 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 eine Variable im Parameter Ausdruck übergeben und im Codeblock die If-Else-Logik für direkte Variablen verwenden. Im Codeblock wird überprüft, ob die Variable Input Cell Size 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 "Codeblock" können Python-Module aufgerufen und Methoden wie "replace" kombiniert oder gestapelt werden. Im folgenden Beispiel wird das time-Modul in den Codeblock 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 Codeblock 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 akzeptiert, z. B. Plus, Greater Than und Less Than (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 Codeblocks einheitlich ist.
Vom Code-Block kann nicht auf Modellvariablen zugegriffen werden. Solche Variablen müssen vom Ausdruck an den Codeblock übergeben werden. Dies kann durch Erstellen einer Definition im Codeblock und Verweisen auf die Definition im Feld Ausdruck erzielt werden.
Hinweis:
Wenn Sie Python-Skripte erstellen, verwenden Sie statt des Werkzeugs Wert berechnen die Python-Standardanweisungen.
Syntax
arcpy.mb.CalculateValue(expression, {code_block}, {data_type})
Parameter | Erklärung | Datentyp |
expression | Der auszuwertende Python-Ausdruck. | SQL Expression |
code_block (optional) | Ein Python-Code-Block. Der Ausdruck im Parameter Ausdruck kann auf Code im Code-Block verweisen. | String |
data_type (optional) | Gibt den Datentyp der Ausgabe an, 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 | Der berechnete Wert. | Datenelement; Layer; Tabellensicht |
Umgebungen
Lizenzinformationen
- Basic: Ja
- Standard: Ja
- Advanced: Ja