Создать набор данных LAS (Create LAS Dataset) (Управление данными)
Резюме
Создает набор данных LAS, связанный с одним или более файлами LAS, и, дополнительно, ограничивающие объекты на поверхности.
Рисунок
Использование
Набор данных LAS разработан для использования с данными воздушной лазерной съемки в формате *.las. Поддерживаются форматы файлов LAS версий 1.0, 1.1, 1.2 и 1.3.
Можно создавать и управлять набором данных LAS с помощью окна ArcCatalog для улучшения интерактивного опыта. Дополнительные сведения см. в разделе Создание набора данных LAS (Creating a LAS dataset).
Объекты поверхностных ограничений можно использовать для установки значений высоты, полученных на основе объектов и представляющих поверхностные характеристики в наборе данных LAS.
Каждый LAS-файл обычно содержит в своем заголовке сведения о пространственной привязке, считываемые набором данных LAS. Если эта информация отсутствует или записана неверно, пространственную привязку файла LAS можно исправить, создав вспомогательный файл *.prj с таким же названием, в той же папке, что и файл LAS, который будет содержать строковое представление системы координат файла LAS, подобно файлу *.prj для шейп-файла.
Точки 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, будут в большинстве случаев определяться поставщиком данных и предоставляться через вспомогательную информацию.
Синтаксис
Параметр | Объяснение | Тип данных |
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.
| Boolean |
relative_paths (дополнительно) |
Определяет, будут ли файлы лидар и ограничивающие объекты поверхности, на которые ссылается набор данных LAS храниться с относительными или с абсолютными путями. Использование относительных путей позволит сохранить доступ к источникам, если набор данных LAS, и данные, на которые он ссылается, будут перемещены в другое местоположение.
| Boolean |
Пример кода
The following sample demonstrates how to use this tool in the Python window:
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")
The following sample demonstrates how to use this tool in a stand-alone Python script:
'''*********************************************************************
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)