Determinazione del nome campo dell'area della forma


9

Ho a che fare con una varietà di file poligonali spaziali (shapefile, classi di caratteristiche gdb file / personali, classi di caratteristiche sde (alcune con viste spaziali)) e, a seconda del tipo di file, ottengo una moltitudine di nomi di campi della classe di caratteristiche Shape Area ( il campo richiesto, non uno creato)

Ad esempio, i nomi dei campi variano da "Shape_Area", "SHAPE_Area", "SHAPE.AREA", "GEOMETRY_Area", "GEOMETRY.AREA"

Sto scrivendo uno script Python per estrarre l'area di tutti questi tipi di classi di funzioni e faccio qualcosa sulla falsariga di:

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

Mi chiedo se esiste un modo più intelligente di estrarre il campo dell'area della forma, invece di elencare tutti i modi in cui può essere nominato? Non sembra esserci una proprietà di campo per qualcosa come Area. c'è un altro modo di farlo?

Risposte:


12

Che dire di quanto segue:

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

Dovrebbe funzionare su varie classi di funzioni che hanno campi Area generati automaticamente. Ciò escluderà gli shapefile.


Grazie Barbarossa. Devo aver perso quella proprietà in Descrivi perché stavo cercando modi per descrivere i campi e quello non è venuto fuori nella mia ricerca. Funziona perfettamente.
Mike,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.