Сводка
Создает набор неперекрывающихся LAS-файлов, горизонтальные экстенты которых разделены регулярной сеткой.
Использование
Операция разбиения на листы сохранит все точки, которые находятся в пределах обрабатываемого экстента набора данных LAS, для которого выполняется разбиение на листы, независимо от любых настроек фильтра слоя, которые могут быть применены. Если требуется применить фильтр, рассмотрите возможность использования инструмента Извлечь LAS до или после разбиения набора данных LAS.
Разделение больших LAS-файлов, размер которых превышает 500 МБ, улучшит производительность любых операций, основанных на чтении данных в пространственных кластерах, таких как операции анализа, которые требуют создания поверхности, или операций визуализации данных. Со схемой разбиения на листы по умолчанию получаются квадратные листы с шириной и высотой, определенными ограничением целевого размера до 250 Мб. Точки из нескольких файлов LAS, попадающие в область одного листа, будут объединены в выходном файле.
Набор данных LAS, состоящий из LAS-файлов с перекрывающимися экстентами, может привести к неточным результатам в операциях, которые используют типа анализа файл за файлом. Например, оценка пространственного размещения точек осуществляется путем анализа точек каждого файла, попадающих в область покрытия этого файла, и следовательно, не имеет механизма корректировки влияния точек в перекрывающихся областях. Инструмент Проредить LAS также основывается на обработке данных файл за файлом, и результат его работы не будет соответствовать ожидаемому, в областях наложения файлов.
Переупорядочивание точек LAS приведет к пространственной кластеризации лидарных данных и улучшит производительность при выполнении операций отображения и анализа. Этот процесс потребует создания временного файла. Для увеличения скорости данной операции в качестве Временной рабочей области в параметрах среды рекомендуется задать папку на твердотельном накопителе.
Рекомендуется указывать сжатие ZLAS , если данные LAS уже классифицированы и готовы к архивированию или распространению. Файлы ZLAS не редактируются и не могут быть переклассифицированы, но они уменьшают размер файла примерно до одной трети несжатого файла LAS.
Листы LAS можно задать одним из следующих способов:
- Указать размер не сжатого целевого файла LAS. Этот размер вычисляется для листа LAS с равномерным распределением точек по всему экстенту.
- Указать ширину и высоту листа.
- Задать входной пространственный объект для определения схемы разбиения на листы. Каждый полигон должен быть прямоугольником с единой шириной и высотой. Для построения полигонов листов, охватывающих экстент ваших LAS-данных, могут использоваться инструменты Построить сетку и Создать замощение. Пользовательские имена листов LAS можно назначить, используя входные объекты и выбрав текстовое поле в параметре Метод присвоения имени.
Выходные листы LAS могут быть перепроецированы путем указания Выходной системы координат в настройках среды или при помощи входных объектов с системой координат, отличной от исходных файлов LAS. Преобразование z датума может быть выполнено только в том случае, если установлены вертикальные сетки преобразования датума.
Этот инструмент можно использовать для объединения точек LAS, распределенных по множеству файлов, в один файл LAS, указав размер листа больше, чем экстент входного набора данных LAS.
Синтаксис
arcpy.3d.TileLas(in_las_dataset, target_folder, {base_name}, {out_las_dataset}, {compute_stats}, {las_version}, {point_format}, {compression}, {las_options}, {tile_feature}, {naming_method}, {file_size}, {tile_width}, {tile_height}, {tile_origin})
Parameter | Объяснение | Тип данных |
in_las_dataset | Обрабатываемый набор данных LAS. | LAS Dataset Layer |
target_folder | Папка, куда будут записаны файлы листов LAS. | Folder |
base_name (Дополнительный) | Слово, с которого будет начинаться имя каждого выходного файла.. | String |
out_las_dataset (Дополнительный) | Новый набор данных LAS, который ссылается на файлы листов LAS, созданные этим инструментом. Этот пункт является необязательным. | LAS Dataset |
compute_stats (Дополнительный) | Определяет, следует ли вычислять статистику для файлов LAS, на которые ссылается набор данных LAS. Вычисление статистики определяет пространственный индекс для каждого файла LAS, что улучшает производительность анализа и отображения. Статистика также улучшает фильтрацию и символы, ограничивая отображение таких атрибутов LAS, как коды классификации и возвращаемая информация, значениями, которые присутствуют в файле LAS.
| Boolean |
las_version (Дополнительный) | Указывает версию файла LAS для каждого выходного файла. Значение по умолчанию равно 1.4.
| String |
point_format (Дополнительный) | Формат записи точек в выходных файлах LAS. Доступные опции зависят от версии файла LAS, указанной в параметре point_format. | Long |
compression (Дополнительный) | Указывает, будет ли выходной файл LAS в сжатом формате или в обычном формате LAS.
| String |
las_options [las_options,...] (Дополнительный) | Список дополнительных изменений в выходных файлах LAS.
| String |
tile_feature (Дополнительный) | Полигональные объекты, задающие ширину и высоту листа, которые будут использованы для разбиения на листы лидарных данных. Подразумевается, что полигоны будут прямоугольниками, а экстент первого объекта будет использован для определения ширины и высоты листа. | Feature Layer |
naming_method (Дополнительный) | Задает способ присвоения имени для каждого выходного листа. Когда в параметре tile_feature заданы входные объекты, названия их текстовых или числовых полей могут быть также указаны в качестве источников для определения имен выходных файлов LAS. Это имя будет присоединено к тексту, указанному в параметре base_name. Поддерживаются следующие способы автоматически созданных именований:
| String |
file_size (Дополнительный) | Это значение, выраженное в мегабайтах, представляет верхнее предельное значение размера несжатого файла выходного листа LAS с единым распределением точек по всему экстенту. Значение по умолчанию - 250, и это значение используется для оценки ширины и высоты листа. Этот параметр игнорируется, если в параметрах tile_feature или tile_width и tile_height заданы значения. | Double |
tile_width (Дополнительный) | Ширина каждого листа. Если для ширины и высоты заданы значения, параметр file_size будет игнорироваться. Если в параметре tile_feature указаны входные объекты, ширина листа будет получена из ширины первого объекта, и этот параметр будет игнорироваться. | Linear Unit |
tile_height (Дополнительный) | Высота каждого листа. Если для ширины и высоты заданы значения, параметр file_size будет игнорироваться. Если в параметре tile_feature указаны входные объекты, высота листа будет получена из высоты первого объекта, и этот параметр будет игнорироваться. | Linear Unit |
tile_origin (Дополнительный) | Координаты начальной точки сетки листов. Значение по умолчанию получается из левого нижнего угла входного набора данных LAS. Если в параметре tile_feature указаны входные объекты, начало отсчета будет унаследовано от левого нижнего угла первого объекта, и этот параметр будет игнорироваться. | Point |
Производные выходные данные
Name | Объяснение | Тип данных |
out_folder | Папка, в которую будут записаны выходные файлы LAS. | Папка |
Пример кода
В следующем примере показано использование этого инструмента в окне Python.
arcpy.env.workspace = 'C:/data'
arcpy.ddd.TileLas('Denver_2', basename='2014_', out_las_dataset='Denver_2014.lasd',
las_version='1.4', point_format=6, compression='ZLAS Compression',
las_options=['Rearrange points'], naming_method='ROW_COLUMN', file_size=300)
В следующем примере показано использование этого инструмента в автономном скрипте Python.
'''****************************************************************************
Name: Tile LAS File
Description: Creates tiled LAS files form an untiled collection.
****************************************************************************'''
# Import system modules
import arcpy
import tempfile
import math
in_las = arcpy.GetParameterAsText(1) # The LAS files that need to be tiled
out_folder = arcpy.GetParameterAsText(2) # folder for LAS files
basename = arcpy.GetParameterAsText(3) # basename for output files
out_lasd = arcpy.GetParameterAsText(4) # output LAS dataset
try:
# Create temp LAS dataset to reference LAS files that will be tiled
temp_lasd = arcpy.CreateUniqueName('temp.lasd', tempfile.gettempdir())
arcpy.management.CreateLasDataset(in_las, temp_lasd)
arcpy.ddd.TileLas(temp_lasd, out_folder, basename, out_lasd, las_version=1.4,
point_format=7, file_size=300)
arcpy.management.Delete(temp_lasd)
arcpy.ddd.ClassifyLasGround(out_lasd, method='AGGRESSIVE')
arcpy.ddd.ClassifyLasBuilding(out_lasd, min_height='3 Meters', min_area='4 Meters')
arcpy.ddd.ClassifyLasByHeight(out_lasd, height_classification=[(3, 6), (4,20), (5,70)],
noise='All Noise', compute_stats='COMPUTE_STATS')
except arcpy.ExecuteError:
print(arcpy.GetMessages())
Информация о лицензиях
- Basic: Требуется 3D Analyst
- Standard: Требуется 3D Analyst
- Advanced: Требуется 3D Analyst