Feld hinzufügen (Data Management)

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-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})
ParameterErklärungDatentyp
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, Coverages, eigenständigen Tabellen, Raster-Katalogen, Rastern mit Attributtabellen und Layern hinzugefügt werden.

Mosaic Layer; Raster Layer; Table View
field_name

Der Name des Feldes, das der Eingabetabelle hinzugefügt wird.

String
field_type

Gibt den Feldtyp des neuen Feldes an.

  • TEXTJede beliebige Zeichenfolge.
  • FLOAT Bruchzahlen zwischen -3,4E38 und 1,2E38.
  • DOUBLE Bruchzahlen zwischen -2,2E308 und 1,8E308.
  • SHORT Ganze Zahlen zwischen -32-768 und 32-767.
  • LONG Ganze Zahlen zwischen -2-147-483-648 und 2-147-483-647.
  • DATEDatum und/oder Uhrzeit.
  • BLOBLange Abfolge von binären Zahlen. Sie benötigen ein spezielles Programm zum Laden und Anschauen oder eine Anwendung eines Drittanbieters, um Objekte in ein BLOB-Feld zu laden bzw. den Inhalt in einem BLOB-Feld anzuzeigen.
  • RASTERRaster-Bilder. Es können zwar alle von der ArcGIS-Software unterstützten Raster-Dataset-Formate gespeichert werden, es wird jedoch empfohlen, nur kleine Bilder zu verwenden.
  • GUIDGlobally Unique Identifier.
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 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 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.

  • NON_NULLABLENULL-Werte sind für das Feld nicht zulässig.
  • NULLABLENULL-Werte sind für das Feld zulässig. Dies ist die Standardeinstellung.
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.

  • NON_REQUIREDDas Feld ist kein erforderliches Feld. Dies ist die Standardeinstellung.
  • REQUIREDDas Feld ist ein erforderliches Feld. Erforderliche Felder sind permanent und können nicht gelöscht werden.
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

NameErklärungDatentyp
out_table

Die aktualisierte Eingabetabelle.

Tabelle

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)

Lizenzinformationen

  • Basic: Ja
  • Standard: Ja
  • Advanced: Ja

Verwandte Themen