Сводка
Принимает строку (имя поля) и путь рабочей области и возвращает корректное имя поля, созданное с учетом ограничений на задание имен в выходной базе геоданных. Все некорректные символы входной строки заменяются символом подчеркивания (_). Ограничения на имена полей зависят от используемой базы данных (Structured Query Language [SQL] или Oracle).
Синтаксис
ValidateFieldName (name, {workspace})
Parameter | Объяснение | Тип данных |
name | Проверяемое имя поля. Если дополнительная рабочая область не указана, имя поля проверяется относительно текущей рабочей области. | String |
workspace | Дополнительно указанная рабочая область, относительно которой проверяется имя поля. Рабочей областью может быть файловая система, персональная, файловая или многопользовательская база геоданных. Если рабочая область не указана, имя поля проверяется с помощью среды текущей рабочей области. Если рабочая область еще не была задана, имя поля проверяется на основе рабочей области папки. | String |
Тип данных | Объяснение |
String | Возвращает строку, содержащую допустимое имя поля на основе текущей или указанной рабочей области. |
Пример кода
Возвращает допустимое имя поля на основе рабочей области.
import arcpy
import os
class ShapeError(Exception):
pass
try:
# Get the input feature class and make sure it contains polygons.
#
in_fc = arcpy.GetParameterAsText(0)
if arcpy.Describe(input).shapeType != "Polygon":
# Raise a custom exception
raise ShapeError("Input does not contain polygons")
# Get the new field name and validate it.
#
field_name = arcpy.GetParameterAsText(1)
field_name = arcpy.ValidateFieldName(field_name, os.path.dirname(in_fc))
# Add the new field and calculate the value.
#
arcpy.AddField_management(in_fc, field_name, "DOUBLE")
arcpy.CalculateField_management(in_fc,
field_name,
"!shape.area! / !shape.length!",
"PYTHON_9.3")
except ShapeError as err:
print(err[0])
except arcpy.ExecuteError:
print(arcpy.GetMessages(2))