Feld berechnen (Data Management)

Lizenzstufe:BasicStandardAdvanced

Zusammenfassung

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

Beispiele für die Verwendung von "Feld berechnen"

Verwendung

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.

Mosaic Layer; Raster Catalog 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.

  • VBDer Ausdruck wird im Standard-VB-Format geschrieben. Dies ist die Standardeinstellung.
  • PYTHONDer 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.3Der Ausdruck wird im Standard-Python-Format geschrieben. Die Verwendung von Geoprozessor-Methoden und -Eigenschaften entspricht der Erstellung eines Geoprozessors der Version 9.3.
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
from arcpy import env
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
from arcpy import env

try: 
    # Set environment settings
    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 as e:
    # If an error occurred, print line number and error message
    import traceback
    import sys
    tb = sys.exc_info()[2]
    print("Line {0}".format(tb.tb_lineno))
    print(e.message)
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
from arcpy import env
 
# Set environment settings
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
from arcpy import env
 
# Set environment settings
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

Verwandte Themen

Lizenzierungsinformationen

ArcGIS for Desktop Basic: Ja
ArcGIS for Desktop Standard: Ja
ArcGIS for Desktop Advanced: Ja
9/11/2013