Determinación del nombre del campo del área de forma

9

Estoy tratando con una variedad de archivos de polígonos espaciales (archivos de forma, clases de entidad de archivo / personal gdb, clases de entidad sde (algunas con vistas espaciales)) y dependiendo del tipo de archivo, obtengo una gran cantidad de nombres de campo de clase de entidad de Área de Forma ( el campo requerido, no uno creado)

Entonces, por ejemplo, los nombres de campo varían de "Shape_Area", "SHAPE_Area", "SHAPE.AREA", "GEOMETRY_Area", "GEOMETRY.AREA"

Estoy escribiendo un script de Python para extraer el área de todos estos tipos de clases de entidad y hago algo como:

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

Me pregunto si hay una forma más inteligente de extraer el campo del área de forma, en lugar de enumerar todas las formas en que se puede nombrar. No parece haber una propiedad de campo para algo como Área. ¿Hay otra manera de hacer esto?

Miguel
fuente

Respuestas:

12

¿Qué pasa con lo siguiente:

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

Debería funcionar en varias clases de entidad que tienen campos de Área generados automáticamente. Esto excluirá los archivos de forma.

Barbarroja
fuente
Gracias barbarroja Debo haber perdido esa propiedad en Describir porque estaba buscando formas de describir los campos y esa no apareció en mi búsqueda. Eso funciona perfectamente
Mike