Краткая информация
Переназначает коды классификации и флаги файлов LAS.
Использование
Все файлы LAS, на которые ссылается набор данных LAS, будут оценены данным инструментом, но изменены будут только те файлы, которые содержат предоставленные коды класса.
Используйте данный инструмент для обновления классификации точек данных в файлах LAS, созданных перед внедрением стандартизированных кодов класса, согласно спецификациям LAS 1.1.
Формат LAS поддерживает классификацию точек на основе спецификаций, разработанных обществом American Society for Photogrammetry and Remote Sensing (ASPRS). На платформе ArcGIS применяется схема классификации, предназначенная для LAS-файлов версии 1.4:
Значение классификации Тип классификации 0
Классификация не выполнялась
1
Не назначено
2
Земля
3
Низкая растительность
4
Средняя растительность
5
Высокая растительность
6
Здание
7
Низкий шум
8
Ключевые для модели / Зарезервировано
9
Вода
10
Железная дорога
11
Дорожное покрытие
12
Наложение / Зарезервировано
13
Проволочное ограждение
14
Провод
15
Опора ЛЭП
16
Изолятор
17
Мостовой настил
18
Высокий шум
19 – 63
Зарезервировано для Определения ASPRS (LAS от 1.1 до 1.3 поддерживают коды классов до 31)
32 – 255
Задается пользователем (поддерживается только в LAS 1.0 и в некоторых версиях 1.4)
Синтаксис
ChangeLasClassCodes_3d (in_las_dataset, class_codes, {compute_stats}, {extent}, boundary, {process_entire_files})
Параметр | Объяснение | Тип данных |
in_las_dataset | Обрабатываемый набор данных LAS. | LAS Dataset Layer |
class_codes [[current_class, new_class],...] | Укажите каждую пару текущего и нового значения кода класса в виде строки, разделенной пробелами, или списка целых значений. Например, текущий код класса 5 может быть изменен на 2 путем указания "5 2" или [5, 2]. Несколько кодов класса могут быть введены в виде строки, разделенной точкой с запятой ("5 2; 8 3; 1 4"), перечня строк (например, [[5, 2], [8, 3], [1, 4]]). | Value Table |
compute_stats (Дополнительный) | Определяет, следует ли вычислять статистику для файлов LAS, на которые ссылается набор данных LAS. Наличие статистики позволяет использовать опции фильтрации и символов для слоя набора данных LAS, чтобы показывать только атрибутивные значения LAS, существующие в файлах LAS.
| Boolean |
extent (Дополнительный) | Указывает экстент данных, который будет обработан этим инструментом. | Extent |
boundary | Полигональный объект, определяющий область интереса, которая будет обрабатываться этим инструментом. | Feature Layer |
process_entire_files (Дополнительный) | Указывает, как применяется экстент обработки.
| Boolean |
Производные выходные данные
Name | Объяснение | Тип данных |
derived_las_dataset |
Пример кода
ChangeLasClassCodes, пример 1 (окно Python)
В следующем примере показано использование этого инструмента в окне Python.
import arcpy
from arcpy import env
arcpy.CheckOutExtension('3D')
env.workspace = 'C:/data'
arcpy.ChangeLasClassCodes_3d('test.lasd', [[5, 2], [3, 1], [4, 6]],
'COMPUTE_STATS')
ChangeLasClassCodes пример 2 (автономный скрипт)
В следующем примере показано использование этого инструмента в автономном скрипте Python.
'''****************************************************************************
Name: Update LAS 1.0 Classification to ASPRS 1.1 Specs
Description: Updates classification of version 1.0 LAS files to conform to
the standardized class codes introduced in the 1.1 specifications.
The code is designed for use as a script tool.
****************************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
# Set Local Variables
inLas = arcpy.GetParameterAsText(0)
recursion = arcpy.GetParameterAsText(1)
lasd = arcpy.GetParameterAsText(2)
reclassList = arcpy.GetParameterAsText(3) #List of values '<oldCode> <newCode>'
calcStats = arcpy.GetParameter(4)
try:
arcpy.CheckOutExtension('3D')
# Execute CreateLasDataset
arcpy.management.CreateLasDataset(inLas, lasd, recursion)
# Execute ChangeLasClassCodes
arcpy.ddd.ChangeLasClassCodes(lasd, reclassList, calcStats)
# Report messages
arcpy.GetMessages()
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