Сводка
Идентифицирует аномальные измерения высот в TIN или наборах данных LAS, превышающие определенный диапазон значений высот или имеющие характеристики уклона, несоответствующие окружающей поверхности.
Использование
-
Для обнаружения выбросов можно использовать как опцию Применить жесткое ограничение, так и опцию Применить фильтр сравнения. Если используются обе опции, сначала применяется жесткое ограничение.
Опция Применить жесткое ограничение будет относить в выбросам любую точку, значение высоты которой ниже Абсолютного минимума z и выше Абсолютного максимума z. Используйте эту опцию, когда диапазон корректных значений высот региона известен.
Рассмотрите возможность использования опции Применить фильтр сравнения для нахождения точек данных, в которых отличие по высоте или уклону от соседних местоположений превышает определенный уровень. Для каждого измерения поверхности проводится проверка отклонения уклона и высоты по сравнению с ее естественной окрестностью. Опция Превышение допустимого отношения используется для определения числа точек в окрестности проверяемой точки, для которых допуск уклона и высоты должен быть выше допустимого, чтобы они считались выбросами.
- Если уклон любой заданной точки, имеющей X узлов, соединенных ребрами треугольников, до связанной точки превышает Допуск уклона в m точках (где m равно n, умноженному на Превышение допустимого отношения), такая точка считается выбросом значений.
Фильтр сравнения наилучшим образом подходит для точек земной поверхности. Его нельзя применять для данных растительности или строений, т.к. сравнение отнесет множество из этих объектов к выбросам. При использовании этого метода выявления выбросов для наборов данных LAS примените фильтрацию для выбора точек, классифицированных как земля. В качестве альтернативы рассмотрите использование инструмента Классифицировать шум LAS, чтобы определить точки шума в наборе данных LAS.
К выходным точкам добавляется атрибут в виде целочисленного поля REASON, значения которого определяют критерий идентификации выброса, полученный при обработке измерения точки.
- 0 – жесткое ограничение
- 1 – жесткое ограничение и фильтр сравнения
- 2 – фильтр сравнения
Чтобы исключить точки выбросов из набора данных Terrain, используйте инструмент Удалить точки Terrain для точек выбросов, заданных параметром Область интереса.
Синтаксис
arcpy.ddd.LocateOutliers(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)
Параметры среды
Информация о лицензиях
- Basic: Требуется 3D Analyst
- Standard: Требуется 3D Analyst
- Advanced: Требуется 3D Analyst