Determinando o nome do campo da área da forma

9

Estou lidando com uma variedade de arquivos de polígonos espaciais (shapefiles, classes de recursos gdb de arquivo / pessoal, classes de recursos sde (alguns com vistas espaciais)) e, dependendo do tipo de arquivo, recebo uma variedade de nomes de campos de classes de recursos da Shape Area ( o campo obrigatório, não o criado)

Por exemplo, os nomes dos campos variam de "Shape_Area", "SHAPE_Area", "SHAPE.AREA", "GEOMETRY_Area", "GEOMETRY.AREA"

Estou escrevendo um script python para extrair a área de todos esses tipos de classes de recursos e faço algo ao longo das linhas de:

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

Gostaria de saber se existe uma maneira mais inteligente de extrair o campo da área da forma, em vez de apenas listar todas as maneiras pelas quais ele pode ser nomeado? Parece não haver uma propriedade de campo para algo como Area. existe alguma outra maneira de fazer isso?

Mike
fonte

Respostas:

12

E o que se segue:

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

Deve funcionar em várias classes de recursos que geraram campos de área gerados automaticamente. Isso excluirá shapefiles.

Barbarossa
fonte
Obrigado Barbarossa. Devo ter perdido essa propriedade no Describe porque estava procurando maneiras de descrever os campos e esse não apareceu na minha pesquisa. Isso funciona perfeitamente.
Mike