ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • Hilfe
  • Sign Out
ArcGIS Desktop

ArcGIS Online

Die Mapping-Plattform für Ihre Organisation

ArcGIS Desktop

Ein vollständiges professionelles GIS

ArcGIS Enterprise

GIS in Ihrem Unternehmen

ArcGIS Developers

Werkzeuge zum Erstellen standortbezogener Apps

ArcGIS Solutions

Kostenlose Karten- und App-Vorlagen für Ihre Branche

ArcGIS Marketplace

Rufen Sie Apps und Daten für Ihre Organisation ab.

  • Dokumentation
  • Support
Esri
  • Anmelden
user
  • Eigenes Profil
  • Abmelden

ArcMap

  • Startseite
  • Erste Schritte
  • Karte
  • Analysieren
  • Verwalten von Daten
  • Werkzeuge
  • Erweiterungen

Verwenden des Werkzeugs "Feld berechnen"

  • Tipps und Empfehlungen für das Arbeiten mit dem Werkzeug "Feld berechnen"
  • Codeblock-Beispiele, in denen das Werkzeug "Feld berechnen" verwendet wird

Das Werkzeug "Feld berechnen" befindet sich in der Toolbox Data Management im Toolset "Felder". Dabei handelt es sich um dasselbe Werkzeug, das geöffnet wird, wenn Sie im Kontextmenü des Feldes einer Attributtabelle auf den Befehl Feldberechnung klicken. Bei der Durchführung von Feldberechnungen spielt es eine wichtige Rolle, welcher Datentyp verwendet wird und in welchem Kontext der Datentyp in Zukunft verwendet wird. Die Syntax, die in einem Berechnungsausdruck verwendet werden muss, variiert abhängig von der Datenquelle und der Skriptsprache.

Im folgenden Abschnitt werden wichtige Tipps und Empfehlungen für das Arbeiten mit dem Werkzeug "Feld berechnen" beschrieben.

Tipps und Empfehlungen für das Arbeiten mit dem Werkzeug "Feld berechnen"

Hiermit werden die Werte eines Feldes für eine Feature-Class, einen Feature-Layer oder ein Raster berechnet.

Ausdrücke können in VBScript oder in einem Standard-Python-Format erstellt werden. Der Formatierungs-Style der Zeichenfolge für den Ausdruck sollte dem Umgebungstyp entsprechen.

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.

!shape.area@acres!
  • 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

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.

Sie können die Berechnung jeweils nur für ein Feld durchführen.

Felder werden für VBScript stets in Klammern [ ] eingeschlossen.

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

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"').

Sie können mit diesem Werkzeug auch Zeichenfelder aktualisieren. Ausdrücke mit einer Zeichenfolge sollten in einfache Anführungszeichen gesetzt werden, z. B. [CHARITEM] = 'NEW STRING'. Wenn in der Zeichenfolge jedoch bereits einfache Anführungszeichen enthalten sind, setzen Sie die Zeichenfolge in doppelte Anführungszeichen, z. B. [CHARITEM] = "TYPE'A'".

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.

Die Funktion "arcgis.rand()" wird vom Werkzeug "Feld berechnen" unterstützt. Der Ausdruckstyp muss dabei "Python" sein. Die Funktion "arcgis.rand()" wurde für ArcGIS-Werkzeuge erstellt und darf nicht mit der Funktion "Python Rand()" verwechselt werden.

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.

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.

Gespeicherte VB .cal-Dateien aus früheren Versionen von ArcGIS können möglicherweise verwendet werden oder erfordern minimale Änderungen. Wenn Sie über VBA-Code aus früheren Versionen verfügen, worin ArcObjects verwendet wird, müssen Sie die Berechnungen ändern.

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.

Wenn das Werkzeug "Feld berechnen" mit ArcGIS Engine Runtime oder ArcGIS Server, muss PYTHON als Ausdruckstyp verwendet werden. Verwenden Sie nur Python als Ausdruckstyp, wenn das Werkzeug in ein Modell integriert wird, das mit ArcGIS Server veröffentlicht wird.

Codeblock-Beispiele, in denen das Werkzeug "Feld berechnen" verwendet wird

CalculateField – Beispiel 2 (eigenständiges Skript)

Weisen Sie Schwerpunktwerte mithilfe von CalculateField neuen Feldern zu.

# Name: CalculateField_centroids.py
# Import system modules
import arcpy
# Set environment settings
arcpy.env.workspace = "C:/data/airport.gdb"
 
# Set local variables
inFeatures = "parcels"
fieldName1 = "xCentroid"
fieldName2 = "yCentroid"
fieldPrecision = 18
fieldScale = 11
 
# Add fields
arcpy.AddField_management(inFeatures, fieldName1, "DOUBLE", 
                          fieldPrecision, fieldScale)
arcpy.AddField_management(inFeatures, fieldName2, "DOUBLE", 
                          fieldPrecision, fieldScale)
 
# Calculate centroid
arcpy.CalculateField_management(inFeatures, fieldName1, 
                                "!SHAPE.CENTROID.X!",
                                "PYTHON_9.3")
arcpy.CalculateField_management(inFeatures, fieldName2, 
                                "!SHAPE.CENTROID.Y!",
                                "PYTHON_9.3")

CalculateField – Beispiel 3 (eigenständiges Skript)

Verwenden Sie CalculateField mit einem Code-Block, um auf Bereichen basierende Werte zu berechnen.

# Name: CalculateField_ranges.py
# Import system modules
import arcpy
 
# Set environment settings
arcpy.env.workspace = "C:/data/airport.gdb"
 
# Set local variables
inTable = "parcels"
fieldName = "areaclass"
expression = "getClass(float(!SHAPE.area!))"
codeblock = """
def getClass(area):
    if area <= 1000:
        return 1
    if area > 1000 and area <= 10000:
        return 2
    else:
        return 3"""
 
# Execute AddField
arcpy.AddField_management(inTable, fieldName, "SHORT")
 
# Execute CalculateField 
arcpy.CalculateField_management(inTable, fieldName, expression, "PYTHON_9.3", 
                                codeblock)

CalculateField – Beispiel 4 (eigenständiges Skript)

Weisen Sie Zufallswerte mithilfe von CalculateField zu einem neuen Feld zu.

# Name: CalculateField_Random.py
# Import system modules
import arcpy
import random
 
# Set environment settings
arcpy.env.workspace = "C:/data/airport.gdb"
  
# Set local variables
inFeatures = "parcels"
fieldName = "RndValue"
expression = "random.randint(0, 10)"
code_block = "import random"
 
# Execute AddField
arcpy.AddField_management(inFeatures, fieldName, "LONG")
 
# Execute CalculateField 
arcpy.CalculateField_management(inFeatures, fieldName, expression, "PYTHON_9.3", 
                                code_block)

Verwandte Themen

  • Grundlagen zu Feldberechnungen
  • Durchführen von Feldberechnungen
  • Berechnen von Fläche, Länge und anderen geometrischen Eigenschaften
  • Ändern der Groß- und Kleinschreibung von Textfeldwerten
  • Feld berechnen – Beispiele

ArcGIS Desktop

  • Startseite
  • Dokumentation
  • Support

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

Über Esri

  • Über uns
  • Karriere
  • Esri Blog
  • User Conference
  • Developer Summit
Esri
Wir sind an Ihrer Meinung interessiert.
Copyright © 2021 Esri. | Datenschutz | Rechtliches