LAS в Мультиточки (3D Analyst)
Резюме
Создает мультиточечные объекты с использованием одного или нескольких файлов лазерного сканирования.
Рисунок
Использование
-
Поддерживаются форматы файлов LAS версий 1.0, 1.1, 1.2 и 1.3.
Точки 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, будут в большинстве случаев определяться поставщиком данных и предоставляться через вспомогательную информацию.
-
Если нет необходимости в импорте точек на основе их номера отраженного сигнала, или если все отраженные сигналы, заданные в файле или файлах, имеют значение 0, поскольку точки были отфильтрованы или классифицированы, выберите параметр ANY_RETURN.
-
При загрузке нескольких атрибутов LAS в базу данных Oracle необходимо убедиться в том, что все ключевые слова DBTUNE для параметра attribute_binary настроены на использование больших двоичных объектов (BLOB), а не LONGRAW. Это связано с тем, что атрибуты LAS загружаются как объекты BLOB, и Oracle не поддерживает несколько объектов BLOB в таблицах LONGRAW. Для получения справки свяжитесь с администратором базы данных Oracle.
Синтаксис
Параметр | Объяснение | Тип данных |
input [input,...] |
Один или несколько файлов или папок с данными в формате LAS версии 1.0, 1.1 и 1.2. Формат LAS — это отраслевой стандарт для данных лазерного сканирования. | Folder or File |
out_feature_class |
Выходной класс объектов. | Feature Class |
average_point_spacing |
Среднее 2D расстояние между точками во входном файле или файлах. Это может быть аппроксимация. Если области были отобраны при разных плотностях, задайте меньший интервал. Значение необходимо указать в единицах проекции выходной системы координат. | Double |
class_code [class_code,...] (дополнительно) |
Коды классификации, использующиеся в качестве фильтра запроса для точек данных LAS. Значения находятся в диапазоне от 1 до 32. По умолчанию фильтр не применяется. | Long |
return [return,...] (дополнительно) |
Значения отраженных сигналов, используемые как фильтр запросов. Допустимыми значениями отраженных сигналов являются 1 — 5, LAST_RETURNS и ANY_RETURNS. Значением по умолчанию является ANY_RETURNS. | String |
attribute [[keyword, name],...] (дополнительно) |
Необходимо загрузить и сохранить один или несколько атрибутов LAS и дополнительно — имена полей, которые нужно использовать. Значением по умолчанию является Нет (None). Поддерживаемые ключевые слова атрибута: INTENSITY, RETURN_NUMBER, NUMBER_OF_RETURNS, SCAN_DIRECTION_FLAG, EDGE_OF_FLIGHTLINE, CLASSIFICATION, SCAN_ANGLE_RANK, FILE_MARKER, USER_BIT_FIELD и GPS_TIME. | Value Table |
input_coordinate_system (дополнительно) |
Система координат входного файла LAS. Используется значение по умолчанию, заданное в файле LAS. Если по какой-либо причине значение в этом файле не задано, но оно известно, укажите его здесь. | Coordinate System |
file_suffix (дополнительно) |
Суффикс импортируемых файлов из входной папки. Этот параметр также необходим, когда папка указана в качестве входных данных. | String |
z_factor (дополнительно) |
Коэффициент, на который будут умножаться значения высоты. Обычно он используется для преобразования линейных единиц измерения Z, соответствующих линейным единицам измерения XY. Значение по умолчанию равно 1, при нем значения высоты не изменяются. | Double |
folder_recursion (дополнительно) |
Сканирует подпапки, если в качестве входных данных указана папка. Выходной класс объектов будет содержать строку для каждого найденного файла.
| Boolean |
Пример кода
В следующем примере показано использование этого инструмента в окне Python:
import arcpy
from arcpy import env
arcpy.CheckOutExtension("3D")
env.workspace = "C:/data"
arcpy.LASToMultipoint_3d("001.las", "Test.gdb/feature_dataset/sample_1", 1.5,
"2", "ANY_RETURNS", "INTENSITY", "Coordinate Systems"\
"/Projected Coordinate Systems/UTM/NAD 1983/NAD 1983 "\
"UTM Zone 17N.prj", "las", 1)
В следующем примере показано использование этого инструмента в автономном скрипте Python:
'''****************************************************************************
Name: Define Data Boundary of LAS File
Description: This script demonstrates how to delineate data boundaries of
LAS files with irregularly clustered points. It is intended for
use as a script tool with one input LAS file.
****************************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
# Set local variables
inLas = arcpy.GetParameterAsText(0) #input LAS file
ptSpacing = arcpy.GetParameterAsText(1) # LAS point spacing
classCode = arcpy.GetParameterAsText(2) # List of integers
returnValue = arcpy.GetParameterAsText(3) # List of strings
outTin = arcpy.GetParameterAsText(4) # TIN created to delineate data area
outBoundary = arcpy.GetParameterAsText(5) # Polygon boundary file
try:
arcpy.CheckOutExtension("3D")
# Execute LASToMultipoint
arcpy.AddMessage("Creating multipoint features from LAS...")
lasMP = arcpy.CreateUniqueName('lasMultipoint', 'in_memory')
arcpy.ddd.LASToMultipoint(inLas, LasMP, ptSpacing, class_code,
"ANY_RETURNS", "", sr, inFormat, zfactor)
# Execute CreateTin
arcpy.AddMessage("Creating TIN dataset...")
arcpy.ddd.CreateTin(outTin, sr, "{0} Shape.Z masspoints"\
.format(lasMP), "Delaunay")
# Execute CopyTin
arcpy.AddMessage("Copying TIN to delineate data boundary...")
arcpy.ddd.CopyTin(outTin, "{0}_copy".format(outTin))
# Execute DelineateTinDataArea
arcpy.AddMessage("Delineating TIN boundary...")
maxEdge = ptSpacing * 4
arcpy.ddd.DelineateTinDataArea(outTin, maxEdge, "PERIMETER_ONLY")
# Execute TinDomain
arcpy.AddMessage("Exporting data area to polygon boundary...")
arcpy.ddd.TinDomain(outTin, outBoundary, "POLYGON")
arcpy.AddMessage("Finished")
arcpy.CheckInExtension("3D")
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)