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

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

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

Иллюстрация

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

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

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

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

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

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

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

  • По умолчанию – экстент основывается на максимальном экстенте всех задействованных слоев. Это значение по умолчанию.
  • Объединение входных данных – экстент будет основан на максимальном экстенте всех входных сцен.
  • Пересечение входных данных – экстент будет основан на минимальной области, являющейся общей для всех входных сцен.
  • Экстент текущего отображения – экстент будет равен видимому отображению. Опция недоступна, если нет активной карты.
  • Как указано ниже – экстент будет основан на указанных минимальном и максимальном значениях экстента.
  • Найти—экстент будет основан на существующем наборе данных.
Extent
Граница извлечения
(Дополнительный)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Определяет, будут ли удалены записи переменной длины (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Сжатие соответствует сжатию входного файла. Эта опция доступна только в том случае, если входными данными является набор данных 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

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