Создать набор данных LAS (Управление данными)
Краткая информация
Создает набор данных LAS, связанный с одним или более файлами LAS, и, дополнительно, ограничивающие объекты на поверхности.
Рисунок
Использование
Набор данных LAS разработан для использования с данными воздушной лазерной съемки в форматах *.las или *.zlas . Поддерживаемые версии файлов LAS, которыми являются 1.0, 1.1, 1.2 и 1.3, а также файлы *.zlas, представляющие собой сжатые файлы *.las, можно создать с помощью утилиты, которая доступна здесь.
Можно создавать и управлять набором данных LAS с помощью окна ArcCatalog для улучшения интерактивного опыта. Дополнительные сведения см. в разделе Создание набора данных LAS (Creating a LAS dataset).
Объекты поверхностных ограничений можно использовать для установки значений высоты, полученных на основе объектов и представляющих поверхностные характеристики в наборе данных LAS.
Каждый LAS-файл обычно содержит в своем заголовке сведения о пространственной привязке, считываемые набором данных LAS. Если эта информация отсутствует или записана неверно, пространственную привязку файла LAS можно исправить, создав вспомогательный файл *.prj с таким же названием, в той же папке, что и файл LAS, который будет содержать строковое представление системы координат файла LAS, подобно файлу *.prj для шейп-файла.
Параметр Вычислить статистику (Compute Statistics), если включен, предоставляет внутреннюю структуру пространственного индекса, который увеличивает производительность работы набора данных LAS. Когда статистика вычислена, для каждого файла LAS создается дополнительный файл .lasx, который сохраняется на диске вместе с файлом LAS. Вычисление статистики применяется только к файлам LAS с отсутствующими или устаревшими дополнительными LAS-файлами (.lasx).
Точки LAS могут быть разделены на несколько категорий, описывающих материал, полученный с лидара, например, земная поверхность, здание или вода. Американское общество фотограмметрии и дистанционного зондирования (American Society for Photogrammetry and Remote Sensing, ASPRS) утвердило следующие коды классов для версий файлов LAS 1.1, 1.2 и 1.3:
Значение классификации
Тип классификации
0
Классификация не выполнялась
1
Не присвоено
2
Земля
3
Низкорослая растительность
4
Растительность средней высоты
5
Высокая растительность
6
Создание
7
Шум
8
Ключ модели
9
Вода
10
Зарезервировано ASPRS
11
Зарезервировано ASPRS
12
Наложение
13–31
Зарезервировано ASPRS
Примечание:Хотя спецификации LAS 1.0 содержат коды классов в диапазоне от 0 до 255, они не имеют стандартизованной схемы классификации. Любые коды классификации, используемые в файлах версии 1.0, будут в большинстве случаев определяться поставщиком данных и предоставляться через вспомогательную информацию.
Каждый файл LAS проверяется на соответствие его внутренней структуры спецификациям LAS. Если один из файлов LAS не удается загрузить в набор данных LAS, это может означать, что файл поврежден или содержит неверную информацию в заголовке. Используйте утилиту CheckLAS для определения наиболее часто встречающихся ошибок в ваших данных.
Если местоположение файла LAS при просмотре набора данных LAS отображается неверно, возможно в его заголовке находится неверная информация о проекции. В таких случаях, если правильная пространственная привязка известна, файлу LAS можно присвоить проекцию, создав файл PRJ. Рассмотрите возможность использования инструмента Задать проекцию LAS (Define LAS Projection) из примера инструментов набора данных LAS.
Синтаксис
Параметр | Объяснение | Тип данных |
input [input,...] | LAS-файлы и папки с LAS-файлами, на которые будет указывать набор данных LAS. Эта информация может быть представлена как строка, содержащая все входные данные, или список строк, содержащих определенные элементы данных (например, "lidar1.las; lidar2.las; folder1; folder2" или ["lidar1.las", "lidar2.las", "folder1", "folder2"]). Более подробно об использовании списков в входных данных см. в разделе Понимание синтаксиса инструмента. | File; Folder |
out_las_dataset |
Набор данных LAS, который будет создан. | LAS Dataset |
folder_recursion (дополнительно) |
Определяет, добавляются ли лазерные данные в поддиректориях входной папки в набор данных LAS.
| Boolean |
in_surface_constraints [[in_feature_class, height_field, SF_type],...] (дополнительно) | Классы объектов, на который ссылается набор данных LAS. Для каждого объекта необходимо определить следующие свойства: in_feature_class – класс объектов, на который ссылается набор данных LAS. height_field – поле, задающее источник значений высот для объектов. В таблице атрибутов объекта можно использовать любое числовое поле. Если объект поддерживает z-значения, геометрию объектов можно прочитать, выбрав опцию Shape.Z. Если высота не требуется, укажите ключевое слово <None>, чтобы создать объекты без Z значений, высота которых будет интерполирована на основе поверхности. SF_type – тип объекта поверхности, который определяет, каким образом геометрия участвует в процессе триангуляции поверхности. Опции с резким или нерезким обозначением указывают, представляют ли ребра объектов резкие перегибы уклонов или плавные изменения уклона.
| Value Table |
spatial_reference (дополнительно) |
Пространственная привязка набора данных LAS. Если в элементе не содержится информации о системе координат, набор данных LAS использует систему координат первого входного LAS-файла. Если входные файлы не содержат информацию о пространственной привязке, и свойство Входная система координат (Input Coordinate System) не установлено, система координат набора данных LAS определяется как неизвестная. | Coordinate System |
compute_stats (дополнительно) | Определяет, будет ли вычисляться статистика для файлов LAS и пространственный индекс для набора данных LAS. Наличие статистики позволяет использовать опции фильтрации и символов для слоя набора данных LAS, чтобы показывать только атрибутивные значения LAS, существующие в файлах LAS. Дополнительный файл .lasx создается для каждого файла LAS.
| Boolean |
relative_paths (дополнительно) |
Определяет, будут ли файлы лидар и ограничивающие объекты поверхности, на которые ссылается набор данных LAS храниться с относительными или с абсолютными путями. Использование относительных путей позволит сохранить доступ к источникам, если набор данных LAS, и данные, на которые он ссылается, будут перемещены в другое местоположение.
| Boolean |
Пример кода
В следующем примере показано использование этого инструмента в окне Python:
import arcpy
from arcpy import env
env.workspace = "C:/data"
arcpy.CreateLasDataset_management("folder_a; folder_b/5S4E.las",
"test.lasd", "RECURSION",
"LA/boundary.shp <None> Softclip;"\
"LA/ridges.shp Elevation hardline", "",
"COMPUTE_STATS", "RELATIVE_PATHS")
В следующем примере показано использование этого инструмента в автономном скрипте Python:
'''*********************************************************************
Name: Export Elevation Raster from Ground LAS Measurements
Description: This script demonstrates how to export
ground measurements from LAS files to a raster using a
LAS dataset. This sample is designed to be used as a script
tool.
*********************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
try:
# Set Local Variables
inLas = arcpy.GetParameterAsText(0)
recursion = arcpy.GetParameterAsText(1)
surfCons = arcpy.GetParameterAsText(2)
classCode = arcpy.GetParameterAsText(3)
returnValue = arcpy.GetParameterAsText(4)
spatialRef = arcpy.GetParameterAsText(5)
lasD = arcpy.GetParameterAsText(6)
outRaster = arcpy.GetParameterAsText(7)
cellSize = arcpy.GetParameter(8)
zFactor = arcpy.GetParameter(9)
if arcpy.ProductInfo == 'ArcView':
arcpy.CheckOutExtension('3D')
# Execute CreateLasDataset
arcpy.management.CreateLasDataset(inLas, lasD, recursion, surfCons, sr)
# Execute MakeLasDatasetLayer
lasLyr = arcpy.CreateUniqueName('Baltimore')
arcpy.management.MakeLasDatasetLayer(lasD, lasLyr, classCode, returnValue)
# Execute LasDatasetToRaster
arcpy.conversion.LasDatasetToRaster(lasLyr, outRaster, 'ELEVATION',
'TRIANGULATION LINEAR WINDOW_SIZE 10', 'FLOAT',
'CELLSIZE', cellSize, zFactor)
arcpy.GetMessages()
except arcpy.ExecuteError:
print arcpy.GetMessages()
except:
# Get the traceback object
tb = sys.exc_info()[2]
tbinfo = traceback.format_tb(tb)[0]
# Concatenate error information into message string
pymsg = 'PYTHON ERRORS:\nTraceback info:\n{0}\nError Info:\n{1}'\
.format(tbinfo, str(sys.exc_info()[1]))
msgs = 'ArcPy ERRORS:\n {0}\n'.format(arcpy.GetMessages(2))
# Return python error messages for script tool or Python Window
arcpy.AddError(pymsg)
arcpy.AddError(msgs)
finally:
arcpy.management.Delete(lasLyr)