Feldname des Formbereichs bestimmen

9

Ich habe es mit einer Vielzahl von räumlichen Polygondateien zu tun (Shapefiles, Datei- / persönliche GDB-Feature-Classes, SDE-Feature-Classes (einige mit räumlichen Ansichten)) und je nach Dateityp erhalte ich eine Vielzahl von Shape Area-Feature-Class-Feldnamen ( das erforderliche Feld, kein erstelltes)

So variieren beispielsweise die Feldnamen von "Shape_Area", "SHAPE_Area", "SHAPE.AREA", "GEOMETRY_Area", "GEOMETRY.AREA".

Ich schreibe ein Python-Skript, um den Bereich all dieser Arten von Feature-Classes herauszuholen, und mache etwas in der Art von:

for field in arcpy.ListFields(fc):
    if field.name in ["Shape_Area", "SHAPE_Area", "SHAPE.AREA", "GEOMETRY_Area", "GEOMETRY.AREA"]:
         do something

Ich frage mich, ob es eine cleverere Möglichkeit gibt, das Feld für den Formbereich herauszuziehen, anstatt nur alle Möglichkeiten aufzulisten, wie es benannt werden kann. Es scheint keine Feldeigenschaft für so etwas wie Area zu geben. Gibt es eine andere Möglichkeit, dies zu tun?

Mike
quelle

Antworten:

12

Was ist mit Folgendem:

fc = "path to input feature class"
desc = arcpy.Describe(fc)
areafieldname = desc.areaFieldName

Sollte für verschiedene Feature-Classes funktionieren, für die automatisch Bereichsfelder generiert wurden. Dies schließt Shapefiles aus.

Barbarossa
quelle
Danke Barbarossa. Ich muss diese Eigenschaft in Describe verpasst haben, weil ich nach Möglichkeiten gesucht habe, die Felder zu beschreiben, und diese bei meiner Suche nicht aufgetaucht ist. Das funktioniert perfekt.
Mike