Создать слой набора данных LAS (Make LAS Dataset Layer) (Управление данными)
Резюме
Создает слой набора данных LAS, применяющий фильтры к файлам LAS и включающий или выключающий ограничения поверхности, на которые ссылается набор данных LAS.
Использование
Этот инструмент создает временный слой в оперативной памяти, который затем можно сохранить как файл слоя при помощи инструмента Сохранить в файл слоя (Save To Layer File).
Точки 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. К примеру, если на основе первых возвращаемых значений лазерного сканирования, характеризующих рельеф земной поверхности, необходимо построить растр или набор данных TIN, опции фильтра могут быть установлены на отбор второго кода классификации и первых отраженных значений. Затем полученный слой набора данных LAS может быть преобразован в желаемый формат при помощи инструментов Набор данных LAS в растр (LAS Dataset To Raster) или Набор данных LAS в TIN (LAS Dataset To TIN).
Синтаксис
Параметр | Объяснение | Тип данных |
in_las_dataset |
Входной набор данных LAS. | LAS Dataset Layer |
out_layer |
Имя слоя набора данных LAS, получаемого в результате. Для обозначения составного слоя используется текст, за которым идет косая черта (прямая или обратная). | Las Dataset Layer |
class_code [class_code,...] (дополнительно) |
Коды классификации, использующиеся в качестве фильтра запроса для точек данных LAS. Значения находятся в диапазоне от 1 до 32. По умолчанию фильтр не применяется. | Long |
return_values [return_values,...] (дополнительно) | Задает возвращаемые значения, используемые для фильтрации точек данных. Если ничего не указано, используются все возвращаемые значения. Допустимые опции возвращения включают любое число от 1 до 5 и следующие ключевые слова:
| String |
no_flag (дополнительно) | Указывает, следует ли разрешать отображение и анализ точек, не имеющих никаких флагов классификации.
| Boolean |
synthetic (дополнительно) | Указывает, следует ли разрешить отображение и анализ точек, имеющих флаг "синтетические" (synthetic), т.е. замеренных в ходе процесса, отличного от лазерного сканирования.
| Boolean |
keypoint (дополнительно) | Указывает, следует ли разрешить отображение и анализ точек, имеющих флаг "ключевые точки модели" (model key-points), т.е. точек с характерными, значимыми измерениями, которые не следует убирать в ходе прореживания.
| Boolean |
withheld (дополнительно) | Указывает, следует ли разрешить отображение и анализ точек, имеющих флаг "исключенные" (withheld) — такие точки чаще всего представляют собой лишние, шумовые измерения.
| Boolean |
surface_constraints [surface_constraints,...] (дополнительно) |
Имена объектов ограничения поверхности, которые будут включены в слое. По умолчанию все ограничения включены. | String |
Пример кода
В следующем примере показано использование этого инструмента в окне Python:
import arcpy
from arcpy import env
arcpy.CheckOutExtension('3D')
env.workspace = 'C:/data'
arcpy.MakeLasDatasetLayer_management('Baltimore.lasd', 'Baltimore Layer',
2, 'LAST', 'INCLUDE_UNFLAGGED',
'EXCLUDE_SYNTHETIC', 'INCLUDE_KEYPOINT',
'EXCLUDE_WITHHELD')
В следующем примере показано использование этого инструмента в автономном скрипте 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)