Арборитм
АРБОРИТМWEB
Platform

Общая схема процесса

Arboritm использует семиэтапный конвейер обработки облаков точек для извлечения таксационных характеристик лесных насаждений.

graph TD
    A[Загрузка LAS/LAZ] --> B[1. Подготовка входных данных]
    B --> C[2. Восстановление контрольной точки]
    C --> D[3. Выполнение конвейера обработки]
    D --> E[4. Экспорт результатов]
    E --> F[5. Загрузка результатов в хранилище]
    F --> G[6. Очистка временных файлов]
    G --> H[Готовые результаты]

Детальное описание этапов

Этап 1: Подготовка входных данных (5-15%)

Цель: Загрузить и валидировать исходные файлы

Действия:

  1. Загрузка файла из хранилища

    • Скачивание LAS/LAZ из облачного хранилища или Яндекс.Диска
    • Проверка целостности файла
    • Распаковка LAZ при необходимости
  2. Валидация формата

    • Проверка версии LAS (1.2, 1.4)
    • Проверка системы координат
    • Анализ атрибутов точек
  3. Первичный анализ

    • Подсчет количества точек
    • Определение границ территории
    • Расчет плотности точек
    • Статистика по классам точек
  4. Проверка качества данных

    • Выявление пропусков в данных
    • Проверка на выбросы
    • Оценка достаточности плотности

Результат: Валидированное облако точек готово к обработке

Этап 2: Восстановление контрольной точки (15-20%)

Цель: Возобновить обработку с места остановки (если была прервана)

Функциональность:

  • Checkpoint-система сохраняет промежуточные результаты
  • При повторном запуске пропускаются уже выполненные шаги
  • Экономия времени при сбоях или отменах

Механизм: Если контрольная точка существует, обработка продолжается с последнего завершённого этапа. Если нет — начинается с начала.

Сохраняемые данные:

  • Нормализованное облако точек
  • Классифицированные точки земли
  • Сегментированные деревья (частично)

Этап 3: Выполнение конвейера обработки (20-85%)

Самый сложный и длительный этап

3.1. Предобработка и нормализация (20-30%)

Задачи:

  1. Фильтрация шумов

    • Удаление статистических выбросов
    • Фильтр низкой интенсивности
    • Удаление изолированных точек
  2. Классификация точек земли

    • Алгоритм прогрессивной морфологической фильтрации (PMF)
    • Выделение поверхности земли из растительности
    • Классы: земля (2), не-земля (1)
  3. Создание цифровой модели рельефа (DTM)

    • Триангуляция точек земли (TIN)
    • Интерполяция высот
    • Разрешение: 0.5-1.0 м
  4. Нормализация высот

    • Вычитание высоты рельефа из каждой точки
    • Перевод из абсолютных высот в высоты над землей
    • Создание нормализованного облака точек

Результат: Облако точек с высотами относительно земли

3.2. Генерация модели высоты полога (30-40%)

Задачи:

  1. Создание CHM (Canopy Height Model)

    • Растеризация нормализованных точек
    • Выбор максимальной высоты в каждой ячейке
    • Разрешение: 0.5 м
  2. Сглаживание CHM

    • Гауссовский фильтр для уменьшения шума
    • Заполнение пропусков интерполяцией
    • Сохранение границ крон
  3. Выявление локальных максимумов

    • Поиск пиков — вершин деревьев
    • Адаптивное окно поиска в зависимости от высоты
    • Фильтрация ложных пиков

Результат: Растровая модель высоты и координаты вершин деревьев

3.3. Сегментация деревьев (40-60%)

Цель: Выделить индивидуальные деревья и присвоить каждой точке ID дерева

Методы:

  1. Watershed алгоритм (Водораздел)

    • CHM представляется как топографическая поверхность
    • Локальные максимумы — вершины холмов (деревья)
    • Алгоритм "заливает" поверхность, разделяя на бассейны
    • Каждый бассейн = одно дерево
  2. Кластеризация точек

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

    • Удаление слишком маленьких сегментов (шум)
    • Объединение фрагментов одного дерева
    • Разделение ошибочно объединенных деревьев

Результат: Каждой точке присвоен TreeID, каждому дереву — уникальный идентификатор

3.4. Классификация пород (60-70%)

Цель: Определить породу (тип) каждого дерева

Извлечение признаков для каждого дерева:

  1. Геометрические признаки

    • Высота дерева
    • Диаметр кроны (средний, макс, мин)
    • Площадь проекции кроны
    • Форма кроны (отношение высоты к диаметру)
    • Асимметрия кроны
  2. Структурные признаки

    • Высота начала кроны
    • Протяженность кроны
    • Доля кроны в общей высоте
    • Плотность точек в кроне
  3. Интенсивность отражения

    • Средняя интенсивность
    • Стандартное отклонение интенсивности
    • Распределение интенсивности по высоте
  4. Пространственные признаки

    • Плотность точек
    • Количество возвратов сигнала
    • Распределение точек по ярусам

Классификация:

Модели машинного обучения (Random Forest, XGBoost):

  • Обучены на эталонных участках с известными породами
  • Точность: 75-90% в зависимости от породного состава

Классы пород:

  • Хвойные (Conifer)
  • Лиственные (Deciduous)
  • Опционально: детальная классификация (сосна, ель, береза и т.д.)

Результат: Каждому дереву присвоен класс породы

3.5. Оценка яруса (70-75%)

Цель: Определить ярусность древостоя

Методы:

  1. Анализ распределения высот

    • Гистограмма высот деревьев
    • Выявление модальных значений (пики = ярусы)
  2. Кластеризация по высоте

    • K-means или DBSCAN по высотам
    • Определение количества ярусов

Классификация ярусов:

  • I ярус — доминирующие (самые высокие)
  • II ярус — содоминирующие
  • III ярус — подчиненные
  • Подрост — h менее 5 м

Результат: Каждому дереву присвоен номер яруса

3.6. Расчет объема (75-85%)

Цель: Вычислить объем ствола каждого дерева

Процесс:

  1. Расчет диаметра на высоте груди (DBH)

    Используются аллометрические уравнения: DBH = a + b × H + c × Dcrown + d × H × Dcrown

    Где:

    • DBH — диаметр на высоте груди (см)
    • H — высота дерева (м)
    • Dcrown — диаметр кроны (м)
    • a, b, c, d — коэффициенты модели

    Коэффициенты специфичны для:

    • Породы дерева
    • Региона
    • Типа леса
  2. Расчет площади сечения

    g = π × (DBH / 2)² = 0.00007854 × DBH²

  3. Определение видового числа

    Видовое число (f) зависит от:

    • Породы
    • Возраста (через высоту)
    • Условий произрастания

    Типичные значения: 0.40-0.52

  4. Расчет объема ствола

    V = g × H × f

    Где:

    • V — объем ствола (м³)
    • g — площадь сечения (м²)
    • H — высота дерева (м)
    • f — видовое число

Валидация:

  • Проверка на реалистичность значений
  • Сравнение с таксационными таблицами
  • Фильтрация аномалий

Результат: Каждому дереву присвоен объем ствола в м³

Этап 4: Экспорт результатов (85-90%)

Цель: Сформировать выходные файлы в стандартных форматах

Создаваемые файлы:

  1. Shapefile (.shp)

    Векторный формат для ГИС-систем

    Геометрия: Точки (координаты центра основания дерева)

    Атрибуты:

    • TreeID — уникальный идентификатор
    • Height — высота дерева (м)
    • DBH — диаметр на высоте груди (см)
    • CrownDiameter — диаметр кроны (м)
    • Species — порода (Conifer/Deciduous)
    • Tier — ярус
    • Volume — объем ствола (м³)
    • X, Y, Z — координаты
  2. GeoJSON (.geojson)

    Веб-совместимый формат для картографии

    Аналогичная структура атрибутов в JSON

  3. CSV (.csv)

    Табличный формат для анализа в Excel и других табличных редакторах

    Те же атрибуты в табличном виде

  4. Агрегированная статистика

    Сводка по всему участку:

    • Общее количество деревьев
    • Количество по породам
    • Средние значения параметров
    • Запас древостоя (м³/га)
    • Полнота (м²/га)
    • Распределение по классам диаметра
    • Распределение по ярусам

Результат: Набор файлов готов к скачиванию

Этап 5: Загрузка результатов (90-95%)

Цель: Сохранить результаты в облачное хранилище

Действия:

  1. Упаковка файлов

    • Создание ZIP архива с результатами
    • Включение всех форматов (SHP, GeoJSON, CSV)
    • Добавление README с описанием
  2. Загрузка в облачное хранилище

    • Сохранение в хранилище проекта
    • Генерация временных ссылок для скачивания
  3. Сохранение метаданных в базу данных

    • Обновление статуса задачи
    • Запись статистики
    • Сохранение ссылок на файлы

Результат: Результаты доступны для скачивания через веб-интерфейс

Этап 6: Очистка (95-100%)

Цель: Удалить временные файлы

Действия:

  1. Удаление промежуточных данных

    • Нормализованные облака точек
    • Растровые модели (CHM, DTM)
    • Временные файлы обработки
  2. Сохранение контрольных точек (опционально)

    • Для возможности повторного анализа
    • При наличии свободного места
  3. Освобождение ресурсов

    • Завершение процесса обработчика
    • Очистка памяти
    • Логирование завершения

Результат: Задача завершена, ресурсы освобождены

Реальное время обработки

Факторы, влияющие на скорость

  1. Размер данных

    • Количество точек в облаке
    • Площадь участка
    • Плотность точек
  2. Характеристики древостоя

    • Количество деревьев
    • Полнота насаждения
    • Ярусность (многоярусные сложнее)
  3. Вычислительные ресурсы

    • Количество ядер CPU
    • Объем оперативной памяти
    • Загрузка системы

Типичные значения

ПлощадьТочек (млн)ДеревьевВремя
10 га5-101000-20005-10 мин
50 га25-505000-1000020-40 мин
100 га50-10010000-2000040-90 мин
500 га250-50050000-1000003-6 ч

Примечание: При высокой загрузке системы время может увеличиваться

Мониторинг прогресса

Уведомления в реальном времени

Веб-интерфейс отображает:

  • Текущий этап — название и описание
  • Прогресс — процент выполнения (0-100%)
  • Логи — детальные сообщения о ходе обработки
  • Время — прошедшее и оценочное оставшееся

Возможность отмены

  • Задачу можно остановить на любом этапе
  • Checkpoint сохранит прогресс
  • При повторном запуске продолжится с места остановки

Обработка ошибок

Типы ошибок

  1. Ошибки данных

    • Невалидный формат LAS
    • Недостаточная плотность точек
    • Отсутствие классификации земли
  2. Вычислительные ошибки

    • Нехватка памяти
    • Превышение лимита времени
    • Ошибки в алгоритмах
  3. Системные ошибки

    • Проблемы с хранилищем
    • Сбои в сети
    • Недоступность сервисов

Обработка

  • Автоматический retry — повторная попытка при временных сбоях
  • Graceful degradation — продолжение с упрощенными параметрами
  • Детальное логирование — для диагностики проблем
  • Уведомление пользователя — с описанием проблемы

Что дальше?