Сводка
Отфильтровывает, вырезает и перепроецирует коллекцию лидарных данных, на которые ссылается набор данных LAS.
Иллюстрация
Использование
-
Для слоя набора данных LAS может быть установлено ограничение количества отображаемых и обрабатываемых точек LAS, путем выбора любой комбинации кодов классификации, флагов классификации и возвращаемых значений в настройках фильтра слоя. Фильтры можно ввести в диалоговом окне Свойства слоя или с помощью инструмента Создать слой набора данных LAS.
Чтобы перепроецировать файлы LAS в другую систему координат, укажите пространственную привязку в настройках параметры среды Система координат выходных данных. Для файлов LAS, которые будут перепроецироваться, должна быть задана пространственная привязка. В случае, когда пространственная привязка содержит вертикальную систему координат, файлы LAS также могут быть перепроицированы в другую вертикальную систему, если установлены гриды преобразований вертикальных датумов и преобразование из исходной системы координат в целевую доступно. Пространственная привязка файла LAS может быть задана в его заголовке или посредством вспомогательного PRJ файла, в котором пространственная привязка задается в стандартном текстовом формате (WKT). Файл PRJ должен находиться в том же месте, что и файл LAS, и иметь то же имя, что и файл LAS. При наличии PRJ файла хранящаяся в нем информация о пространственной привязке будет переопределять информацию, заданную в заголовке файла LAS. Вы можете создать PRJ файлы для файлов LAS с утерянной или некорректной информацией о пространственной привязке при помощи инструмента Определить проекцию для файлов LAS или ZLAS или инструмента Создать набор данных LAS с включенной опцией PRJ.
Обычно записи точек LAS не хранятся в файле LAS в виде бинарной последовательности, которая не соответствует пространственной кластеризации точек. Когда происходит запрос к данным с таким распределением, в результате доступ к бинарным записям, представляющим точки LAS будет не эффективным. Переорганизация точек в полученном файле LAS оптимизирует данные для визуализации и выполнения других пространственных операций. Если включена опция переорганизации автоматически будет вычисляться статистика. Если вы выберите не переорганизовывать точки LAS, то вы можете включить или отключить расчет статистики. Расчет статистики оптимизирует пространственные запросы и предоставляет сводную информацию о кодах класса, а также возвращает значения, которые представлены в файле LAS. Но это также добавляет некоторое время на выполнение инструмента. Если полученные в результате файлы LAS не будут использоваться в ArcGIS, вы можете отключить расчет статистики, чтобы инструмент выполнялся быстрее.
При вырезании файлов LAS, если экстент извлечения задан вместе с границей извлечения, пересечение последних будет определять покрытие извлеченных файлов LAS.
Выходные файлы LAS будут соответствовать версии LAS и формату записи точек во входных данных.
Синтаксис
ExtractLas(in_las_dataset, target_folder, {extent}, {boundary}, {process_entire_files}, {name_suffix}, {remove_vlr}, {rearrange_points}, {compute_stats}, {out_las_dataset}, {compression})
Parameter | Объяснение | Тип данных |
in_las_dataset | Обрабатываемый набор данных LAS. | LAS Dataset Layer |
target_folder | Существующая папка, в которую будут записаны выходные файлы LAS. | Folder |
extent (Дополнительный) | Указывает экстент данных, который будет обработан этим инструментом. | Extent |
boundary (Дополнительный) | Полигональная граница, определяющая область файлов LAS, которая будет вырезана. | Feature Layer |
process_entire_files (Дополнительный) | Указывает, как применяется экстент обработки.
| Boolean |
name_suffix (Дополнительный) | Текст, который будет присоединен к имени каждого выходного файла LAS. Каждый файл сохраняет базовое имя из источника, к которому присоединяется суффикс, заданный этим параметром. | String |
remove_vlr (Дополнительный) | Каждый файл LAS может содержать набор записей переменной длины (VLR), добавленных программным обеспечением, создавшим его. Значение этих записей обычно известно только исходному программному обеспечению. Пока выходные данные LAS не будут обрабатываться в приложении, понимающем эту информацию, сохранение записей переменной длины не может обеспечить какие-либо дополнительные функциональные возможности. Удаление записей переменной длины может сэкономить значительное место на диске в зависимости от их общего размера и количества файлов, их содержащих.
| Boolean |
rearrange_points (Дополнительный) | Задает необходимость изменения порядка точек в файлах LAS.
| Boolean |
compute_stats (Дополнительный) | Определяет, следует ли вычислять статистику для файлов LAS, на которые ссылается набор данных LAS. Вычисление статистики определяет пространственный индекс для каждого файла LAS, что улучшает производительность анализа и отображения. Статистика также улучшает фильтрацию и символы, ограничивая отображение таких атрибутов LAS, как коды классификации и возвращаемая информация, значениями, которые присутствуют в файле LAS.
| Boolean |
out_las_dataset (Дополнительный) | Выходной набор данных LAS, ссылающийся на вновь созданные файлы LAS. | LAS Dataset |
compression (Дополнительный) | Указывает, будет ли выходной файл LAS в сжатом формате или в обычном формате LAS.
| String |
Производные выходные данные
Name | Объяснение | Тип данных |
out_folder | Папка, в которую будут записаны файлы LAS. | Папка |
Пример кода
В следующем примере показано использование этого инструмента в окне Python.
import arcpy
from arcpy import env
env.workspace = 'C:/data'
arcpy.ddd.ExtractLas('test.lasd', 'c:/lidar/subset', boundary='study_area.shp',
name_suffix='subset', remove_vlr=True,
rearrange_points='REARRANGE_POINTS',
out_las_dataset='extracted_lidar.lasd')
В следующем примере показано использование этого инструмента в автономном скрипте Python.
'''****************************************************************************
Name: Split Large LAS File
Description: Divides a large LAS file whose point distribution covers the full
XY extent of the data into smaller files to optimize performance
when reading lidar data.
****************************************************************************'''
# Import system modules
import arcpy
import tempfile
import math
in_las_file = arcpy.GetParameterAsText(0)
tile_width = arcpy.GetParameter(1) # double in LAS file's XY linear unit
tile_height = arcpy.GetParameter(2) # double in LAS file's XY linear unit
out_folder = arcpy.GetParameterAsText(3) # folder for LAS files
out_name_suffix = arcpy.GetParameterAsText(4) # basename for output files
out_lasd = arcpy.GetParameterAsText(5) # output LAS dataset
try:
temp_lasd = arcpy.CreateUniqueName('temp.lasd', tempfile.gettempdir())
arcpy.management.CreateLasDataset(in_las_file, temp_lasd,
compute_stats='COMPUTE_STATS')
desc = arcpy.Describe(temp_lasd)
total_columns = int(math.ceil(desc.extent.width/tile_width))
total_rows = int(math.ceil(desc.extent.height/tile_height))
digits = int(math.log10(max(cols, rows))) + 1
for row in range(1, total_rows+1):
yMin = desc.extent.YMin + tile_height*(row-1)
yMax = desc.extent.YMin + tile_height*(row)
for col in range (1, total_columns+1):
xMin = desc.extent.XMin + tile_width*(col-1)
xMax = desc.extent.XMax + tile_width*(col)
name_suffix = '_{0}_{1}x{2}'.format(out_name_suffix,
str(row).zfill(digits),
str(col).zfill(digits))
arcpy.ddd.ExtractLas(temp_lasd, out_folder,
arcpy.Extent(xMin, yMin, xMax, yMax),
name_suffix=name_suffix,
rearrange_points='REARRANGE_POINTS',
compute_stats='COMPUTE_STATS')
arcpy.env.workspace = out_folder
arcpy.management.CreateLasDataset(arcpy.ListFiles('*{0}*.las'.format(out_name_suffix)),
out_lasd, compute_stats='COMPUTE_STATS',
relative_paths='RELATIVE_PATHS')
except arcpy.ExecuteError:
print(arcpy.GetMessages())
Environments
Информация о лицензиях
- Basic: Требуется 3D Analyst
- Standard: Требуется 3D Analyst
- Advanced: Требуется 3D Analyst