Настройка Кодов классов LAS (LAS Class Codes) с помощью объектов (3D Analyst)
Резюме
Классифицирует точки данных, содержащиеся в LAS-файлах и связанные с набором данных LAS, с помощью точечных, линейных и полигональных объектов.
Использование
Точки LAS могут быть разделены на несколько категорий, описывающих материал, полученный после возвращения лидара, например, земля, здание или вода. Американское общество фотограмметрии и дистанционного зондирования (American Society for Photogrammetry and Remote Sensing, ASPRS) утвердило следующие коды классов для версий файлов LAS 1.1, 1.2 и 1.3:
Значение классификации
Тип классификации
0
Классификация не выполнялась
1
Не присвоено
2
Земля
3
Низкорослая растительность
4
Растительность средней высоты
5
Высокая растительность
6
Создание
7
Шум
8
Ключ модели
9
Вода
10
Зарезервировано ASPRS
11
Зарезервировано ASPRS
12
Наложение
13–31
Зарезервировано ASPRS
Примечание:Хотя спецификации LAS 1.0 содержат коды классов в диапазоне от 0 до 255, они не имеют стандартизованной схемы классификации. Любые коды классификации, используемые в файлах версии 1.0, будут в большинстве случаев определяться поставщиком данных и предоставляться через вспомогательную информацию.
Слой набора данных LAS можно использовать для фильтрации точек LAS по коду класса или возвращаемым значениям. Слой можно создать с помощью инструмента Создать слой набора данных LAS (Make LAS Dataset Layer) или загрузив набор данных LAS в ArcMap или ArcScene и указав нужные коды классов и возвращаемые значения в диалоговом окне свойств слоя.
Точки данных LAS, попадающие в двухмерную область буфера, заданного для входных объектов, будут классифицированы.
-
Чтобы классифицировать точки LAS как Шум (Noise), можно использовать точки, полученные в результате выполнения функции Определить местоположение выбросов (Locate Outliers).
Синтаксис
Параметр | Объяснение | Тип данных |
in_las_dataset |
Входной набор данных LAS. | LAS Dataset Layer |
feature_class [[features, buffer_distance, new_class, synthetic, key_point, withheld],...] |
Укажите один или более классов объектов, с помощью которых будут определяться значения кодов классов лидарных файлов, связанных с набором данных LAS. Для каждого объекта можно будет задать следующие опции:
| Value Table |
compute_stats (дополнительно) | Определяет, следует ли вычислять статистику для файлов LAS, на которые ссылается набор данных LAS. Наличие статистики позволяет использовать опции фильтрации и символов для слоя набора данных LAS, чтобы показывать только атрибутивные значения LAS, существующие в файлах LAS.
| Boolean |
Пример кода
В следующем примере показано использование этого инструмента в окне Python:
import arcpy
from arcpy import env
arcpy.CheckOutExtension('3D')
env.workspace = 'C:/data'
arcpy.SetLasClassCodesUsingFeatures_3d("test.lasd", [["lake.shp 0 9"],
["outliers.shp", 5, "NO_CHANGE",
"NO_CHANGE", "NO_CHANGE", "SET"]],
"COMPUTE_STATS")
В следующем примере показано использование этого инструмента в автономном скрипте Python:
'''**********************************************************************
Name: Assign Withheld Classification Flag to Outlier Points in LAS Files
Description: Uses Locate Outliers to identify points in LAS files that
should be assigned the 'withheld' classification flag.
Designed for use as a script tool.
**********************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
try:
arcpy.CheckOutExtension('3D')
# Set Local Variables
lasD = arcpy.GetParameterAsText(0)
outliers = 'in_memory/outliers'
# Execute LocateOutliers
arcpy.ddd.LocateOutliers(lasD, outliers, 'APPLY_HARD_LIMIT', -10,
350, 'APPLY_COMPARISON_FILTER', 1.2, 120,
0.8, 8000)
# Execute SetLasClassCodeUsingFeatures
arcpy.ddd.SetLasClassCodesUsingFeatures(lasd, [["outliers.shp", 5,
"NO_CHANGE", "NO_CHANGE",
"NO_CHANGE", "SET"]])
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)