Краткая информация
Классифицирует точки LAS с аномальными пространственными характеристиками как шум.
Использование
Точки шума в LAS обычно оказывают негативное влияние на визуализацию и анализ данных. Например, отраженные сигналы от высоко летящих птиц и рассеянных импульсов, которые столкнулись с облачным покровом, дымкой смога, водными объектами и отражающими зеркалами, может исказить z-диапазон точек, окружающих это местоположение. Определение таких точек, как шум, позволит отфильтровать их из отображения и исключить из любых производных данных, таких как поверхность рельефа, профиль уклона или экспозиции.
Метод Изоляция обработает данные LAS и переведет в разделенные на листы бины 3x3 на основе области, указанной в параметрах Ширина окрестности и Высота окрестности. Если число точек LAS в анализируемом массиве меньше, чем значение параметра Предел количества точек окрестности, то точки LAS будут признаны как шум. Ограничение количества точек должно отражать достаточно точную аппроксимацию на основании плотности точек лидара и количества точек LAS, которое ожидается в анализируемом объеме.
Если в некоторых возвращаемых точках LAS имеются аномально высокие или низкие z-значения для области, захваченной лидарной съемкой, рассмотрите возможность использования метода Абсолютная высота для определения предела z-значений данных, чтобы быстро идентифицировать точки выбросов как шум.
Если точки LAS имеют аномально высокие или низкие z-значения для определенных регионов, но эти значения попадают в диапазон допустимых измерений, захваченных в лидарной съемке, рассмотрите возможность использования метода Относительная высота для определения предельного z-значения допустимых данных на основе смещения от поверхности Земли. Для построения поверхности Земли отфильтруйте набор данных LAS по классифицированным точкам поверхности Земли и примените инструмент Набор данных LAS в растр.
Будут переклассифицированы только точки LAS со значениями кода класса 0 или 1. Если неклассифицированные точки представлены каким-то другим значением, примените инструмент Изменить коды классов LAS, чтобы назначить неклассифицированным точкам значение 1. Когда точки шума классифицируются и применяется метод Изоляция или Абсолютная высота, всем точкам шума будет назначено значение кода класса 7. Если выполняется метод Относительная высота, точки шума, которые ниже предела Минимальная высота получат значение 7, которое означает Низкий шум, а точки выше предельного значения Максимальная высота приобретут значение 18, которым отмечается Высокий шум.
Если вы не знаете, какие параметры использовать для определения точек шума, рассмотрите возможность экспорта точек LAS, определенных как шум, в точечный объект при отключенной опции изменения кодов классификации LAS. Если выходные точки соответствуют ожидаемым результатам, вы можете выполнить переклассификацию точек LAS, используя эти объекты с помощью инструмента Расположить точки LAS по близости.
Метод Изоляция выполняется с высокой производительностью, и работает ещё быстрее, если заданы большие размеры бинов. Укажите самый максимальный допустимый размер бинов в зависимости от природы и распределения данных.
Синтаксис
ClassifyLasNoise_3d (in_las_dataset, method, edit_las, withheld, {compute_stats}, ground, low_z, high_z, max_neighbors, step_width, step_height, {extent}, {process_entire_files}, {out_feature_class})
Параметр | Объяснение | Тип данных |
in_las_dataset | Обрабатываемый набор данных LAS. | LAS Dataset Layer |
method | Метод выявления шума, который будет использоваться.
| String |
edit_las | Указывает, будут ли переклассифицироваться точки LAS, идентифицированные как шум.
| Boolean |
withheld | Указывает, будет ли точкам шума назначен флаг классификации Исключенная. Эта опция работает, только если параметр edit_las задан как CLASSIFY.
| Boolean |
compute_stats (Дополнительный) | Определяет, следует ли вычислять статистику для файлов LAS, на которые ссылается набор данных LAS. Наличие статистики позволяет использовать опции фильтрации и символов для слоя набора данных LAS, чтобы показывать только атрибутивные значения LAS, существующие в файлах LAS.
| Boolean |
ground | Поверхность Земли, используемая для определения относительной высоты. | Raster Layer |
low_z | Высота, определяющая наименьший предел z-значения для определения точек шума. Любые точки ниже указанного значения будут классифицированы как шум. Если задана поверхность Земли, то этот предел будет основан на смещении от поверхности Земли таким образом, что значение "-3 фута" означает, что любые точки, которые находятся на 3 фута ниже поверхности Земли, будут классифицироваться как шум. | Linear Unit |
high_z | Высота, определяющая самое высокое пороговое z-значение для определения точек шума. Любые точки выше указанного значения будут классифицированы как шум. Если поверхность Земли задана, этот предел будет основан на смещении от поверхности Земли таким образом, что значение "250 метров" означает, что любые точки, которые выше 250 метров над поверхностью Земли, будут классифицироваться как шум. | Linear Unit |
max_neighbors | Максимальное количество точек внутри анализируемого объема данных, которые можно квалифицировать как шум при использовании метода Изоляция. Если анализируемый объем содержит любое количество точек LAS, которое меньше или равно данному значению, эти точки будут классифицированы как шум. | Long |
step_width | Размер каждого измерения в пространстве XY анализируемого объема данных при использовании метода Изоляция. | Linear Unit |
step_height | Высота анализируемого объема при использовании метода Изоляция. | Linear Unit |
extent (Дополнительный) | Указывает экстент данных, который будет обработан этим инструментом. | Extent |
process_entire_files (Дополнительный) | Указывает, как применяется экстент обработки.
| Boolean |
out_feature_class (Дополнительный) | Выходные точечные объекты, представляющие точки LAS, идентифицированные как шум. | Feature Class |
Производные выходные данные
Name | Объяснение | Тип данных |
out_las_dataset | Набор данных LAS, который будет изменен. | Слой набора данных LAS |
Пример кода
ClassifyLasNoise, пример 1 (окно Python)
В следующем примере показано использование этого инструмента в окне Python.
arcpy.env.workspace = 'C:/data'
arcpy.ddd.ClassifyLasNoise('Denver_2.lasd', "ABSOLUTE_HEIGHT",
edit_las='CLASSIFY', withheld='WITHHELD',
high_z='450 Feet')
ClassifyLasNoise, пример 2 (автономный скрипт)
В следующем примере показано использование этого инструмента в автономном скрипте Python.
'''****************************************************************************
Name: Classify Lidar & Extract Building Footprints
Description: Extract footprint from lidar points classified as buildings,
regularize its geometry, and calculate the building height.
****************************************************************************'''
import arcpy
lasd = arcpy.GetParameterAsText(0)
dem = arcpy.GetParameterAsText(1)
footprint = arcpy.GetParameterAsText(2)
try:
desc = arcpy.Describe(lasd)
if desc.spatialReference.linearUnitName in ['Foot_US', 'Foot']:
unit = 'Feet'
else:
unit = 'Meters'
ptSpacing = desc.pointSpacing * 2.25
sampling = '{0} {1}'.format(ptSpacing, unit)
# Classify overlap points
arcpy.ddd.ClassifyLASOverlap(lasd, sampling)
# Classify ground points
arcpy.ddd.ClassifyLasGround(lasd)
# Filter for ground points
arcpy.management.MakeLasDatasetLayer(lasd, 'ground', class_code=[2])
# Generate DEM
arcpy.conversion.LasDatasetToRaster('ground', dem, 'ELEVATION',
'BINNING NEAREST NATURAL_NEIGHBOR',
sampling_type='CELLSIZE',
sampling_value=desc.pointSpacing)
# Classify noise points
arcpy.ddd.ClassifyLasNoise(lasd, method='ISOLATION', edit_las='CLASSIFY',
withheld='WITHHELD', ground=dem,
low_z='-2 feet', high_z='300 feet',
max_neighbors=ptSpacing, step_width=ptSpacing,
step_height='10 feet')
# Classify buildings
arcpy.ddd.ClassifyLasBuilding(lasd, '7.5 feet', '80 Square Feet')
#Classify vegetation
arcpy.ddd.ClassifyLasByHeight(lasd, 'GROUND', [8, 20, 55],
compute_stats='COMPUTE_STATS')
# Filter LAS dataset for building points
lasd_layer = 'building points'
arcpy.management.MakeLasDatasetLayer(lasd, lasd_layer, class_code=[6])
# Export raster from lidar using only building points
temp_raster = 'in_memory/bldg_raster'
arcpy.management.LasPointStatsAsRaster(lasd_layer, temp_raster,
'PREDOMINANT_CLASS', 'CELLSIZE', 2.5)
# Convert building raster to polygon
temp_footprint = 'in_memory/footprint'
arcpy.conversion.RasterToPolygon(temp_raster, temp_footprint)
# Regularize building footprints
arcpy.ddd.RegularizeBuildingFootprint(temp_footprint, footprint,
method='RIGHT_ANGLES')
except arcpy.ExecuteError:
print(arcpy.GetMessages())
Параметры среды
Информация о лицензиях
- ArcGIS Desktop Basic: Требует 3D Analyst
- ArcGIS Desktop Standard: Требует 3D Analyst
- ArcGIS Desktop Advanced: Требует 3D Analyst