ArcGIS for Desktop

  • Dokumentation
  • Preise
  • Support

  • My Profile
  • Hilfe
  • Sign Out
ArcGIS for Desktop

ArcGIS Online

Die Mapping-Plattform für Ihre Organisation

ArcGIS for Desktop

Ein vollständiges professionelles GIS

ArcGIS for Server

GIS in Ihrem Unternehmen

ArcGIS for 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
  • Preise
  • Support
Esri
  • Anmelden
user
  • Eigenes Profil
  • Abmelden

Hilfe

  • Startseite
  • Erste Schritte
  • Karte
  • Analysieren
  • Verwalten von Daten
  • Werkzeuge
  • Mehr...

Feld berechnen

  • Zusammenfassung
  • Verwendung
  • Syntax
  • Codebeispiel
  • Umgebung
  • Lizenzierungsinformationen

Zusammenfassung

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

Beispiele für die Verwendung von "Feld berechnen"

Verwendung

  • Python-Ausdrücke können mit Eigenschaften aus dem Geometrieobjekt, 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 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.

  • Beachten Sie, dass dieses Werkzeug die Umgebungseinstellung Ausgabeausdehnung berücksichtigt. Nur für die Features, die sich in der Ausdehnung befinden, werden die Feldwerte berechnet. Die Umgebungseinstellung hat keine Auswirkung auf nicht räumliche Daten wie z. B. Tabellen.

  • 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 VB müssen Feldnamen in eckige Klammern ([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 arcgis.rand()-Funktion wird bei Angabe eines Python-Ausdrucks für dieses Werkzeug unterstützt. Die Funktion arcgis.rand() wurde für ArcGIS-Werkzeuge erstellt und darf nicht mit dem Python-Modul random verwechselt werden. Die Syntax für die verfügbaren Verteilungen für die Funktion arcgis.rand() finden Sie unter Verteilungssyntax für Zufallswerte.

  • Der Ausdruck und der Codeblock sind miteinander verbunden. Der Codeblock muss zurück auf den Ausdruck verweisen. Das Ergebnis des Codeblocks muss an den Ausdruck übergeben werden.

  • Mit dem Codeblock-Parameter können komplexe Ausdrücke erstellt werden. Sie können den Codeblock direkt im Dialogfeld oder als fortlaufende Zeichenfolge in der Skripterstellung eingeben.

  • Das Python-Modul math und die entsprechende Formatierung stehen für die Verwendung im Codeblock-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 werden, müssen Sie die Berechnungen ändern, damit sie verwendet werden können.

  • Bei der Berechnung von verbundenen Daten können Sie die verbundenen Spalten nicht direkt berechnen. 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.

  • Feldberechnungen mit einem VB-Ausdruckstyp werden in 64-Bit-Produkten nicht unterstützt, einschließlich ArcGIS for Desktop – Geoverarbeitung im Hintergrund (64-Bit) und ArcGIS for Server. Um Feld berechnen in diesen Produkten erfolgreich zu verwenden, sollten Ausdrücke in Python konvertiert werden. Im Fall von Geoverarbeitung im Hintergrund (64-Bit) kann alternativ die Hintergrundverarbeitung deaktiviert werden.

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

  • Feld berechnen - Beispiele

Syntax

CalculateField_management (in_table, field, expression, {expression_type}, {code_block})
ParameterErläuterungDatentyp
in_table

Die Tabelle, die das Feld enthält, das mit der neuen Berechnung aktualisiert wird.

Raster Catalog Layer; Mosaic Layer; Raster Layer; Table View
field

Das Feld, das durch die neue Neuberechnung aktualisiert wird.

Field
expression

Der einfache Berechnungsausdruck zum Generieren des Wertes, der in die ausgewählten Zeilen eingefügt wird.

SQL Expression
expression_type
(optional)

Geben Sie den zu verwendenden Ausdruckstyp an.

  • VB —Der Ausdruck wird im Standard-VB-Format geschrieben. Dies ist die Standardeinstellung.
  • PYTHON —Der Ausdruck wird im Standard-Python-Format geschrieben. Die Verwendung von Geoprozessor-Methoden und -Eigenschaften entspricht der Erstellung eines Geoprozessors der Version 9.2.
  • PYTHON_9.3 —Der Ausdruck wird im Standard-Python-Format geschrieben. Die Verwendung von Geoprozessor-Methoden und -Eigenschaften entspricht der Erstellung eines Geoprozessors der Version 9.3.
Achtung:

Feldberechnungen mit einem VB-Ausdruckstyp werden in 64-Bit-Produkten nicht unterstützt, einschließlich ArcGIS Pro, ArcGIS for Desktop–Geoverarbeitung im Hintergrund (64-Bit) und ArcGIS for Server. Um Feld berechnen in diesen Produkten erfolgreich zu verwenden, sollten Ausdrücke in Python konvertiert werden. Im Fall von Geoverarbeitung im Hintergrund (64-Bit) kann alternativ die Hintergrundverarbeitung deaktiviert werden.

String
code_block
(optional)

Unterstützt die Eingabe eines Codeblocks für komplexe Ausdrücke.

String

Codebeispiel

CalculateField - Beispiel (Python-Fenster)

Mit dem folgenden Skript im Python-Fenster wird veranschaulicht, wie die Funktion "CalculateField" im unmittelbaren Modus verwendet wird.

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.AddField_management("vegtable.dbf", "VEG_TYP2", "TEXT", "", "", "20")
arcpy.CalculateField_management("vegtable.dbf", "VEG_TYP2", 
                                '!VEG_TYPE!.split(" ")[-1]', "PYTHON_9.3")
CalculateField - Beispiel: Berechnen von Schwerpunkten

Weisen Sie Schwerpunktwerte mithilfe von "CalculateField" neuen Feldern zu.

# Name: CalculateField_Centroids.py
# Description: Use CalculateField to assign centroid values to new fields

# Import system modules
import arcpy

try: 
    # 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")
except Exception:
    e = sys.exc_info()[1]
    print(e.args[0])
CalculateField - Beispiel: Berechnen von Bereichen

Verwenden Sie "CalculateField" mit einem Codeblock, um auf Bereichen basierende Werte zu berechnen.

# Name: CalculateField_Ranges.py
# Description: Use CalculateField with a codeblock to calculate values
#  based on ranges

# 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: Berechnen von Zufallswerten

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

# Name: CalculateField_Random.py
# Description: Use CalculateField to assign random values to a new field

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

Umgebung

  • Aktueller Workspace
  • Ausdehnung

Lizenzierungsinformationen

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

Verwandte Themen

  • Überblick über das Toolset "Felder"
Feedback zu diesem Thema?

ArcGIS for Desktop

  • Startseite
  • Dokumentation
  • Preise
  • Support

ArcGIS Plattform

  • ArcGIS Online
  • ArcGIS for Desktop
  • ArcGIS for Server
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

Über Esri

  • Über uns
  • Karriere
  • Insider-Blog
  • User Conference
  • Developer Summit
Esri
© Copyright 2016 Environmental Systems Research Institute, Inc. | Datenschutz | Rechtliches