Краткая информация
Выявляет аномальные результаты измерения высоты в terrain, TIN или наборах данных LAS, выходящие за пределы установленного диапазона значений высот или имеющие характеристики уклонов, идущие вразрез с окружающей поверхностью.
Использование
-
Для обнаружения выбросов можно использовать как опцию Применить жесткое ограничение, так и опцию Применить фильтр сравнения.
Когда диапазон корректных значений высот региона известен, можно использовать опцию Применить жесткое ограничение. Выходными данными станут измерения высот точек, выходящие за пределы диапазона, заданного значениями Абсолютным минимумом Z и Абсолютным максимумом Z.
Рассмотрите возможность использования опции Применить фильтр сравнения для нахождения точек данных, в которых отличие по высоте или уклону от соседних местоположений превышает определенный уровень. Для каждой точки проводится проверка уклона и высоты по сравнению с ее естественной окрестностью. Опция Превышение допустимого отношения используется для определения числа точек в окрестности проверяемой точки, для которых допуск уклона и высоты должен быть выше допустимого, чтобы они считались выбросами.
- Для любой заданной точки, имеющей X число узлов, соединенных ребрами треугольников, если уклон из нее до связанной точки превышает Допуск уклона в m точках (где m равно n, умноженному на Превышение допустимого отношения), такая точка записывается в выходные данные.
Параметр Окончание выброса ограничивает число точек, которые могут быть записаны в выходные данные. После достижения этого лимита, инструмент возвращает предупреждающее сообщение и останавливает работу.
К выходным точкам добавляется атрибут в виде целочисленного поля REASON, значения которого определяют критерий идентификации выброса, полученный при обработке измерения точки.
- 0 – жесткое ограничение
- 1 – жесткое ограничение и фильтр сравнения
- 2 – фильтр сравнения
Чтобы исключить точки выбросов из набора данных Terrain, используйте инструмент Удалить точки Terrain для точек выбросов, заданных параметром Область интереса.
Для переклассификации точек выбросов, идентифицированных в наборе данных LAS в качестве шума, можно использовать инструмент Задать коды класса LAS с помощью объектов (Set LAS Class Codes Using Features).
Синтаксис
LocateOutliers_3d (in_surface, out_feature_class, {apply_hard_limit}, {absolute_z_min}, {absolute_z_max}, {apply_comparison_filter}, {z_tolerance}, {slope_tolerance}, {exceed_tolerance_ratio}, {outlier_cap})
Параметр | Объяснение | Тип данных |
in_surface | Terrain, TIN или набор данных LAS, которые будут проанализированы. | LAS Dataset Layer; Terrain Layer; TIN Layer |
out_feature_class | Класс объектов, который будет получен в результате работы инструмента. | Feature Class |
apply_hard_limit (Дополнительный) | Определяет использование абсолютных минимума и максимума Z для поиска выбросов.
| Boolean |
absolute_z_min (Дополнительный) | Если используется жесткое ограничение, любая точка с высотой ниже этого значения, рассматривается как выброс. Значение по умолчанию равно 0. | Double |
absolute_z_max (Дополнительный) | Если используется жесткое ограничение, любая точка с высотой выше этого значения рассматривается как выброс. Значение по умолчанию равно 0. | Double |
apply_comparison_filter (Дополнительный) | Фильтр сравнения состоит из трех параметров для определения выбросов (z_tolerance, slope_tolerance и exceed_tolerance_ratio).
| Boolean |
z_tolerance (Дополнительный) | Используется для сравнения Z значений соседних точек, если включен фильтр. Значение по умолчанию равно 0. | Double |
slope_tolerance (Дополнительный) | Пороговое значение колебания уклона между идущими друг за другом точками, которое будет использоваться для определения точек выбросов. Уклон выражается в процентах, значением по умолчанию является 150. | Double |
exceed_tolerance_ratio (Дополнительный) | Задает критерии определения каждой точки выброса как функцию соотношения точек в естественной окрестности, значения которых должны превышать заданные фильтры сравнения. Например, число 0.5, используемое по умолчанию, означает, что по крайней мере половина точек, окружающих запрашиваемую точку, должна иметь значения, превышающие фильтры сравнения, только тогда запрашиваемая точка будет помечена как выброс. Число 0.7 означает, что 70 процентов точек должно превышать допуски. | Double |
outlier_cap (Дополнительный) | Максимальное количество точек выбросов, которые могут быть записаны в выходные данные. При достижении этого значения поиск других выбросов прекращается. Значение по умолчанию равно 2,500. | Long |
Пример кода
LocateOutliers Пример 1 (окно Python)
В следующем примере показано использование этого инструмента в окне Python.
import arcpy
from arcpy import env
arcpy.CheckOutExtension("3D")
env.workspace = "C:/data"
arcpy.LocateOutliers_3d("tin", "outliers.shp", "NO_APPLY_HARD_LIMIT", 0, 0,
"APPLY_COMPARISON_FILTER", 0, 150, 0.5, 2500)
LocateOutliers, пример 2 (автономный скрипт)
В следующем примере показано использование этого инструмента в автономном скрипте Python.
'''**********************************************************************
Name: Delete Terrain Outliers
Description: Uses Locate Outliers to identify outlier points in
a terrain dataset, and eliminates the outliers from the
terrain with Delete Terrain Points.
**********************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
from arcpy import env
try:
arcpy.CheckOutExtension('3D')
# Set Local Variables
env.workspace = 'C:/data'
terrain = 'test.gdb/featuredataset/sample_terrain'
terrainPt = 'elevation_pts' # name of terrain point data source
outliers = 'in_memory/outliers'
# Execute LocateOutliers
arcpy.ddd.LocateOutliers(terrain, outliers, 'APPLY_HARD_LIMIT', -10,
350, 'APPLY_COMPARISON_FILTER', 1.2, 120,
0.8, 8000)
# Execute Delete Terrain Points
arcpy.ddd.DeleteTerrainPoints(terrain, terrainPt, outliers)
arcpy.CheckInExtension('3D')
except arcpy.ExecuteError:
print arcpy.GetMessages()
except:
# Get the traceback object
tb = sys.exc_info()[2]
tbinfo = traceback.format_tb(tb)[0]
# Concatenate error information into message string
pymsg = 'PYTHON ERRORS:\nTraceback info:\n{0}\nError Info:\n{1}'\
.format(tbinfo, str(sys.exc_info()[1]))
msgs = 'ArcPy ERRORS:\n {0}\n'.format(arcpy.GetMessages(2))
# Return python error messages for script tool or Python Window
arcpy.AddError(pymsg)
arcpy.AddError(msgs)
Параметры среды
Информация о лицензиях
- ArcGIS Desktop Basic: Требует 3D Analyst
- ArcGIS Desktop Standard: Требует 3D Analyst
- ArcGIS Desktop Advanced: Требует 3D Analyst