Felder batchweise aktualisieren (Data Management)

Zusammenfassung

Transformiert Felder in einer Tabelle oder Feature-Class basierend auf einem in der Definitionstabelle definierten Schema und erstellt eine neue Tabelle oder Feature-Class.

Das Werkzeug bietet folgende Möglichkeiten:

  • Hinzufügen neuer Felder
  • Aktualisieren vorhandener Felder
  • Neuanordnen von Feldern
  • Ändern von Feldtypen
  • Ändern von Feldeigenschaften
  • Zuweisen und Aktualisieren von Feld-Aliasnamen
  • Berechnen von Feldwerten basierend auf vorhandenen Feldern mithilfe von Python
  • Felder entfernen

Verwendung

  • Die Eingabetabelle kann eine Feature-Class oder eine Tabelle sein. Das Werkzeug gibt eine neue Feature-Class oder Tabelle mit dem aktualisierten Schema aus.

  • Die Schemaänderungen für die Ausgabetabelle werden durch den Parameter Ausgabe-Schemadefinitionstabelle definiert.

    Nachfolgend sehen Sie ein Beispiel für eine Definitionstabelle:

    Beispiel für eine Definitionstabelle

    Wenn der Parameterwert Ausgabe-Schemadefinitionstabelle die folgenden Feldnamen enthält, wie im Beispiel oben, werden die entsprechenden Parameterwerte automatisch gefüllt:

    • Target field
    • Source field
    • Type
    • Decimals/Length
    • Alias
    • Script

  • Das Werkzeug berechnet neue Felder unter Verwendung vorhandener Felder, indem ein Skriptfeld in der Definitionstabelle bereitgestellt wird.

    Ein Beispielwert im Feld Script der Definitiontabelle ist !TOTPOP!/!AREA!. Damit wird das Feld Population Density berechnet. Feldnamen müssen in Ausrufezeichen eingeschlossen werden.

  • Das Werkzeug kann zusätzliche Felder erstellen, die von anderen Feldberechnungen abhängig sind. Beispielsweise wird das Feld Bev_Index unter Verwendung des Feldes Bev_Per_Capita berechnet, das ebenfalls berechnet wird, wenn das Werkzeug ausgeführt wird.

  • Verwenden Sie den Parameter Skriptdatei für mehrzeilige Python-Berechnungen. Um eine Skriptdatei zu verwenden, erstellen Sie eine Datei mit Python-Funktionen, und referenzieren Sie die Funktionen in der Definitionstabelle.

    Im Folgenden sehen Sie ein Beispiel für Skriptcode für ein Zielfeld namens Bev_Per_Capita:

    • Ein Feld namens Script im Parameterwert Ausgabe-Schemadefinitionstabelle mit dem Wert Bev_Per_Capita(!Bev_Total!, !TOTPOP!)
    • Ein Parameterwert Skriptdatei mit der folgenden Funktion:
      
      def Bev_Per_Capita(Bev_Total, TOTPOP):
          return Bev_Total / TOTPOP

    Im Folgenden sehen Sie ein Beispiel, das eine Attributtabelle vor und nach der Ausführung des Werkzeugs darstellt:

    Beispiel für das Werkzeug "Felder batchweise aktualisieren"

Parameter

BeschriftungErläuterungDatentyp
Eingabetabelle

Die Eingabetabelle oder -Feature-Class.

Table View
Ausgabetabelle

Die Ausgabetabelle oder -Feature-Class, die die aktualisierten Felder enthält.

Table
Ausgabe-Schemadefinitionstabelle

Eine Tabelle, die die Felddefinitionen und Berechnungen enthält, die zum Erstellen der Ausgabe verwendet werden.

Table View
Skriptdatei
(optional)

Eine Python-Datei, die mehrzeilige Python-Funktionen speichert, um Berechnungen für die Ausgabetabelle-Parameterfelder durchzuführen.

File
Ausgabefeldname
(optional)

Der Feldname aus der Definitionstabelle, der die Zielfeldnamen für die Ausgabetabelle enthält.

Field
Quellfeldname
(optional)

Der Feldname aus der Definitionstabelle, der die Quellfeldnamen aus der Eingabetabelle enthält.

Field
Ausgabefeldtyp
(optional)

Der Feldname aus der Definitionstabelle, der die Datentypen für die Ausgabetabelle definiert.

Field
Dezimalstellen oder Länge des Ausgabefeldes
(optional)

Der Feldname aus der Definitionstabelle, der die Anzahl der Dezimalstellen oder die Länge des Feldes für die Ausgabefelder definiert.

Field
Ausgabefeld-Alias
(optional)

Der Feldname aus der Definitionstabelle, der die Aliasnamen für Felder der Ausgabetabelle definiert.

Field
Ausgabefeldskript
(optional)

Der Feldname aus der Definitionstabelle, der die Berechnungen für die Ausgabefelder definiert.

Field

arcpy.management.BatchUpdateFields(in_table, out_table, field_definition_table, {script_file}, {output_field_name}, {source_field_name}, {output_field_type}, {output_field_decimals_or_length}, {output_field_alias}, {output_field_script})
NameErläuterungDatentyp
in_table

Die Eingabetabelle oder -Feature-Class.

Table View
out_table

Die Ausgabetabelle oder -Feature-Class, die die aktualisierten Felder enthält.

Table
field_definition_table

Eine Tabelle, die die Felddefinitionen und Berechnungen enthält, die zum Erstellen der Ausgabe verwendet werden.

Table View
script_file
(optional)

Eine Python-Datei, die mehrzeilige Python-Funktionen speichert, um Berechnungen für die out_table-Parameterfelder durchzuführen.

File
output_field_name
(optional)

Der Feldname aus der Definitionstabelle, der die Zielfeldnamen für die Ausgabetabelle enthält.

Field
source_field_name
(optional)

Der Feldname aus der Definitionstabelle, der die Quellfeldnamen aus der Eingabetabelle enthält.

Field
output_field_type
(optional)

Der Feldname aus der Definitionstabelle, der die Datentypen für die Ausgabetabelle definiert.

Field
output_field_decimals_or_length
(optional)

Der Feldname aus der Definitionstabelle, der die Anzahl der Dezimalstellen oder die Länge des Feldes für die Ausgabefelder definiert.

Field
output_field_alias
(optional)

Der Feldname aus der Definitionstabelle, der die Aliasnamen für Felder der Ausgabetabelle definiert.

Field
output_field_script
(optional)

Der Feldname aus der Definitionstabelle, der die Berechnungen für die Ausgabefelder definiert.

Field

Codebeispiel

BatchUpdateFields – Beispiel (eigenständiges Skript)

Das folgende Skript für das Python-Fenster veranschaulicht die Verwendung der Funktion BatchUpdateFields in einem eigenständigen Skript.

import arcpy
arcpy.management.BatchUpdateFields(
    "zip_codes", "MyProject.gdb\zip_codes_BatchUpdateFields",
    "DATA_TRANSFORMATION.csv", r"C:\BatchUpdate\script.py", "TARGET",
    "SOURCE", "DATATYPE", "DECIMALS", "ALIAS", "SCRIPT")

Lizenzinformationen

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

Verwandte Themen