Классифицировать здания в LAS (3D Analyst)

Сводка

Классифицирует крыши и стороны зданий в данных LAS.

Иллюстрация

Классификация точек крыш зданий.

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

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

  • Для классификации точек крыш зданий в данных LAS должны быть указаны в точки, соответствующие уровню земной поверхности. Рекомендуется использовать инструмент Классифицировать поверхность Земли LAS, если точки Земли ещё не классифицированы. Точки земли должны иметь значение кода класса 2. Если точки земли должны имеют другой код класса, не 2, с помощью инструмента Изменить коды классов LAS вы можете переназначить коды классов правильным образом.

  • Точки LAS со значениями кодов классов 0, 1 и 6 будут оцениваться, чтобы определить, подходят ли они под характеристики крыш зданий. Точки, классифицированные как здания, не отвечающие этим критериям, будут переназначены на значение кода класса 1, если не указана возможность повторного использования существующих точек классификации зданий.

  • Параметр Метод не используется, если указана опция Это фотограмметрические данные.

Синтаксис

arcpy.3d.ClassifyLasBuilding(in_las_dataset, {min_height}, min_area, {compute_stats}, {extent}, boundary, {process_entire_files}, point_spacing, {reuse_building}, {photogrammetric_data}, {method}, {classify_above_roof}, {above_roof_height}, {above_roof_code}, {classify_below_roof}, {below_roof_code})
ParameterОбъяснениеТип данных
in_las_dataset

Классифицируемый набор данных LAS.

LAS Dataset Layer
min_height
(Дополнительный)

Высота от поверхности земли, которая задает нижнюю точку, от которой будут определены точки крыш зданий.

Linear Unit
min_area

Минимальная площадь крыши здания.

Areal Unit
compute_stats
(Дополнительный)

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

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

Указывает экстент данных, который будет обработан этим инструментом.

  • MAXOF - будет использоваться максимальный экстент всех входных данных.
  • MINOF - будет использоваться минимальная область, общая для всех входных данных.
  • DISPLAY– экстент будет равен видимому отображению.
  • Имя слоя - будет использоваться тот же экстент, что и в указанном слое.
  • Объект Extent - будет использоваться тот же экстент, что и в указанном объекте.
  • Строка координат, разделенных пробелами – будет использоваться экстент из заданной строки. Координаты должны быть выражены в таком порядке: x-min, y-min, x-max, y-max.
Extent
boundary

Полигональный объект, определяющий область интереса, которая будет обрабатываться этим инструментом.

Feature Layer
process_entire_files
(Дополнительный)

Указывает, как применяется экстент обработки.

  • PROCESS_EXTENTБудут обработаны только те точки LAS, что пересекают область интереса. Используется по умолчанию.
  • PROCESS_ENTIRE_FILESЕсли какая-либо часть файла LAS пересекает область интереса, будут обработаны все точки файла LAS, включая те, что находятся вне области интереса.
Boolean
point_spacing

Средний интервал между точками LAS. Этот параметр больше не используется.

Linear Unit
reuse_building
(Дополнительный)

Указывает, будут ли существующие классифицированные точки зданий использоваться повторно или переоценены.

Указывает, будут ли существующие классифицированные точки зданий использоваться повторно или переоценены.

  • RECLASSIFY_BUILDINGСуществующие классифицированные точки зданий будут переоцениваться в соответствии с критериями обнаружения плоскости, а точкам, которые не соответствуют заданной площади и высоте, будет присвоено значение 1. Это значение по умолчанию.
  • REUSE_BUILDINGСуществующие классифицированные точки зданий будут применяться для обнаружения плоскости, но не будут переклассифицированы в случае, если они не соответствуют критериям, указанным при выполнении инструмента. Используйте эту опцию, если вас устраивает существующая классификация.
Boolean
photogrammetric_data
(Дополнительный)

Определяет, были ли получены точки в файле LAS с использованием фотограмметрического метода..

Определяет, были ли получены точки в файле LAS с использованием фотограмметрического метода..

  • NOT_PHOTOGRAMMETRIC_DATAТочки в файле LAS были получены в результате лидарной съемки, а не фотограмметрического метода получения облаков точек. Это значение по умолчанию.
  • PHOTOGRAMMETRIC_DATAТочки в файле LAS были получены в результате фотограмметрического метода получения облаков точек из перекрывающихся изображений.
Boolean
method
(Дополнительный)

Метод классификации, который будет использован.

  • AGGRESSIVEБудут выявлены точки, соответствующие характеристикам плоской крыши с относительно высоким допуском выбросов. Если точки не очень хорошо откалиброваны, желательно использовать этот метод.
  • STANDARDБудут выявлены точки, соответствующие характеристикам плоской крыши с относительно умеренным допуском для нерегулярных точек. Используется по умолчанию
  • CONSERVATIVEБудут выявлены точки, соответствующие характеристикам плоской крыши с относительно низким допуском для нерегулярных точек. Используйте этот метод, если точки находятся почти на одной плоскости с объектами, которые не являются зданиями.
String
classify_above_roof
(Дополнительный)

Указывает, следует ли классифицировать точки выше плоскостей, соответствующих крышам.

  • NO_CLASSIFY_ABOVE_ROOFТочки выше крыш, определенных инструментом, не будут классифицированы. Используется по умолчанию
  • CLASSIFY_ABOVE_ROOFОтмечено – точки выше крыш, определенных инструментом, будут классифицированы.
Boolean
above_roof_height
(Дополнительный)

Максимальная высота точек выше крыш зданий, которые будут классифицированы в соответствии со значением, указанным в параметре Код класса выше крыш.

Linear Unit
above_roof_code
(Дополнительный)

Этот код класса назначается точкам, лежащим выше крыш.

Long
classify_below_roof
(Дополнительный)

Указывает, следует ли классифицировать точки между земной поверхностью и крышами.

  • NO_CLASSIFY_BELOW_ROOFТочки между крышами и земной поверхностью не будут классифицированы. Это значение по умолчанию.
  • CLASSIFY_BELOW_ROOFТочки между крышами и земной поверхностью будут классифицированы.
Boolean
below_roof_code
(Дополнительный)

Этот код класса назначается точкам, лежащим между земной поверхностью и крышами.

Long

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

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

Набор данных LAS, который классифицируется на нахождение крыш зданий.

Слой набора данных LAS

Пример кода

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

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

arcpy.env.workspace = 'C:/data'

arcpy.ClassifyLasBuilding_3d('Highland.lasd', minHeight='9 feet', 
                             minArea='30 Square Feet', compute_stats=True)
ClassifyLasBuilding, пример 2 (автономный скрипт)

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

'''****************************************************************************
       Name: Tile & Classify LAS Files
Description: Creates & classifies tiled LAS files.
****************************************************************************'''
# Import system modules
import arcpy
import tempfile
import math

in_las = arcpy.GetParameterAsText(1) # The LAS files that need to be tiled
out_folder = arcpy.GetParameterAsText(2) # folder for LAS files
basename = arcpy.GetParameterAsText(3) # basename for output files
out_lasd = arcpy.GetParameterAsText(4) # output LAS dataset


try:
    # Create temp LAS dataset to reference LAS files that will be tiled
    temp_lasd = arcpy.CreateUniqueName('temp.lasd', tempfile.gettempdir())
    arcpy.management.CreateLasDataset(in_las, temp_lasd)
    arcpy.ddd.TileLas(temp_lasd, out_folder, basename, out_lasd, las_version=1.4, 
                      point_format=7, file_size=300)
    arcpy.management.Delete(temp_lasd)
    arcpy.ddd.ClassifyLasGround(out_lasd, method='AGGRESSIVE')
    arcpy.ddd.ClassifyLasBuilding(out_lasd, min_height='3 Meters', min_area='4 Meters')
    arcpy.ddd.ClassifyLasByHeight(out_lasd, height_classification=[(3, 6), (4,20), (5,70)],
                                  noise='All Noise', compute_stats='COMPUTE_STATS')

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

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

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

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