Zusammenfassung
Fügt einer Tabelle oder der Tabelle einer Feature-Class bzw. eines Feature-Layers sowie Rastern mit Attributtabellen ein neues Feld hinzu.
Verwendung
Wenn der Feldtyp in Shapefiles und dBase-Tabellen ein Zeichen definiert, werden für jeden Datensatz Leerzeichen eingefügt. Wenn der Feldtyp ein numerisches Element definiert, werden für jeden Datensatz Nullen eingefügt.
Der Parameter Feldlänge ist nur für Felder vom Typ "Text" anwendbar. Ist keine Länge angegeben, gilt der Standardwert von 255.
Wenn der Feldtyp in Geodatabases ein Zeichen oder eine Zahl definiert, wird in die einzelnen Datensätze <NULL> eingefügt, wenn der Parameter Feld erlaubt NULL-Werte aktiviert ist (in Python field_is_nullable="NULLABLE").
Felder, die keine NULL-Werte erlauben, können einer nicht leeren Geodatabase-Feature-Class oder -Tabelle nicht hinzugefügt werden.
Shapefiles unterstützen keine Aliasnamen für Felder, daher können Sie einem Shapefile keinen Feldaliasnamen hinzufügen.
Mit dem Parameter Felddomäne können Sie eine vorhandene Domäne aus einer Feature-Class in Geodatabase verwenden. Der Name einer vorhandenen Domäne muss angegeben werden. Die Angabe eines ungültigen Domänennamens oder Wertes führt nicht zu einem Fehler. Der ungültige Name bzw. Wert wird jedoch ignoriert, und es wird keine Domäne für das Feld festgelegt.
Die Genauigkeit und die Dezimalstellen eines Feldes beschreiben die maximale Genauigkeit und Größe der Daten, die in dem Feld gespeichert werden können. Der Parameter "Signifikante Stellen" gibt die Anzahl der Stellen an, die in einem Feld gespeichert werden können. Der Parameter "Dezimalstellen" beschreibt die Anzahl der Dezimalstellen für Felder des Typs "Float" oder "Double". Wenn der Feldwert beispielsweise 54,234 lautet, dann ist der Wert für "Dezimalstellen (Scale)" 3 und der Wert für "Signifikante Stellen (Precision)" 5.
Wählen Sie anhand der folgenden Richtlinien den richtigen Feldtyp für einen bestimmten Genauigkeitswert und einen bestimmten Dezimalstellenwert aus:
- Wenn Sie ein Float-, Double- oder ganzzahliges Feld erstellen und 0 für Genauigkeit und Dezimalstellen festlegen, wird das Werkzeug versuchen, einen binären Feldtyp zu erstellen, wenn die zugrunde liegende Datenbank dies unterstützt. File- und Personal-Geodatabases unterstützen nur binäre Feldtypen. Genauigkeit und Dezimalstellen werden ignoriert.
- Wenn Sie Float- und Double-Felder erstellen und eine Genauigkeit sowie Dezimalstellen festlegen, verwenden Sie bei einer höheren Genauigkeit als 6 ein Double-Feld und andernfalls ein Float-Feld. Wenn Sie ein Double-Feld erstellen und eine Genauigkeit von 6 oder weniger festlegen, wird ein Float-Feld erstellt. Wenn Sie ein Float-Feld erstellen und eine höhere Genauigkeit als 6 festlegen, wird ein Double-Feld erstellt.
- Wenn Sie für Dezimalstellen einen Wert von 0 und für die Genauigkeit einen Wert von 10 oder weniger angeben, erstellen Sie ein ganzzahliges Feld. Geben Sie bei der Erstellung eines ganzzahligen Feldes eine Genauigkeit von 10 oder weniger an. Andernfalls wird möglicherweise ein Double-Feld erstellt.
Bei der Erstellung eines neuen Feldes in einer Geodatabase-Feature-Class oder -Tabelle können Sie den Feldtyp, nicht jedoch dessen Genauigkeit und die Dezimalstellen festlegen. Auch wenn im Dialogfeld das Hinzufügen eines Wertes für die Genauigkeit oder die Dezimalstellen möglich ist, wird dieser Wert bei der Ausführung ignoriert.
Erforderliche Felder sind permanent und können nicht gelöscht werden. Um das Löschen zu einem späteren Zeitpunkt zu ermöglichen, legen Sie für das Feld den Status "nicht erforderlich" fest (Standardeinstellung).
Ein Feld vom Typ "Raster" kann über ein Rasterbild als Attribut verfügen. Es wird in oder mit der Geodatabase gespeichert. Dies ist hilfreich, wenn ein Feature am besten mit einem Bild beschrieben werden kann. Für Felder vom Typ "Raster" können weder Genauigkeit noch Dezimalstellen oder Länge festgelegt werden.
Syntax
arcpy.management.AddField(in_table, field_name, field_type, {field_precision}, {field_scale}, {field_length}, {field_alias}, {field_is_nullable}, {field_is_required}, {field_domain})
Parameter | Erklärung | Datentyp |
in_table | Die Eingabetabelle, der das Feld hinzugefügt wird. Das Feld wird der vorhandenen Eingabetabelle hinzugefügt. Es wird keine neue Ausgabetabelle erstellt. Felder können zu Feature-Classes in Geodatabases, Shapefiles, eigenständigen Tabellen, Rastern mit Attributtabellen und Layern hinzugefügt werden. | Table View; Raster Layer; Raster Catalog Layer; Mosaic Layer |
field_name | Der Name des Feldes, das der Eingabetabelle hinzugefügt wird. | String |
field_type | Gibt den Feldtyp des neuen Feldes an.
Obwohl die Werte der Eigenschaft type des Objekts Field mit den Schlüsselwörtern im Parameter field_type des Werkzeugs Feld hinzufügen nicht exakt übereinstimmen, können alle type-Werte des Objekts Field als Eingabe für den Parameter verwendet werden. Die verschiedenen Feldtypen werden folgendermaßen zugeordnet: Integer zu LONG, String zu TEXT und SmallInteger zu SHORT. | String |
field_precision (optional) | Die Anzahl der Ziffern, die im Feld gespeichert werden können. Dabei werden alle Ziffern berücksichtigt, unabhängig davon, auf welcher Seite des Dezimalkommas sie sich befinden. Wenn die Eingabe-Tabelle eine Personal- oder File-Geodatabase ist, wird der Wert für signifikante Stellen des Feldes ignoriert. | Long |
field_scale (optional) | Die Anzahl der Dezimalstellen, die in einem Feld gespeichert werden können. Dieser Parameter wird nur für die Felddatentypen "float" und "double" verwendet. Wenn die Eingabe-Tabelle eine Personal- oder File-Geodatabase ist, wird der Dezimalstellenwert des Feldes ignoriert. | Long |
field_length (optional) | Die Länge des hinzugefügten Feldes. Dadurch wird die maximal zulässige Anzahl von Zeichen für jeden Datensatz des Feldes festgelegt. Dieser Parameter ist nur für Felder vom Typ "Text" anwendbar. | Long |
field_alias (optional) | Der alternative Name für den Feldnamen. Dieser Name dient als Beschreibung für kryptische Feldnamen. Dieser Parameter gilt nur für Geodatabases. | String |
field_is_nullable (optional) | Gibt an, ob NULL-Werte im Feld enthalten sein dürfen. NULL-Werte unterscheiden sich von Nullfeldern oder leeren Feldern. Sie werden nur für Felder in einer Geodatabase unterstützt.
| Boolean |
field_is_required (optional) | Gibt an, ob es sich bei dem erstellten Feld um ein erforderliches Feld für die Tabelle handelt. Erforderliche Felder werden nur in einer Geodatabase unterstützt.
| Boolean |
field_domain (optional) | Hiermit werden die in einem bestimmten Attribut für eine Tabelle, eine Feature-Class oder einen Subtype in der Geodatabase zulässigen Werte beschränkt. Sie müssen den Namen einer vorhandenen Domäne angeben, damit dieser Parameter auf das Feld angewendet wird. | String |
Abgeleitete Ausgabe
Name | Erklärung | Datentyp |
out_table | Die aktualisierte Eingabetabelle. | Table |
Codebeispiel
AddField – Beispiel 1 (Python-Fenster)
Das folgende Skript für das Python-Fenster veranschaulicht, wie die Funktion AddField im unmittelbaren Modus verwendet wird.
import arcpy
arcpy.env.workspace = "C:/data/airport.gdb"
arcpy.AddField_management("schools", "ref_ID", "LONG", 9, "", "", "refcode",
"NULLABLE", "REQUIRED")
AddField – Beispiel 2 (eigenständiges Skript)
Das folgende eigenständige Skript veranschaulicht, wie die Funktion AddField verwendet wird.
# Name: AddField_Example2.py
# Description: Add a pair of new fields to a table
# Import system modules
import arcpy
# Set environment settings
arcpy.env.workspace = "C:/data/airport.gdb"
# Set local variables
inFeatures = "schools"
fieldName1 = "ref_ID"
fieldPrecision = 9
fieldAlias = "refcode"
fieldName2 = "status"
fieldLength = 10
# Execute AddField twice for two new fields
arcpy.AddField_management(inFeatures, fieldName1, "LONG", fieldPrecision,
field_alias=fieldAlias, field_is_nullable="NULLABLE")
arcpy.AddField_management(inFeatures, fieldName2, "TEXT",
field_length=fieldLength)
Umgebungen
Lizenzinformationen
- Basic: Ja
- Standard: Ja
- Advanced: Ja