Feld berechnen (Data Management)

Zusammenfassung

Hiermit werden die Werte eines Feldes für eine Feature-Class, ein 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 Geoprocessor-Methoden und -Eigenschaften entspricht der Erstellung eines Geoprocessors der Version 9.2.
  • PYTHON_9.3Der Ausdruck wird im Standard-Python-Format geschrieben. Die Verwendung von Geoprocessor-Methoden und -Eigenschaften entspricht der Erstellung eines Geoprocessors 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")
Beispiel für CalculateField: 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
    # Expressions are calculated using the Shape Field's geometry property
    expression1 = "float(!SHAPE.CENTROID!.split()[0])"
    expression2 = "float(!SHAPE.CENTROID!.split()[1])"
 
    # Execute AddField
    arcpy.AddField_management(inFeatures, fieldName1, "DOUBLE", 
                              fieldPrecision, fieldScale)
    arcpy.AddField_management(inFeatures, fieldName2, "DOUBLE", 
                              fieldPrecision, fieldScale)
 
    # Execute CalculateField 
    arcpy.CalculateField_management(inFeatures, fieldName1, expression1,
                                    "PYTHON")
    arcpy.CalculateField_management(inFeatures, fieldName2, expression2,
                                    "PYTHON")
except Exception, e:
    # If an error occurred, print line number and error message
    import traceback, sys
    tb = sys.exc_info()[2]
    print "Line %i" % tb.tb_lineno
    print e.message

Beispiel für CalculateField: 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", 
                                codeblock)
Beispiel für CalculateField: 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")

Umgebungen

Verwandte Themen

Lizenzinformationen

ArcView: Ja
ArcEditor: Ja
ArcInfo: Ja

11/13/2014