Określanie nazwy pola obszaru kształtu

9

Mam do czynienia z różnorodnymi przestrzennymi plikami wielokątów (pliki kształtów, klasy plików / osobiste klasy gdb, klasy cech sde (niektóre z widokami przestrzennymi)) iw zależności od typu pliku otrzymuję wiele nazw pól cech klasy kształtu ( wymagane pole, a nie utworzone)

Na przykład nazwy pól różnią się od „Shape_Area”, „SHAPE_Area”, „SHAPE.AREA”, „GEOMETRY_Area”, „GEOMETRY.AREA”

Piszę skrypt Pythona, aby wyciągnąć obszar wszystkich typów klas elementów i robię coś w stylu:

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

Zastanawiam się, czy istnieje bardziej sprytny sposób na wyciągnięcie pola obszaru kształtu, zamiast tylko wymieniać wszystkie sposoby, w jakie można go nazwać? Wydaje się, że nie istnieje właściwość pola dla czegoś takiego jak Obszar. czy jest na to inny sposób?

Mikrofon
źródło

Odpowiedzi:

12

Co z następującymi kwestiami:

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

Powinien działać na różnych klasach obiektów, które mają automatycznie wygenerowane pola Area. Wyklucza to pliki kształtów.

Barbarossa
źródło
Dzięki Barbarossa. Musiałem przegapić tę właściwość w Describe, ponieważ szukałem sposobów na opisanie pól, a ta nie pojawiła się w moich poszukiwaniach. To działa idealnie.
Mike