Skip To Content

Felder Berechnen (mehrere)

Zusammenfassung

Berechnet die Werte von Feldern für eine Feature-Class, einen Feature-Layer oder ein Raster.

Verwendung

  • Weitere Informationen über Python-Ausdrücke finden Sie unter Feld berechnen - Python-Beispiele.

    Weitere Informationen über Arcade-Ausdrücke finden Sie in der ArcGIS Arcade-Dokumentation.

    Weitere Informationen zu SQL-Ausdrücken finden Sie unter Berechnen von Feldwerten.

  • Bei Verwendung mit einem ausgewählten Feature-Satz, wie zum Beispiel den mit einer Abfrage in Feature-Layer erstellen oder Layer nach Attributen auswählen erstellten Features, werden nur die selektierten Datensätze aktualisiert.

  • Vorhandene Feldwerte werden überschrieben. Wenn Sie die Originalwerte erhalten möchten, sollten Sie eine Kopie der Eingabetabelle erstellen.

  • Bei Berechnungen mit Python müssen Feldnamen in Ausrufezeichen (!fieldname!) eingeschlossen werden.

    Bei Berechnungen mit Arcade müssen Feldnamen das Präfix $feature. ($feature.fieldname) erhalten.

  • Wenn Sie eine Zeichenfolge für ein Text- oder Zeichenfeld berechnen möchten, muss die Zeichenfolge im Dialogfeld in doppelte Anführungszeichen (z. B. "Zeichenfolge") gesetzt werden, in der Befehlszeile und in Skripten dagegen muss die Zeichenfolge zusätzlich in einfache Anführungszeichen eingeschlossen werden (z. B. '"Zeichenfolge"').

  • Wenn Sie einen numerischen Wert für ein Feld berechnen möchten, geben Sie im Parameter Ausdruck nur den numerischen Wert ein, Anführungszeichen sind nicht erforderlich.

  • Mit dem Code-Block-Parameter können komplexe Ausdrücke erstellt werden. Sie können den Codeblock direkt im Dialogfeld oder als fortlaufende Zeichenfolge in der Skripterstellung eingeben. Der Ausdruck und der Code-Block sind miteinander verbunden. Der Code-Block muss zurück auf den Ausdruck verweisen. Das Ergebnis des Code-Blocks muss an den Ausdruck übergeben werden.

    Der Parameter Code-Block wird nur für Python-Ausdrücke unterstützt.

  • Das Python-Modul math und die entsprechende Formatierung stehen für die Verwendung im Code-Block-Parameter zur Verfügung. Weitere Module können importiert werden. Das Modul math enthält neben zahlentheoretischen und Repräsentationsfunktionen auch Potenz- und Logarithmusfunktionen sowie trigonometrische Funktionen, Winkelkonvertierungsfunktionen, hyperbolische Funktionen und mathematische Konstanten. Weitere Informationen zum Modul math finden Sie in der Hilfe von Python.

  • Python-Ausdrücke können mit Eigenschaften aus dem Geometry-Objekt, darunter type, extent, centroid, firstPoint, lastPoint, area, length, isMultipart und partCount (z. B !shape.area!) erstellt werden.

  • Python-Ausdrücke können die Geometrieeigenschaften für area und length mit einer Flächeneinheit oder linearen Einheit verwenden, um den Wert in eine andere Maßeinheit (z. B. !shape.length@kilometers!) zu konvertieren. Wenn die Daten in einem geographischen Koordinatensystem gespeichert sind und eine lineare Einheit wie Kilometer oder Meilen angegeben wird, wird die Länge anhand eines geodätischen Algorithmus berechnet. Die Verwendung von Flächeneinheiten für geographische Daten führt zu fraglichen Ergebnissen, da die Dezimalgrade nicht rund um den Globus konsistent sind.

    • Schlüsselwörter für Flächenmaßeinheiten:
      • ACRES | ARES | HECTARES | SQUARECENTIMETERS | SQUAREDECIMETERS | SQUAREINCHES | SQUAREFEET | SQUAREKILOMETERS | SQUAREMETERS | SQUAREMILES | SQUAREMILLIMETERS | SQUAREYARDS | SQUAREMAPUNITS | UNKNOWN
    • Schlüsselwörter für lineare Maßeinheiten:
      • CENTIMETERS | DECIMALDEGREES | DECIMETERS | FEET | INCHES | KILOMETERS | METERS | MILES | MILLIMETERS | NAUTICALMILES | POINTS | UNKNOWN | YARDS
  • Python-Ausdrücke können verwendet werden, um die geodätische Fläche bzw. Länge eines Features mithilfe der Eigenschaften geodesicArea oder geodesicLength in Kombination mit Flächen- oder linearen Maßeinheiten (z. B. !shape.geodesicArea@hectares! oder !shape.geodesicLength@miles!) zu berechnen.

  • Bei der Berechnung von verbundenen Daten können die verbundenen Spalten nicht direkt berechnet werden. Sie können jedoch die Spalten der Quelltabelle direkt berechnen. Um die verbundenen Daten zu berechnen, müssen Sie der Karte zuerst die verbundenen Tabellen oder Layer hinzufügen. Sie können dann die Berechnungen an diesen Daten einzeln durchführen. Diese Änderungen zeigen sich in den verbundenen Spalten.

  • Python-Ausdrücke, bei denen versucht wird, Zeichenfolgenfelder, die NULL enthalten oder durch Null teilen, zu verbinden, geben NULL für diesen Feldwert zurück.

  • SQL-Ausdrücke wurden implementiert, um Berechnungen für Features-Services insbesondere im Hinblick auf die Performance zu unterstützen. Statt Features oder Zeilen einzeln nacheinander zu berechnen, wird eine einzelne Anforderung an den Feature-Service gesendet.

    Nur Feature-Services und Enterprise-Geodatabases unterstützen SQL-Ausdrücke. Verwenden Sie für andere Formate Python- oder Arcade-Ausdrücke.

    SQL-Ausdrücke sind für Feature-Services ungültig, die versionierte Daten verwenden.

Syntax

CalculateFields_management (in_table, expression_type, fields, {code_block})
ParameterErläuterungDatentyp
in_table

Die Tabelle mit den Feldern, die mit der neuen Berechnung aktualisiert werden.

Table View; Raster Layer; Mosaic Layer
expression_type

Geben Sie den zu verwendenden Ausdruckstyp an.

  • PYTHON3Python-Ausdruckstyp. Dies ist die Standardeinstellung.
  • ARCADEArcade-Ausdruckstyp.
  • SQLSQL-Ausdruck.

Weitere Informationen über Python-Ausdrücke finden Sie unter Feld berechnen - Beispiele.

Weitere Informationen über Arcade-Ausdrücke finden Sie in der ArcGIS Arcade-Dokumentation.

Weitere Informationen zu SQL-Ausdrücken finden Sie unter Berechnen von Feldwerten.

SQL-Ausdrücke wurden implementiert, um Berechnungen für Features-Services insbesondere im Hinblick auf die Performance zu unterstützen. Statt Features oder Zeilen einzeln nacheinander zu berechnen, wird eine einzelne Anforderung an den Feature-Service gesendet.

String
fields
[[Field Name, Expression],...]

Die zu berechnenden Felder und ihre Ausdrücke.

Value Table
code_block
(optional)

Ein Block mit Code für komplexe Ausdrücke.

Zum Zurückgeben von mehreren Werten kann keine Funktion verwendet werden.

String

Codebeispiel

CalculateFields – Beispiel 1 (Python-Fenster)

Das folgende Skript im Python-Fenster veranschaulicht, wie die Funktion CalculateFields im unmittelbaren Modus mit dem Ausdruckstyp Python verwendet wird.

import arcpy
arcpy.env.workspace = "C:/data/airport.gdb"
arcpy.CalculateFields_management("parcels", "PYTHON3", 
                                 [["xCentroid", "!SHAPE.CENTROID.X!"], ["yCentroid", "!SHAPE.CENTROID.Y!"]])
CalculateFields – Beispiel 2 (Python-Fenster)

Das folgende Skript im Python-Fenster veranschaulicht, wie die Funktion CalculateFields im unmittelbaren Modus mit dem Ausdruckstyp SQL verwendet wird.

import arcpy
arcpy.CalculateFields_management("<a feature service url>", "SQL", 
                                 [["ceiling_field", "CEILING(field1)"], ["floor_field", "FLOOR(field1)"]])
CalculateFields – Beispiel 3 (Python-Fenster)

Das folgende Skript im Python-Fenster veranschaulicht, wie die Funktion CalculateFields im unmittelbaren Modus mit dem Ausdruckstyp Arcade verwendet wird.

import arcpy
arcpy.env.workspace = "C:/data/airport.gdb"
arcpy.CalculateFields_management("parcels", "ARCADE", 
                                 [["max_value", "Max($feature.field1, $feature.field2)"], 
                                  ["min_value", "Min($feature.field1, $feature.field2)"]])

Lizenzinformationen

  • ArcGIS Desktop Basic: Ja
  • ArcGIS Desktop Standard: Ja
  • ArcGIS Desktop Advanced: Ja

Verwandte Themen