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

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

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

Иллюстрация

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

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

  • Этот инструмент создает файлы .las и .zlas из набора данных LAS, облака точек .slpk или сервиса слоя сцены облака точек I3S. Если входные данные представлены набором данных LAS, выходной файл создается для каждого файла .las или .zlas, ссылающегося на набор данных LAS. Если входные данные представлены слоем облака точек сцены, число выходных файлов зависит от количества извлекаемых точек. Каждый выходной файл имеет ограничения по размеру приблизительно до 16.7 миллионов точек.

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

  • Когда входными данными являются сервис слоя сцены облака точек I3S или файл .slpk, может быть создано несколько выходных файлов. Полученные файлы могут содержать перекрывающиеся экстенты, что может привести к неэффективной обработке данных в определенных ситуациях. Инструмент Лист 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 должно быть включено свойство экспорта.

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

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

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

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

  • Текущий экстент отображения Current Display Extent — Экстент будет основан на активной карте или сцене. Эта опция доступна только при наличии активной карты.
  • Нарисовать экстент Draw Extent - экстент будет основан прямоугольнике, нарисованном на карте или сцене. Эта опция создает класс пространственных объектов в базе геоданных проекта и добавляет слой на карту. Класс объектов будет иметь ту же систему координат, что и карта.
    Примечание:

    Данная опция не доступна в диалоговом окне Параметры среды. Он доступен только из параметра инструмента, с экстентом в качестве типа данных, или на вкладке Параметры среды диалогового окна инструмента.

    Примечание:

    Если включена опция Включать и отключать редактирование на вкладке Редактирование, вы должны включить редактирование на вкладке ленты Редактирование, чтобы нарисовать экстент.

  • Экстент слоя Layer — Экстент будет основан на активном слое карты. Используйте раскрывающийся список, чтобы выбрать доступный слой, или используйте опцию Экстент данных во всех слоях, чтобы получить объединенный экстент всех активных слоев карты, за исключением базовой карты. Эта опция доступна только при наличии активной карты со слоями.

    У каждого слоя карте есть следующие опции:

    • Все объекты Select All - экстент всех объектов слоя.
    • Выбранные объектыArea from Selected Features - экстент всех выбранных объектов слоя.
    • Отображаемые объекты Extent Indicator - экстент всех отображаемых объектов слоя.
      Примечание:

      Экстенты опций Выбранные объекты Area from Selected Features и Отображаемые объекты Extent Indicator доступны только для векторных слоев.

  • Обзор Browse — Экстент будет основан на существующем наборе данных.
  • Пересечение входных данных Intersect — Экстент будет основан на минимальном или пересекающемся экстенте всех входных данных. Если никакие входные данные не перекрываются, получится пустой экстент со всеми нулями.
  • Объединение входных данных Union — Экстент будет основан на максимальном или объединенном экстенте всех входных данных.
  • Буфер обмена Paste - экстент может быть скопирован в буфер обмена и из него.
    • Копировать экстент Copy - копирует координаты экстента и систему координат в буфер обмена.
    • Вставить экстент Paste - вставляет координаты экстента и, дополнительно, систему координат из буфера обмена. Если значения буфера обмена не содержат систему координат, экстент будет использовать систему координат карты.
    Примечание:

    Координаты экстента копируются в буфер обмена и вставляются из него с использованием того же форматирования и порядка, что и для объекта ArcPy Extent: x-min, y-min, x-max, y-max и пространственная привязка.

  • Сбросить экстент Reset — Экстент будет сброшен до значения по умолчанию.
  • Координаты, введенные вручную – Координаты должны быть числовыми значениями и находиться в системе координат активной карты.
    Внимание:

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

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

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

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

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

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

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

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

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

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

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

  • Не отмечено - порядок точек в файлах .las нет будет изменен.
  • Отмечено – порядок точек в файлах .las будет изменен. Это значение по умолчанию
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 должно быть включено свойство экспорта.

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 изменен.

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

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

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

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

Folder

Пример кода

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

В следующем примере показано использование этого инструмента в окне Python.

arcpy.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())

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