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

Краткая информация

Создает файлы LAS из данных облака точек в наборе данных LAS или слое облака точек сцены.

Иллюстрация

Иллюстрация инструмента Извлечь LAS

Использование

  • Этот инструмент создает файлы .las или .zlas из набора данных LAS, файла облака точек .slpk или сервиса слоев сцены облака точек I3S. Если входными данными является набор данных LAS, то для каждого файла .las или .zlas, на который ссылается набор данных LAS, будет создан один выходной файл. Если входными данными является слой сцены облака точек, количество выходных файлов будет варьироваться в зависимости от количества извлекаемых точек. Размер каждого выходного файла ограничен примерно 16,8 миллионами точек. Некоторые файлы могут превышать этот порог или иметь меньшее количество точек.

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

  • Если входными данными является набор данных LAS, результирующая версия LAS-файла и формат записи точек на выходе будут соответствовать исходному файлу. Если входными данными является сервис слоя сцены облака точек I3S или файл .slpk, выходные данные будут созданы в виде файла LAS версии 1.4, но формат записи точек будет зависеть от атрибутов исходного облака точек следующим образом:

    • Формат точек 6 будет использоваться, если входные данные не содержат значений RGB или ближнего инфракрасного диапазона.
    • Формат точек 7 будет использоваться, если входные данные содержат значения RGB, но не имеют значений в ближнем инфракрасном диапазоне.
    • Формат точек 8 будет использоваться, если входные данные содержат значения RGB и ближнего инфракрасного диапазона.

    Чтобы использовать другую версию LAS-файла и формат записи точек, сгенерируйте их, обработав выходные файлы из этого инструмента с помощью инструмента Конвертировать LAS.

  • Пространственная привязка файла .las обычно определяется в самом файле. Если эта информация отсутствует или неверна, пространственную привязку LAS-файла может определить вспомогательный файл .prj. Файл .prj должен находиться в том же местоположении, что и файл .las, и иметь то же имя, что и файл .las. При наличии файла .prj хранящаяся в нем информация о пространственной привязке будет замещать информацию, заданную в файле .las. Вы можете создавать файлы .prj для файлов .las с утерянной или некорректной информацией о пространственной привязке при помощи инструмента Определить проекцию для отдельного файла .las или .zlas или инструмента Создать набор данных LAS через параметр Создать PRJ для файлов LAS.

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

  • Обычно записи точек LAS не хранятся в файле .las в виде бинарной последовательности, которая не соответствует пространственной кластеризации точек. Когда происходит запрос к данным с таким распределением, в результате доступ к бинарным записям, представляющим точки LAS будет не эффективным. Переорганизация точек в полученном файле .las оптимизирует данные для визуализации и выполнения других пространственных операций. Если включена опция переорганизации автоматически будет вычисляться статистика. Если вы не будете заново организовывать точки LAS, то вы можете включить или отключить расчет статистики. Расчет статистики оптимизирует пространственные запросы и предоставляет сводную информацию о кодах класса, а также возвращает значения, которые представлены в файле .las. Но это также добавляет некоторое время на выполнение инструмента. Если полученные в результате файлы .las не будут использоваться в ArcGIS, вы можете отключить расчет статистики, чтобы инструмент работал быстрее.

  • Вы можете использовать параметр Границы вырезания для обрезки входного облака точек по нерегулярной форме. Этот параметр поддерживает полигональную границу, которая определяет непрерывную изучаемую область, например, один полигональный объект, охватывающий относительно большую территорию. Хотя в качестве входных данных можно использовать несколько полигонов, представляющих соседние области интереса, объект границы не поддерживает полигоны, представляющие большое количество небольших объектов, таких как деревья или здания. Несколько полигонов объединяются для эффективной обрезки входного облака точек. Из-за этого избегайте задания объекта границы с большим количеством маленьких полигонов, что приведет к снижению производительности.

Параметры

ПодписьОписаниеТип данных
Входное облако точек

Набор данных LAS, пакет (файл .slpk) слоя сцены облака точек или облачный сервис I3S, которые будут извлечены. Для обработки в облачном сервисе I3S должно быть включено свойство экспорта.

LAS Dataset Layer; Scene Layer; File
Целевая папка

Существующая папка, в которую будут записаны выходные файлы .las.

Folder
Экстент обработки
(Дополнительный)

Экстент данных, который будет оцениваться.

  • Текущий экстент отображения Вид карты — Экстент будет основан на активной карте или сцене.
  • Нарисовать экстент Закончить прямым углом - экстент будет основан прямоугольнике, нарисованном на карте или сцене.
  • Экстент слоя Слой — Экстент будет основан на активном слое карты. Выберите доступный слой или воспользуйтесь опцией Экстент данных во всех слоях. У каждого слоя карте есть следующие опции:

    • Все объекты Выбрать все - экстент всех объектов.
    • Выбранные объекты Область из выбранных объектов - экстент выбранных объектов.
    • Отображаемые объекты Extent Indicator - экстент отображаемых объектов.

  • Обзор Обзор - экстент будет основан на наборе данных.
  • Пересечение входных данных Пересечение - экстент будет основан на пересекающемся экстенте всех входных данных.
  • Объединение входных данных Объединение - экстент будет комбинацией экстентов всех входных данных.
  • Буфер обмена Вставить - экстент может быть скопирован в буфер обмена и из него.
    • Копировать экстент Копировать - копирует экстент и систему координат в буфер обмена.
    • Вставить экстент Вставить - вставляет экстент и систему координат из буфера обмена. Если буфер обмена не содержат систему координат, экстент будет использовать систему координат карты.
  • Сбросить экстент Сбросить - экстент будет сброшен до значения по умолчанию.

Если координаты заданы вручную, они должны быть числовыми значениями в системе координат активной карты. На карте могут использоваться единицы отображения, отличные от введенных координат. Используйте знак отрицательного значения для координат юга и запада.

Extent
Граница извлечения
(Дополнительный)

Граница полигона, которая будет использоваться для обрезки входного облака точек. Эта граница должна представлять собой основную изучаемую область, которая обычно определяется одним непрерывным полигоном, но она также может состоять из нескольких полигонов, когда представляет общую изучаемую область с соответствующим пространственным разрывом.

Feature Layer
Обрабатывать все файлы LAS, пересекающие экстент
(Дополнительный)

Указывает, как область интереса будет использоваться для определения того, как будут обработаны файлы .las. Область интереса определяется значениями параметра Экстентом обработки, Граница обработки или сочетанием того и другого.

  • Не отмечено – будут обработаны только те точки LAS, что пересекают область интереса. Это значение по умолчанию
  • Отмечено – если какая-либо часть файла .las пересекает область интереса, будут обработаны все точки файла, включая те, что находятся вне области интереса.
Boolean
Суффикс имени выходного файла
(Дополнительный)

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

String
Удалить записи переменной длины
(Дополнительный)

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

  • Не отмечено — записи переменной длины входных файлов .las не удаляются и остаются в выходных файлах. Это значение по умолчанию
  • Отмечено — записи переменной длины входных файлов .las будут удалены из выходных файлов.
Boolean
Изменить порядок точек
(Дополнительный)

Определяет, будут ли переупорядочены точки в файлах .las или .zlas для оптимизации производительности чтения и обновления классификации облака точек.

  • Не отмечено - порядок точек нет будет изменен.
  • Отмечено — точки будут переупорядочены в пространственные кластеры, что оптимизирует чтение данных. Изменение порядка точек может повысить производительность последующих операций, выполняемых в облаке точек. Это значение по умолчанию
Boolean
Вычислить статистику
(Дополнительный)

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

  • Отмечено – статистика будет рассчитана. Это значение по умолчанию
  • Не отмечено – статистика не будет рассчитана.
Boolean
Выходной набор данных LAS
(Дополнительный)

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

LAS Dataset
Сжатие
(Дополнительный)

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

  • Как у входных данныхСжатие соответствует сжатию входного файла. Эта опция доступна только в том случае, если входными данными является набор данных LAS, и в этом случае он используется по умолчанию.
  • Нет сжатияВыходные данные будут в стандартном формате LAS (файл *.las). Это значение используется по умолчанию, когда входными данными является слой сцены облака точек.
  • Сжатие zLASВыходные файлы .las будут сжаты в формат zLAS.
String

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

ПодписьОписаниеТип данных
Выходная папка

Папка, куда будут записаны файлы .las.

Folder

arcpy.ddd.ExtractLas(in_las_dataset, target_folder, {extent}, {boundary}, {process_entire_files}, {name_suffix}, {remove_vlr}, {rearrange_points}, {compute_stats}, {out_las_dataset}, {compression})
ИмяОписаниеТип данных
in_las_dataset

Набор данных LAS, пакет (файл .slpk) слоя сцены облака точек или облачный сервис I3S, которые будут извлечены. Для обработки в облачном сервисе I3S должно быть включено свойство экспорта.

LAS Dataset Layer; Scene Layer; File
target_folder

Существующая папка, в которую будут записаны выходные файлы .las.

Folder
extent
(Дополнительный)

Экстент данных, который будет оцениваться.

  • MAXOF – Будет использоваться максимальный экстент всех входных данных.
  • MINOF – Будет использоваться минимальная область, которая является общей для всех входных данных.
  • DISPLAY — Экстент равен видимому отображению.
  • Имя слоя - будет использоваться тот же экстент, что и в указанном слое.
  • Объект Extent — будет использоваться экстент указанного объекта.
  • Строка координат, разделенных пробелами – будет использоваться экстент из заданной строки. Координаты должны быть выражены в таком порядке: x-min, y-min, x-max, y-max.
Extent
boundary
(Дополнительный)

Граница полигона, которая будет использоваться для обрезки входного облака точек. Эта граница должна представлять собой основную изучаемую область, которая обычно определяется одним непрерывным полигоном, но она также может состоять из нескольких полигонов, когда представляет общую изучаемую область с соответствующим пространственным разрывом.

Feature Layer
process_entire_files
(Дополнительный)

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

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

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

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

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

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

Определяет, будут ли переупорядочены точки в файлах .las или .zlas для оптимизации производительности чтения и обновления классификации облака точек.

  • MAINTAIN_POINTSПорядок точек нет будет изменен.
  • REARRANGE_POINTSТочки будут переупорядочены в пространственные кластеры, что оптимизирует чтение данных. Изменение порядка точек может повысить производительность последующих операций, выполняемых в облаке точек. Это значение по умолчанию
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Сжатие соответствует сжатию входного файла. Эта опция доступна только в том случае, если входными данными является набор данных LAS, и в этом случае он используется по умолчанию.
  • NO_COMPRESSIONВыходные данные будут в стандартном формате LAS (файл *.las). Это значение используется по умолчанию, когда входными данными является слой сцены облака точек.
  • ZLASВыходные файлы .las будут сжаты в формат zLAS.
String

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

ИмяОписаниеТип данных
out_folder

Папка, куда будут записаны файлы .las.

Folder

Пример кода

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

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