Сводка
Вычисляет статистику распределения измерений высот точек растительности, захваченных в данные LAS.
Использование
Инструмент генерирует статистические производные точек, расположенных над поверхностью земли, для лучшего понимания лесного полога. Анализируются точки LAS, со значением кода класса 0 или 1, соответствующие не классифицированным точкам, а также 3, 4 и 5, соответствующие точкам растительности.
Обрабатываемые данные LAS должны содержать наземные точки, классифицированные до начала работы инструмента. Для решения этой проблемы может использоваться инструмент Классифицировать поверхность LAS.
Инструмент создает один растр для каждой опции статистики и заданного процента высоты. Имя каждого растра будет начинаться с заданного базового имени и метки высоты или пространственной статистики. Для растра со средними значениями, к имени файла добавляется слово "mean". Для среднеквадратического отклонения, к имени файла добавляется "stdev". Для абсолютного медианного отклонения, к имени файла добавляется "mad".
Используйте параметр Минимальная высота для исключения очень низких точек, особенно, если наземные точки не были точно классифицированы, т.к. это может исказить результаты работы инструмента.
Используйте параметр Минимальное число точек для исключения областей, содержащих слишком малое количество надземных точек, для получения значимых результатов.
Синтаксис
arcpy.3d.LasHeightMetrics(in_las_dataset, out_location, {base_name}, {statistics}, {height_percentiles}, min_height, min_points, cell_size, {raster_format})
Parameter | Объяснение | Тип данных |
in_las_dataset | Обрабатываемый набор данных LAS. | LAS Dataset Layer |
out_location | Папка или база геоданных, где будет находиться выходной набор растровых данных. Если выходным местоположением является папка, наборы растровых данных будут в формате TIFF. | Workspace |
base_name (Дополнительный) | Базовое имя для выходных наборов растровых данных. | String |
statistics [statistics,...] (Дополнительный) | Задает статистику, вычисленную для не классифицированных точек и точек растительности над землей, которые находятся в пределах области каждой ячейки выходного растра.
| String |
height_percentiles [height_percentiles,...] (Дополнительный) | Высота, на которой заданный процент точек в ячейке снижается. Например, 95 показывает, что значения получившихся ячеек обозначают высоту, на которой 95 процентов точек находятся над землей. | Long |
min_height | Минимальная высота над землей для оцениваемых точек. | Linear Unit |
min_points | Минимальное число точек, которое должно присутствовать в данной ячейке для вычисления метрик высот. Ячейки с меньшим числом точек, чем заданный минимум, в выходных данных не будут содержать значений. | Long |
cell_size | Размер ячейки выходного набора растровых данных. | Linear Unit |
raster_format (Дополнительный) | Задает формат растра, который будет создан, если выходным местоположением является папка.
| String |
Производные выходные данные
Name | Объяснение | Тип данных |
derived_out_location | Местоположение выходных наборов растровых данных. | Рабочая область |
output_rasters | Выходные наборы растровых данных. | Набор растровых данных |
Пример кода
В следующем примере показано использование этого инструмента в окне Python.
arcpy.env.workspace = 'C:/data'
arcpy.ClassifyLasBuilding_3d('Highland.lasd', minHeight='9 feet',
minArea='30 Square Feet', compute_stats=True)
В следующем примере показано использование этого инструмента в автономном скрипте Python.
'''****************************************************************************
Name: Tile & Classify LAS Files
Description: Creates & classifies tiled LAS files.
****************************************************************************'''
# Import system modules
import arcpy
import tempfile
import math
in_las = arcpy.GetParameterAsText(1) # The LAS files that need to be tiled
out_folder = arcpy.GetParameterAsText(2) # folder for LAS files
basename = arcpy.GetParameterAsText(3) # basename for output files
out_lasd = arcpy.GetParameterAsText(4) # output LAS dataset
try:
# Create temp LAS dataset to reference LAS files that will be tiled
temp_lasd = arcpy.CreateUniqueName('temp.lasd', tempfile.gettempdir())
arcpy.management.CreateLasDataset(in_las, temp_lasd)
arcpy.ddd.TileLas(temp_lasd, out_folder, basename, out_lasd, las_version=1.4,
point_format=7, file_size=300)
arcpy.management.Delete(temp_lasd)
arcpy.ddd.ClassifyLasGround(out_lasd, method='AGGRESSIVE')
arcpy.ddd.ClassifyLasBuilding(out_lasd, min_height='3 Meters', min_area='4 Meters')
arcpy.ddd.ClassifyLasByHeight(out_lasd, height_classification=[(3, 6), (4,20), (5,70)],
noise='All Noise', compute_stats='COMPUTE_STATS')
except arcpy.ExecuteError:
print(arcpy.GetMessages())
Environments
Информация о лицензиях
- Basic: Требуется 3D Analyst
- Standard: Требуется 3D Analyst
- Advanced: Требуется 3D Analyst