Раскрасить LAS (3D Analyst)

Сводка

Применяет цвета и значения ближнего инфракрасного диапазона из ортографических изображений к точкам LAS.

Иллюстрация

Раскрасить LAS

Использование

  • Отображение точек LAS с использованием информации RGB может создать более глубокое, фотореалистичное изображение. Визуальное представление реальных изображений, наложенных на точки LAS, также может обеспечить более подробную информацию об отдельных характеристиках облака точек, что может быть полезно при интерактивной классификации данных, оцифровке новых объектов и выявления опорной точки при выполнении трехмерных измерений расстояния.

  • Наилучшие изображения для применения цветов к точкам LAS будут получены, если они будут сделаны одновременно с лидарной съемкой, для достижения наилучшего соответствия с захватываемыми объектами. Если у вас таких изображений нет, то вы можете попробовать использовать снимки, которые сняты как можно ближе к дате сканирования, чтобы минимизировать различия из-за таких событий, как строительство или сезонная вариация растительного покрова.

  • Если исходные изображения состоят из множества листов, рекомендуется загрузить эти листы в набор данных мозаики, чтобы ссылаться на них как на единый набор данных, и использовать его в качестве входных данных для раскрашивания данных LAS. Более подробно о создании набора данных мозаики.

  • Только файл LAS версии 1.4 с форматом записи точек 8 поддерживает хранение значений ближнего инфракрасного спектра для точек LAS.

  • Когда задается экстент обработки, весь файл LAS, который пересекается с экстентом обработки, будет расцвечен. Если требуется только поднабор входного файла LAS, воспользуйтесь инструментом Извлечь LAS, чтобы вырезать поднабор и использовать полученный файл как входной для этого инструмента.

  • Обычно записи точек LAS не хранятся в файле LAS в виде бинарной последовательности, которая не соответствует пространственной кластеризации точек. Когда происходит запрос к данным с таким распределением, в результате доступ к бинарным записям, представляющим точки LAS будет не эффективным. Переорганизация точек в полученном файле LAS оптимизирует данные для визуализации и выполнения других пространственных операций. Если включена опция переорганизации автоматически будет вычисляться статистика. Если вы выберите не переорганизовывать точки LAS, то вы можете включить или отключить расчет статистики. Расчет статистики оптимизирует пространственные запросы и предоставляет сводную информацию о кодах класса, а также возвращает значения, которые представлены в файле LAS. Но это также добавляет некоторое время на выполнение инструмента. Если полученные в результате файлы LAS не будут использоваться в ArcGIS, вы можете отключить расчет статистики, чтобы инструмент выполнялся быстрее.

Синтаксис

arcpy.3d.ColorizeLas(in_las_dataset, in_image, bands, target_folder, {name_suffix}, {las_version}, {point_format}, {compression}, {rearrange_points}, {compute_stats}, {out_las_dataset})
ParameterОбъяснениеТип данных
in_las_dataset

Обрабатываемый набор данных LAS.

LAS Dataset Layer
in_image

Изображение, которое было использовано для присвоения цветов точкам LAS.

Mosaic Layer; Raster Layer
bands
[bands,...]

Каналы исходного изображения, которые были присвоены цветовым каналам, связанным с выходными точками LAS.

Value Table
target_folder

Существующая папка, в которую будут записаны выходные файлы LAS.

Folder
name_suffix
(Дополнительный)

Текст, который будет присоединен к имени каждого выходного файла LAS. Каждый файл сохраняет базовое имя из источника, к которому присоединяется суффикс, заданный этим параметром.

String
las_version
(Дополнительный)

Версия LAS создаваемых выходных файлов.

  • 1.2Будет создан файл LAS версии 1.2.
  • 1.3Будет создан файл LAS версии 1.3.
  • 1.4Будет создан файл LAS версии 1.4. Используется по умолчанию.
String
point_format
(Дополнительный)

Формат записи точек в выходных файлах LAS.

  • 2Формат записи точек 2.
  • 3Формат записи точек 3 поддерживает хранение времени GPS.
  • 7Формат записи точек 7. Это значение по умолчанию, оно доступно только для LAS версии 1.4
  • 8Формат записи точек 8 поддерживает хранение ближних инфракрасных значений. Доступно только для LAS версии 1.4.
Long
compression
(Дополнительный)

Указывает, будет ли выходной файл LAS в сжатом формате или в обычном формате LAS.

  • NO_COMPRESSIONВыходной файл будет в обычном формате LAS (*.las). Используется по умолчанию.
  • ZLASВыходные файлы LAS будут в сжатом формате ZLAS.
String
rearrange_points
(Дополнительный)

Задает необходимость изменения порядка точек в файлах LAS.

  • NO_REARRANGE_POINTSПорядок точек в файлах LAS не изменяется.
  • REARRANGE_POINTSПорядок точек в файлах LAS будет изменен. Используется по умолчанию.
Boolean
compute_stats
(Дополнительный)

Определяет, следует ли вычислять статистику для файлов LAS, на которые ссылается набор данных LAS. Вычисление статистики определяет пространственный индекс для каждого файла LAS, что улучшает производительность анализа и отображения. Статистика также улучшает фильтрацию и символы, ограничивая отображение таких атрибутов LAS, как коды классификации и возвращаемая информация, значениями, которые присутствуют в файле LAS.

  • COMPUTE_STATSСтатистика будет рассчитана.
  • NO_COMPUTE_STATSСтатистика не будет рассчитана. Используется по умолчанию.
Boolean
out_las_dataset
(Дополнительный)

Выходной набор данных LAS, ссылающийся на вновь созданные файлы LAS.

LAS Dataset

Производные выходные данные

NameОбъяснениеТип данных
output_folder

Папка, в которую будут записаны выходные файлы LAS.

Папка

Пример кода

ColorizeLas, пример 1 (окно Python)

В следующем примере показано использование этого инструмента в окне Python.

arcpy.env.workspace = 'C:/data'
arcpy.ddd.ColorizeLas('2014_lidar_survey.lasd', '2014_CIR.tif', 
                      'RED Band_1; GREEN Band_2; BLUE Band_3', 
                      'las/rgb', '_rgb', 1.3, 3, 'ZLAS', 
                      'REARRANGE_POINTS')
ColorizeLas, пример 2 (автономный скрипт)

В следующем примере показано использование этого инструмента в автономном скрипте Python.

'''****************************************************************************
       Name: Classify Lidar & Extract Building Footprints
Description: Extract footprint from lidar points classified as buildings, 
             regularize its geometry, and calculate the building height.

****************************************************************************'''
import arcpy

lasd = arcpy.GetParameterAsText(0)
dem = arcpy.GetParameterAsText(1)
footprint = arcpy.GetParameterAsText(2)

try:
    desc = arcpy.Describe(lasd)
    if desc.spatialReference.linearUnitName in ['Foot_US', 'Foot']:
        unit = 'Feet'
    else:
        unit = 'Meters'
    ptSpacing = desc.pointSpacing * 2.25
    sampling = '{0} {1}'.format(ptSpacing, unit)
    # Classify overlap points
    arcpy.ddd.ClassifyLASOverlap(lasd, sampling)
    # Classify ground points
    arcpy.ddd.ClassifyLasGround(lasd)
    # Filter for ground points
    arcpy.management.MakeLasDatasetLayer(lasd, 'ground', class_code=[2])
    # Generate DEM
    arcpy.conversion.LasDatasetToRaster('ground', dem, 'ELEVATION', 
                                        'BINNING NEAREST NATURAL_NEIGHBOR', 
                                        sampling_type='CELLSIZE', 
                                        sampling_value=desc.pointSpacing)
    # Classify noise points
    arcpy.ddd.ClassifyLasNoise(lasd, method='ISOLATION', edit_las='CLASSIFY', 
                               withheld='WITHHELD', ground=dem, 
                               low_z='-2 feet', high_z='300 feet', 
                               max_neighbors=ptSpacing, step_width=ptSpacing, 
                               step_height='10 feet')
    # Classify buildings
    arcpy.ddd.ClassifyLasBuilding(lasd, '7.5 feet', '80 Square Feet')
    #Classify vegetation
    arcpy.ddd.ClassifyLasByHeight(lasd, 'GROUND', [8, 20, 55], 
                                  compute_stats='COMPUTE_STATS')
    # Filter LAS dataset for building points
    lasd_layer = 'building points'
    arcpy.management.MakeLasDatasetLayer(lasd, lasd_layer, class_code=[6])
    # Export raster from lidar using only building points
    temp_raster = 'in_memory/bldg_raster'
    arcpy.management.LasPointStatsAsRaster(lasd_layer, temp_raster,
                                           'PREDOMINANT_CLASS', 'CELLSIZE', 2.5)
    # Convert building raster to polygon
    temp_footprint = 'in_memory/footprint'
    arcpy.conversion.RasterToPolygon(temp_raster, temp_footprint)
    # Regularize building footprints
    arcpy.ddd.RegularizeBuildingFootprint(temp_footprint, footprint, 
                                          method='RIGHT_ANGLES')

except arcpy.ExecuteError:
    print(arcpy.GetMessages())

Информация о лицензиях

  • Basic: Требуется 3D Analyst
  • Standard: Требуется 3D Analyst
  • Advanced: Требуется 3D Analyst

Связанные разделы