Проверить геометрию (Управление данными)

Краткая информация

Генерирует отчет об ошибках геометрии в классе пространственных объектов.

Дополнительную информацию об ошибках геометрии, их причинах и влиянии на работу программного обеспечения см. в разделе Проверка и восстановление геометрии.

Использование

  • Допустимые форматы входных данных – это шейп-файлы и классы пространственных объектов, хранящиеся в файловой или многопользовательской базе геоданных, GeoPackage или базе данных SpatiaLite. Для классов пространственных объектов, хранящихся в многопользовательской базе данных или многопользовательской базе геоданных, поддерживаются следующие пространственные типы:

    • Microsoft SQL Server - Geometry и Geography
    • PostgreSQL - PostGIS, Geometry и Geography
    • Oracle - SDO_Geometry

    Лицензия:

    Лицензия Desktop Basic позволяет вам применить этот инструмент только к шейп-файлам и классам пространственных объектов, хранящиеся в файловой базе геоданных, GeoPackage или базе данных SpatiaLite. Лицензия Desktop Standard или Desktop Advanced позволяет вам дополнительно применять этот инструмент к классам пространственных объектов, хранящимся в многопользовательской базе данных или многопользовательской базе геоданных.

  • Значение параметра Выходная таблица будет содержать записи для каждой найденной ошибки геометрии. Если ошибки не найдены, таблица будет пустой.

  • Содержимое значения параметра Выходная таблица, включая коды поля PROBLEM, приведено на английском языке.

  • Для точечных объектов применима только ошибка нулевой геометрии.

  • Чтобы выполнить просмотр пространственных объектов, обозначенных как имеющие проблемы геометрии, можно присоединить значение параметра Входные объекты к значению параметра Выходная таблица с помощью инструмента Добавить соединение, указав входное поле OBJECTID или FID и поле FEATURE_ID выходной таблицы. Если какие-то значения параметра Входные объекты хранятся в многопользовательской базе геоданных или базе данных, GeoPackage или базе данных SpatiaLite, выходная таблица также будет включать поле TEXT_ID, которое используется для столбцов OBJECTID, не основанных на целых числах.

  • Метод проверки Esri обеспечивает топологическую правильность геометрии при помощи способа упрощения Esri. Только проверка Esri доступна для данных, хранящихся в многопользовательской базе геоданных.

  • Метод проверки Open Geospatial Consortium (OGC) обеспечивает соответствие геометрии спецификациям OGC, указанным в OpenGIS Implementation Standard for Geographic information – simple feature access – Part 1: common architecture.

  • После восстановления геометрии объектов при помощи опции OGC, любые последующие изменения могут привести к тому, что геометрия перестанет соответствовать спецификациям OGC. После изменения объекта запустите инструмент Проверить геометрию, чтобы проверить на наличие новых ошибок. Если необходимо, запустите заново инструмент Восстановить геометрию.

  • Проблемы, выявленные с помощью этого инструмента, можно решить следующими способами:

    • Вручную отредактировать и исправить пространственный объект с ошибками геометрии. Некоторые ошибки нельзя устранить редактированием.
    • Используйте инструмент Восстановить геометрию. Некоторые проблемы, связанные с данными, хранящимися в многопользовательских базах данных или базах геоданных, GeoPackage и базах данных SpatiaLite, не могут быть устранены с помощью инструментов ArcGIS.
  • Значение параметра Выходная таблица содержит следующие поля:

    • CLASS – полный путь и название класса объектов, в котором найдена ошибка.
    • FEATURE_ID– Feature ID (FID) или Object ID (OID) объекта с ошибкой геометрии.
    • TEXT_ID– это поле существует только если значения Входные объекты в многопользовательской базе данных или базе геоданных, GeoPackage или базе данных SpatiaLite.
    • 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 – свойство экстента для набора данных не содержит все объекты набора данных. Для этой ошибки значение FEATURE_ID будет равно -1.

    Для данных, хранящихся в многопользовательских базах геоданных, поле PROBLEM будет содержать один из следующих кодов:

    • NEEDS_REORDERING – геометрия должна быть переупорядочена или удалены повторяющиеся точки.
    • SE_INVALID_ENTITY_TYPE – неверный тип объекта.
    • SE_SHAPE_INTEGRITY_ERROR – ошибка целостности формы.
    • SE_INVALID_SHAPE_OBJECT – дескриптор объекта формы недействителен.
    • SE_COORD_OUT_OF_BOUNDS – указанная координата превышает допустимый диапазон координат.
    • SE_POLY_SHELLS_OVERLAP – два кольца или две внешние оболочки перекрываются.
    • SE_TOO_FEW_POINTS – количество точек меньше, чем требуется для объекта.
    • SE_INVALID_PART_SEPARATOR – разделитель частей в неправильном положении.
    • SE_INVALID_POLYGON_CLOSURE – полигон не замкнут должным образом.
    • SE_INVALID_OUTER_SHELL – полигональная внешняя оболочка не полностью закрывает все кольца для части.
    • SE_ZERO_AREA_POLYGON – полигональная оболочка не имеет площади.
    • SE_POLYGON_HAS_VERTICAL_LINE – полигональная оболочка содержит вертикальную линию.
    • SE_OUTER_SHELLS_OVERLAP – составная область содержит перекрывающиеся части.
    • SE_SELF_INTERSECTING – линия или граница полигона являются самопересекающимися.

Параметры

ПодписьОписаниеТип данных
Входные объекты

Один или несколько классов пространственных объектов или векторных слоев, в которых будет проверяться геометрия.

Лицензия:

Лицензия Desktop Basic поддерживает в качестве входных форматов только шейп-файлы и классы пространственных объектов, хранящиеся в файловой базе геоданных, GeoPackage или базе данных SpatiaLite. Лицензия Desktop Standard или Desktop Advanced поддерживает в качестве входных форматов, кроме того, классы пространственных объектов, хранящиеся в многопользовательской базе данных или базе геоданных.

Feature Layer
Выходная таблица

Отчет (в виде таблицы) о найденных проблемах.

Table
Метод проверки
(Дополнительный)

Определяет, какой метод проверки геометрии будет использоваться для выявления ошибок геометрии.

  • EsriБудет применен метод проверки геометрии Esri. Это значение по умолчанию
  • OGCБудет использоваться метод проверки геометрии OGC.
String

arcpy.management.CheckGeometry(in_features, out_table, {validation_method})
ИмяОписаниеТип данных
in_features
[in_features,...]

Один или несколько классов пространственных объектов или векторных слоев, в которых будет проверяться геометрия.

Лицензия:

Лицензия Desktop Basic поддерживает в качестве входных форматов только шейп-файлы и классы пространственных объектов, хранящиеся в файловой базе геоданных, GeoPackage или базе данных SpatiaLite. Лицензия Desktop Standard или Desktop Advanced поддерживает в качестве входных форматов, кроме того, классы пространственных объектов, хранящиеся в многопользовательской базе данных или базе геоданных.

Feature Layer
out_table

Отчет (в виде таблицы) о найденных проблемах.

Table
validation_method
(Дополнительный)

Определяет, какой метод проверки геометрии будет использоваться для выявления ошибок геометрии.

  • ESRIБудет применен метод проверки геометрии Esri. Это значение по умолчанию
  • OGCБудет использоваться метод проверки геометрии OGC.
String

Пример кода

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
import os

# The geodatabase in which the feature classes will be checked
arcpy.env.workspace = "C:\\data\\St_Lucia.gdb"
out_table = "checkGeometryResult"
 
# A variable that will hold the list of all the feature classes 
# in the geodatabase
fc_list = []

# Identify all feature classes in the geodatabase
for path, dirnames, fcs in arcpy.da.Walk(arcpy.env.workspace, 
                                         datatype='FeatureClass'):
    for fc in fcs:
        fc_list.append(os.path.join(path, fc))
        
print("Running the check geometry tool on {} feature classes".format(
    len(fc_list)))
arcpy.CheckGeometry_management(fc_list, out_table)

print("{} geometry problems found, see {} for details.".format(
    arcpy.GetCount_management(out_table)[0], out_table))

Информация о лицензиях

  • Basic: Ограниченные
  • Standard: Да
  • Advanced: Да

Связанные разделы