Извлечь LAS (3D Analyst)

Сводка

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

Иллюстрация

Извлечь 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
(Дополнительный)

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

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

Текст, который будет присоединен к имени каждого выходного файла LAS. Каждый файл сохраняет базовое имя из источника, к которому присоединяется суффикс, заданный этим параметром.

String
remove_vlr
(Дополнительный)

Каждый файл LAS может содержать набор записей переменной длины (VLR), добавленных программным обеспечением, создавшим его. Значение этих записей обычно известно только исходному программному обеспечению. Пока выходные данные LAS не будут обрабатываться в приложении, понимающем эту информацию, сохранение записей переменной длины не может обеспечить какие-либо дополнительные функциональные возможности. Удаление записей переменной длины может сэкономить значительное место на диске в зависимости от их общего размера и количества файлов, их содержащих.

  • MAINTAIN_VLRЛюбые данные, сохраненные в записях переменной длины обработанного файла LAS будут сохранены в извлеченных файлах LAS. Используется по умолчанию.
  • REMOVE_VLRДополнительные записи переменной длины будут удаляться из файлов LAS.
Boolean
rearrange_points
(Дополнительный)

Задает необходимость изменения порядка точек в файлах LAS.

  • MAINTAIN_POINTSПорядок точек в файлах LAS не изменяется.
  • REARRANGE_POINTSПорядок точек в файлах LAS будет изменен. Используется по умолчанию.
Boolean
compute_stats
(Дополнительный)

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

  • COMPUTE_STATSСтатистика будет рассчитана.
  • NO_COMPUTE_STATSСтатистика не будет рассчитана. Используется по умолчанию.
Boolean
out_las_dataset
(Дополнительный)

Выходной набор данных LAS, ссылающийся на вновь созданные файлы LAS.

LAS Dataset
compression
(Дополнительный)

Указывает, будет ли выходной файл LAS в сжатом формате или в обычном формате LAS.

  • SAME_AS_INPUTСжатие соответствует сжатию входного файла. Это значение по умолчанию.
  • NO_COMPRESSIONВыходной файл будет в обычном формате LAS (*.las).
  • ZLASВыходные файлы LAS будут в сжатом формате ZLAS.
String

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

NameОбъяснениеТип данных
out_folder

Папка, в которую будут записаны файлы LAS.

Папка

Пример кода

ExtractLas, пример 1 (окно Python)

В следующем примере показано использование этого инструмента в окне 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')
ExtractLas, пример 2 (автономный скрипт)

В следующем примере показано использование этого инструмента в автономном скрипте 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())

Информация о лицензиях

  • Basic: Требуется 3D Analyst
  • Standard: Требуется 3D Analyst
  • Advanced: Требуется 3D Analyst

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