Классифицировать шум LAS (3D Analyst)

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

Классифицирует точки LAS с аномальными пространственными характеристиками как шум.

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

  • Точки шума в отраженных сигналах LAS обычно оказывают негативное влияние на визуализацию и анализ данных. Например, отраженные сигналы от высоко летящих птиц и рассеянных импульсов, которые столкнулись с облачным покровом, дымкой смога, водными объектами и отражающими зеркалами, может исказить z-диапазон точек, окружающих это местоположение. Определение таких точек, как шум, позволит отфильтровать их из отображения и исключить из любых производных данных, таких как поверхность рельефа, профиль уклона или экспозиции.

  • Метод Изоляция обработает данные LAS и переведет в разделенные на листы бины 3 на 3 на основе области, указанной в параметрах Ширина окрестности и Высота окрестности. Если число точек LAS в анализируемом массиве меньше, чем значение параметра Предел количества точек окрестности, то точки LAS будут признаны как шум. Ограничение количества точек должно отражать достаточно точную аппроксимацию на основании плотности точек лидара и количества точек LAS, которое ожидается в анализируемом объеме.

  • Если в некоторых отраженных сигналах LAS имеются аномально высокие или низкие z-значения для области, захваченной лидарной съемкой, рассмотрите возможность использования метода Абсолютная высота для определения предела z-значений данных, чтобы быстро идентифицировать точки выбросов как шум.

  • Если точки LAS имеют аномально высокие или низкие z-значения для определенных регионов, но эти значения попадают в диапазон допустимых измерений, захваченных в лидарной съемке, рассмотрите возможность использования метода Относительная высота для определения предельного z-значения допустимых данных на основе смещения от поверхности Земли. Для построения поверхности Земли отфильтруйте набор данных LAS по классифицированным точкам поверхности Земли и примените инструмент Набор данных LAS в растр.

  • Будут переклассифицированы только точки LAS со значениями кода класса 0 или 1. Если неклассифицированные точки представлены каким-то другим значением, примените инструмент Изменить коды классов LAS, чтобы назначить неклассифицированным точкам значение 1. Когда точки шума классифицируются и применяется метод Изоляция или Абсолютная высота, всем точкам шума будет назначено значение кода класса 7. Если применен метод Относительная высота, точки шума ниже порогового значения Минимальной высоты получат значение 7, представляющее низкий шум, а точки шума выше порогового значения Максимальной высоты получат значение 18, представляющее высокий шум.

  • Если вы не знаете, какие параметры использовать для определения точек шума, рассмотрите возможность экспорта точек LAS, определенных как шум, в точечный объект при отключенной опции изменения кодов классификации LAS. Если выходные точки соответствуют ожидаемым результатам, вы можете выполнить переклассификацию точек LAS, используя эти объекты с помощью инструмента Расположить точки LAS по близости.

  • Метод Изоляция выполняется с высокой производительностью, и работает ещё быстрее, если заданы большие размеры бинов. Укажите максимальный допустимый размер бинов в зависимости от природы и распределения данных для наилучшей производительности.

Параметры

ПодписьОписаниеТип данных
Входной набор данных LAS

Обрабатываемый набор данных LAS.

LAS Dataset Layer
Метод

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

  • Изоляция —Пространственная близость точек LAS будет проанализирована в объеме каждого листа для выявления шума в измерениях наряду с обнаружением шума по высоте. Это значение по умолчанию
  • Относительная высота от поверхности Земли —Все точки ниже указанной минимальной высоты и выше максимальной высоты, измеряемых от поверхности Земли, будут идентифицированы как шум.
  • Абсолютная высота —Все точки ниже указанной минимальной высоты и выше максимальной высоты по отношению к среднему уровню моря будут определены как шум.
String
Редактировать классификацию

Указывает, будут ли переклассифицироваться точки LAS, идентифицированные как шум.

  • Отмечено – точки шума будут отображаться. Это значение по умолчанию
  • Не отмечено – точки шума не будут отображаться.
Boolean
Назначить флаг Исключенная

Указывает будет ли назначаться точкам шума флаг классификации Исключенная. Эта опция работает, только если включен параметр Редактировать классификацию.

  • Отмечено — точкам шума будет назначаться флаг классификации Исключенная.
  • Не отмечено — точкам шума не будет назначаться флаг классификации Исключенная. Это значение по умолчанию
Boolean
Вычислить статистику
(Дополнительный)

Определяет, будет ли вычисляться статистика для файлов .las, на которые ссылается набор данных LAS. Вычисление статистики определяет пространственный индекс для каждого файла .las, что улучшает производительность анализа и отображения. Статистика также улучшает фильтрацию и символы, ограничивая отображение таких атрибутов LAS, как коды классификации и возвращаемая информация, значениями, которые присутствуют в файле .las.

  • Отмечено – статистика будет рассчитана. Это значение по умолчанию
  • Не отмечено – статистика не будет рассчитана.
Boolean
Земля

Поверхность Земли, используемая для определения относительной высоты.

Raster Layer
Минимальная высота

Высота, определяющая наименьший предел z-значения для определения точек шума. Любые точки ниже указанного значения будут классифицированы как шум. Если задана поверхность Земли, то этот предел будет основан на смещении от поверхности Земли таким образом, что значение -3 фута означает, что любые точки, которые находятся на 3 фута ниже поверхности Земли, будут классифицироваться как шум.

Linear Unit
Максимальная высота

Высота, определяющая самое высокое пороговое z-значение для определения точек шума. Любые точки выше указанного значения будут классифицированы как шум. Если поверхность Земли задана, этот предел будет основан на смещении от поверхности Земли таким образом, что значение 250 метров означает, что любые точки, которые выше 250 метров над поверхностью Земли, будут классифицироваться как шум.

Linear Unit
Ограничение точек окрестности

Максимальное количество точек внутри анализируемого объема данных, которые можно квалифицировать как шум при использовании метода Изоляция. Если анализируемый объем содержит любое количество точек LAS, которое меньше или равно данному значению, эти точки будут классифицированы как шум.

Long
Ширина окрестности

Размер каждого измерения в пространстве XY анализируемого объема данных при использовании метода Изоляция.

Linear Unit
Высота окрестности

Высота анализируемого объема при использовании метода Изоляция.

Linear Unit
Экстент обработки
(Дополнительный)

Экстент данных, который будет оцениваться.

  • По умолчанию – экстент основывается на максимальном экстенте всех задействованных слоев. Это значение по умолчанию.
  • Объединение входных данных – экстент будет основан на максимальном экстенте всех входных сцен.
  • Пересечение входных данных – экстент будет основан на минимальной области, являющейся общей для всех входных сцен.
  • Экстент текущего отображения – экстент будет равен видимому отображению. Опция недоступна, если нет активной карты.
  • Как указано ниже – экстент будет основан на указанных минимальном и максимальном значениях экстента.
  • Найти—экстент будет основан на существующем наборе данных.
Extent
Обрабатывать все файлы LAS, пересекающие экстент
(Дополнительный)

Указывает, как область интереса будет использоваться для определения того, как будут обработаны файлы .las. Область интереса определяется значениями параметра Экстентом обработки, Граница обработки или сочетанием того и другого.

  • Не отмечено – будут обработаны только те точки LAS, что пересекают область интереса. Это значение по умолчанию
  • Отмечено – если какая-либо часть файла .las пересекает область интереса, будут обработаны все точки файла .las, включая те, что находятся вне области интереса.
Boolean
Выходные точки шума
(Дополнительный)

Выходные точечные объекты, представляющие точки LAS, идентифицированные как шум.

Feature Class
Обновить пирамидные слои
(Дополнительный)

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

  • Отмечено - пирамидные слои для набора данных LAS будут обновлены. Это значение по умолчанию
  • Не отмечено - пирамидные слои для набора данных LAS не будут обновлены.
Boolean

Производные выходные данные

ПодписьОписаниеТип данных
Выходной набор данных LAS

Набор данных LAS, который будет изменен.

LAS Dataset Layer

arcpy.ddd.ClassifyLasNoise(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}, {update_pyramid})
ИмяОписаниеТип данных
in_las_dataset

Обрабатываемый набор данных LAS.

LAS Dataset Layer
method

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

  • ISOLATIONПространственная близость точек LAS будет проанализирована в объеме каждого листа для выявления шума в измерениях наряду с обнаружением шума по высоте. Это значение по умолчанию
  • RELATIVE_HEIGHTВсе точки ниже указанной минимальной высоты и выше максимальной высоты, измеряемых от поверхности Земли, будут идентифицированы как шум.
  • ABSOLUTE_HEIGHTВсе точки ниже указанной минимальной высоты и выше максимальной высоты по отношению к среднему уровню моря будут определены как шум.
String
edit_las

Указывает, будут ли переклассифицироваться точки LAS, идентифицированные как шум.

  • CLASSIFYТочки шума будут заново классифицироваться. Это значение по умолчанию
  • NO_CLASSIFYТочки шума не будут классифицироваться.
Boolean
withheld

Указывает будет ли назначаться точкам шума флаг классификации Исключенная. Эта опция работает, только если параметр edit_las задан как CLASSIFY.

  • WITHHELDТочкам шума будет назначен флаг классификации Исключенная.
  • NO_WITHHELDТочкам шума не будет назначен флаг классификации Исключенная. Это значение по умолчанию
Boolean
compute_stats
(Дополнительный)

Определяет, будет ли вычисляться статистика для файлов .las, на которые ссылается набор данных LAS. Вычисление статистики определяет пространственный индекс для каждого файла .las, что улучшает производительность анализа и отображения. Статистика также улучшает фильтрацию и символы, ограничивая отображение таких атрибутов LAS, как коды классификации и возвращаемая информация, значениями, которые присутствуют в файле .las.

  • COMPUTE_STATSСтатистика будет рассчитана. Это значение по умолчанию
  • NO_COMPUTE_STATSСтатистика не будет рассчитана.
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
(Дополнительный)

Экстент данных, который будет оцениваться.

  • MAXOF - будет использоваться максимальный экстент всех входных данных.
  • MINOF - будет использоваться минимальная область, общая для всех входных данных.
  • DISPLAY– экстент будет равен видимому отображению.
  • Имя слоя - будет использоваться тот же экстент, что и в указанном слое.
  • Объект Extent - будет использоваться тот же экстент, что и в указанном объекте.
  • Строка координат, разделенных пробелами – будет использоваться экстент из заданной строки. Координаты должны быть выражены в таком порядке: x-min, y-min, x-max, y-max.
Extent
process_entire_files
(Дополнительный)

Указывает, как применяется экстент обработки.

  • PROCESS_EXTENTБудут обработаны только те точки LAS, что пересекают область интереса. Это значение по умолчанию
  • PROCESS_ENTIRE_FILESЕсли какая-либо часть файла .las пересекает область интереса, будут обработаны все точки файла .las, включая те, что находятся вне области интереса.
Boolean
out_feature_class
(Дополнительный)

Выходные точечные объекты, представляющие точки LAS, идентифицированные как шум.

Feature Class
update_pyramid
(Дополнительный)

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

  • UPDATE_PYRAMIDПирамидные слои для набора данных LAS будут обновлены. Это значение по умолчанию
  • NO_UPDATE_PYRAMIDПирамидные слои для набора данных LAS не будут обновлены.
Boolean

Производные выходные данные

ИмяОписаниеТип данных
out_las_dataset

Набор данных LAS, который будет изменен.

LAS Dataset Layer

Пример кода

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())

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