Краткая информация
Генерирует отчет об ошибках геометрии в классе пространственных объектов.
Допустимыми форматами являются шейп-файлы и классы объектов, хранящиеся в персональной или файловой базе геоданных. Базы геоданных SDE автоматически проверяют правильность каждой геометрии при загрузке, поэтому инструменты Проверить геометрию (Check Geometry) и Восстановить геометрию (Repair Geometry) не используются с базами геоданных SDE.
Дополнительную информацию о проблемах с геометрией, их причинах и влиянии на работу программного обеспечения см. в разделе Проверка и восстановление геометрии.
Использование
Выходная таблица (Output Table) будет содержать записи по каждой обнаруженной проблеме геометрии. Если ошибки не найдены, таблица будет пустой.
Выходная таблица содержит следующие поля:
- CLASS – полный путь к классу пространственных объектов и его имя, где была найдена ошибка.
- FEATURE_ID – идентификатор объекта Feature ID (FID) или Object ID (OID) для пространственного объекта с ошибками геометрии.
- PROBLEM – краткое описание ошибки.
Поле PROBLEM может содержать следующие сообщения:
- Short segment : некоторые сегменты короче, чем допускается единицами системы пространственной привязки, связанной с геометрией.
- Null geometry : у пространственных объектов нет геометрии или ничего нет в поле SHAPE.
- Incorrect ring ordering : полигон топологически простой, но его кольца ориентированы некорректно (внешние кольца – по часовой стрелке, внутренние кольца – против).
- Incorrect segment orientation : отсутствует согласованность ориентации отдельных сегментов. Точка "до" сегмента i должна совпадать с точкой "от" сегмента i+1.
- Self intersections : полигон не должен пересекать сам себя.
- Unclosed rings : точка "до" последнего сегмента кольца должна совпадать с точкой "от" первого сегмента.
- Empty parts : геометрия состоит из нескольких частей, одна из которых пустая (без геометрии).
- Duplicate vertex : в геометрии есть две или более вершины с одинаковыми координатами.
- Mismatched attributes : координаты Z или M конечной точки линейного сегмента не совпадают с координатами Z или M совпадающей конечной точки следующего сегмента.
- Discontinuous parts : одна из частей геометрии состоит из разрозненных или дискретных частей.
- Empty Z values : в геометрии есть одна или несколько вершин с пустым значением Z (например, NaN).
- Bad envelope : конверт не соответствует координатному экстенту геометрии.
- Bad dataset extent : экстент набора данных содержит не все объекты.
Проблему, выявленную этим инструментом, можно решить одним из указанных ниже способов:
- Вручную отредактировать и исправить пространственный объект с проблемами геометрии. Некоторые проблемы нельзя устранить редактированием.
- Запустить инструмент Восстановить геометрию (Repair Geometry) для класса пространственных объектов, обозначенных как имеющие проблемы геометрии.
Для точечных объектов возможна только проблема нулевой геометрии.
Чтобы сделать более удобным просмотр пространственных объектов, обозначенных как имеющие проблемы геометрии, можно присоединить Входные объекты (Input Features) к Выходной таблице (Output Table) с помощью инструмента Соединение (Join), указав входное поле OBJECTID или FID и поле выходной таблицы FEATURE_ID.
Синтаксис
CheckGeometry_management (in_features, out_table)
Параметр | Объяснение | Тип данных |
in_features [in_feature,...] | Один или несколько классов пространственных объектов или векторных слоев, в которых проверяется геометрия. Допустимыми входными данными являются шейп-файлы и классы объектов, хранящиеся в персональной или файловой базе геоданных. | Feature Layer |
out_table | Выходная таблица, содержащая список проблем с геометрией, обнаруженных во входных объектах. | Table |
Пример кода
CheckGeometry, пример 1 (окно Python)
Пример скрипта окна Python для выполнения функции CheckGeometry в режиме прямого запуска.
import arcpy
arcpy.env.workspace = "c:/data/data.gdb"
arcpy.CheckGeometry_management (["contours", "roads", "vegetation"], "CheckGeom_Result")
CheckGeometry, пример 2 (автономный скрипт)
Пример автономного скрипта, использующего функцию CheckGeometry с запуском цикла по всем классам пространственных объектов в базе геоданных.
# BatchCheckGeometry.py
# Description:
# Loops through all the feature classes in a geodatabase, and generates
# a report of the problems encountered with feature geometry.
# Import modules
import arcpy
# The workspace in which the feature classes will be checked
arcpy.env.workspace = "C:/data/St_Lucia.gdb"
outTable = "checkGeometryResult"
# A variable that will hold the list of all the feature classes
# inside the geodatabase
fcs = []
# List all feature classes in feature datasets
for fds in arcpy.ListDatasets("featuredataset"):
fcs += arcpy.ListFeatureClasses("*", "", fds)
# List all standalone feature classes
fcs = arcpy.ListFeatureClasses()
print("Running the check geometry tool on {} feature classes".format(len(fcs)))
arcpy.CheckGeometry_management(fcs, outTable)
print("{} geometry problems found, see {} for details.".format(arcpy.GetCount_management(outTable)[0],
outTable))