Определение имени поля области формы


9

Я имею дело с различными файлами пространственных полигонов (шейп-файлы, классы объектов file / personal gdb, классы пространственных объектов sde (некоторые с пространственными представлениями)), и в зависимости от типа файла я получаю множество имен полей класса пространственных объектов Shape Area ( обязательное поле, а не созданное)

Так, например, имена полей отличаются от «Shape_Area», «SHAPE_Area», «SHAPE.AREA», «GEOMETRY_Area», «GEOMETRY.AREA»

Я пишу скрипт на Python, чтобы выделить область всех этих типов классов объектов, и я делаю что-то вроде:

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

Мне интересно, есть ли более умный способ вытащить поле области формы, вместо того, чтобы просто перечислить все способы, которыми оно может быть названо? Кажется, что не существует свойства поля для чего-то вроде Area. Есть ли другой способ сделать это?

Ответы:


12

Как насчет следующего:

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

Должен работать с различными классами объектов, которые имеют автоматически сгенерированные поля области. Это исключит шейп-файлы.


Спасибо Барбаросса. Должно быть, я пропустил это свойство в «Описании», потому что искал способы описания полей, а это не было найдено в моем поиске. Это работает отлично.
Майк
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.