HOW TO

Ausfüllen eines Feldes basierend auf der Anzahl der Zeichen in einem anderen Feld in ArcGIS Pro

Last Published: April 2, 2024

Zusammenfassung

In ArcGIS Pro kann die Python-Funktion "len()" in Feldberechnungen verwendet werden, um die Anzahl der Zeichen in einem Textfeld zu zählen und zurückzugeben. Die Funktion kann z. B. in Ausdrücken verwendet werden, um ein Feld mit Werten aufzufüllen, die auf der Zeichenanzahl von Zellen in einem anderen Feld basieren, was bei der Arbeit mit standardisierten Codes oder Akronymen nützlich sein kann.

Die folgende Abbildung zeigt das Feld "Category" mit Akronymen in der Attributtabelle eines Features in ArcGIS Pro. In diesem Artikel wird ein neues Feld mit zusätzlichen Zeichen aufgefüllt, wenn die Werte im Feld "Category" drei oder zwei Zeichen anstelle von vier Zeichen enthalten.

Das Feld mit Zeichen, die in der Attributtabelle in ArcGIS Pro gezählt werden sollen
Note:
The workflow in this article can only be applied to fields with the text data type, as the len() function is used to count the characters in a string.

Vorgehensweise

  1. Öffnen Sie das Projekt in ArcGIS Pro.
  2. Klicken Sie im Bereich Inhalt mit der rechten Maustaste auf den Feature-Layer, und klicken Sie auf Attributtabelle.
Die Schaltfläche "Attributtabelle", nachdem Sie mit der rechten Maustaste auf den Layer im Bereich "Inhalt" geklickt haben
  1. Klicken Sie in der Ansicht der Attributtabelle auf Feld hinzufügen, um ein neues Textfeld hinzuzufügen.
    1. Geben Sie in der Feldansicht in der Spalte Feldname einen Namen für das neue Feld an. In diesem Beispiel lautet der Feldname "Code".
    2. Doppelklicken Sie in der Spalte Datentyp auf die Zelle, um das Dropdown-Menü zu öffnen, und klicken Sie auf Text.
Hinzufügen des neuen Felds in der Feldansicht
  1. Klicken Sie auf der Registerkarte Felder in der Gruppe Änderungen auf Speichern. Schließen Sie die Feldansicht.
  1. Klicken Sie in der Attributtabelle mit der rechten Maustaste auf das neu hinzugefügte Feld, und klicken Sie auf Feld berechnen. In diesem Beispiel wird das Feld "Code" verwendet.
Die Schaltfläche "Feld berechnen", nachdem Sie mit der rechten Maustaste auf das Feld in der Attributtabelle geklickt haben
  1. Erstellen Sie einen Ausdruck mit der IF-Anweisung und der Funktion "len()", um das neue Feld mit Werten zu füllen, die auf der Anzahl der Zeichen aus einem anderen Feld basieren. Konfigurieren Sie im Fenster Feld berechnen die folgenden Parameter.
    1. Wählen Sie als Ausdruckstyp die Option Python 3 aus.
    2. Geben Sie im Textfeld Ausdruck über dem Feld Code-Block das folgende Skript ein. Ersetzen Sie "<fieldName>" durch den Namen des Eingabefelds, das die zu zählenden Zeichen enthält. In diesem Beispiel ist das Eingabefeld das Feld "Categories".
calculate_field(!<fieldName>!)
    1. Geben Sie im Feld Code-Block das folgende Skript ein. Ersetzen Sie "<field>" durch den gewünschten Variablennamen, "<characters>" durch die Anzahl der Zeichen aus dem Eingabefeld, die gezählt werden sollen, und "<value>" durch einen Textwert, der dem neuen Feld hinzugefügt werden soll.
      • Mit der Anweisung if... else.
def calculate_field(<field>):
    if (len(<field>) == <characters>):
        return ("<value>" + <field>)
    else:
        return (<field>)
  • Mit der Anweisung if…elif…else.
def calculate_field(<field>):
    if (len(<field>) == <characters>):
        return ("<value>" + <field>)
    elif (len(<field>) == <characters>):
        return ("<value>" + <field>)
    else:
        return (<field>)
Note:
The if…elif..else statement is used to include more than a single number of characters from the input field to be counted.

Der folgende Code-Block zeigt den funktionsfähigen Ausdruck mit der Anweisung if... else.

def calculate_field(cat):
    if (len(cat) == 3):
        return ("A" + cat)
    else:
        return (cat)

Der folgende Code-Block zeigt den funktionsfähigen Ausdruck mit der Anweisung if…elif…else.

def calculate_field(cat):
    if (len(cat) == 3):
        return ("A" + cat)
    elif (len(cat) == 2):
        return ("AA" + cat)
    else:
        return (cat)
Konfigurieren der Parameter im Fenster "Feld berechnen"
  1. Klicken Sie auf OK.

Die folgende Abbildung zeigt das Feld "Code", das mit den zusätzlichen Zeichen "A" oder "AA" aufgefüllt wird, wenn die Werte des Feldes "Category" drei oder zwei Zeichen anstelle von vier Zeichen enthalten.

Das neue Feld, das mit Werten aufgefüllt wird, die auf der Anzahl der Zeichen in einem anderen Feld basieren

Artikel-ID: 000032254

Holen Sie sich Unterstützung mit KI

Lösen Sie Ihr Problem schnell mit dem Esri Support AI Chatbot.

Beginnen Sie jetzt mit dem Chatten

Zugehörige Informationen

Weitere Informationen zu diesem Thema erkunden

Unterstützung durch ArcGIS-Experten anfordern

An den technischen Support wenden

Beginnen Sie jetzt mit dem Chatten

Zu Download-Optionen wechseln