Общая схема процесса
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%)
Цель: Загрузить и валидировать исходные файлы
Действия:
-
Загрузка файла из хранилища
- Скачивание LAS/LAZ из облачного хранилища или Яндекс.Диска
- Проверка целостности файла
- Распаковка LAZ при необходимости
-
Валидация формата
- Проверка версии LAS (1.2, 1.4)
- Проверка системы координат
- Анализ атрибутов точек
-
Первичный анализ
- Подсчет количества точек
- Определение границ территории
- Расчет плотности точек
- Статистика по классам точек
-
Проверка качества данных
- Выявление пропусков в данных
- Проверка на выбросы
- Оценка достаточности плотности
Результат: Валидированное облако точек готово к обработке
Этап 2: Восстановление контрольной точки (15-20%)
Цель: Возобновить обработку с места остановки (если была прервана)
Функциональность:
- Checkpoint-система сохраняет промежуточные результаты
- При повторном запуске пропускаются уже выполненные шаги
- Экономия времени при сбоях или отменах
Механизм: Если контрольная точка существует, обработка продолжается с последнего завершённого этапа. Если нет — начинается с начала.
Сохраняемые данные:
- Нормализованное облако точек
- Классифицированные точки земли
- Сегментированные деревья (частично)
Этап 3: Выполнение конвейера обработки (20-85%)
Самый сложный и длительный этап
3.1. Предобработка и нормализация (20-30%)
Задачи:
-
Фильтрация шумов
- Удаление статистических выбросов
- Фильтр низкой интенсивности
- Удаление изолированных точек
-
Классификация точек земли
- Алгоритм прогрессивной морфологической фильтрации (PMF)
- Выделение поверхности земли из растительности
- Классы: земля (2), не-земля (1)
-
Создание цифровой модели рельефа (DTM)
- Триангуляция точек земли (TIN)
- Интерполяция высот
- Разрешение: 0.5-1.0 м
-
Нормализация высот
- Вычитание высоты рельефа из каждой точки
- Перевод из абсолютных высот в высоты над землей
- Создание нормализованного облака точек
Результат: Облако точек с высотами относительно земли
3.2. Генерация модели высоты полога (30-40%)
Задачи:
-
Создание CHM (Canopy Height Model)
- Растеризация нормализованных точек
- Выбор максимальной высоты в каждой ячейке
- Разрешение: 0.5 м
-
Сглаживание CHM
- Гауссовский фильтр для уменьшения шума
- Заполнение пропусков интерполяцией
- Сохранение границ крон
-
Выявление локальных максимумов
- Поиск пиков — вершин деревьев
- Адаптивное окно поиска в зависимости от высоты
- Фильтрация ложных пиков
Результат: Растровая модель высоты и координаты вершин деревьев
3.3. Сегментация деревьев (40-60%)
Цель: Выделить индивидуальные деревья и присвоить каждой точке ID дерева
Методы:
-
Watershed алгоритм (Водораздел)
- CHM представляется как топографическая поверхность
- Локальные максимумы — вершины холмов (деревья)
- Алгоритм "заливает" поверхность, разделяя на бассейны
- Каждый бассейн = одно дерево
-
Кластеризация точек
- Точки объединяются на основе пространственной близости
- Учет вертикальной и горизонтальной структуры
- Обработка перекрывающихся крон
-
Постобработка сегментации
- Удаление слишком маленьких сегментов (шум)
- Объединение фрагментов одного дерева
- Разделение ошибочно объединенных деревьев
Результат: Каждой точке присвоен TreeID, каждому дереву — уникальный идентификатор
3.4. Классификация пород (60-70%)
Цель: Определить породу (тип) каждого дерева
Извлечение признаков для каждого дерева:
-
Геометрические признаки
- Высота дерева
- Диаметр кроны (средний, макс, мин)
- Площадь проекции кроны
- Форма кроны (отношение высоты к диаметру)
- Асимметрия кроны
-
Структурные признаки
- Высота начала кроны
- Протяженность кроны
- Доля кроны в общей высоте
- Плотность точек в кроне
-
Интенсивность отражения
- Средняя интенсивность
- Стандартное отклонение интенсивности
- Распределение интенсивности по высоте
-
Пространственные признаки
- Плотность точек
- Количество возвратов сигнала
- Распределение точек по ярусам
Классификация:
Модели машинного обучения (Random Forest, XGBoost):
- Обучены на эталонных участках с известными породами
- Точность: 75-90% в зависимости от породного состава
Классы пород:
- Хвойные (Conifer)
- Лиственные (Deciduous)
- Опционально: детальная классификация (сосна, ель, береза и т.д.)
Результат: Каждому дереву присвоен класс породы
3.5. Оценка яруса (70-75%)
Цель: Определить ярусность древостоя
Методы:
-
Анализ распределения высот
- Гистограмма высот деревьев
- Выявление модальных значений (пики = ярусы)
-
Кластеризация по высоте
- K-means или DBSCAN по высотам
- Определение количества ярусов
Классификация ярусов:
- I ярус — доминирующие (самые высокие)
- II ярус — содоминирующие
- III ярус — подчиненные
- Подрост — h менее 5 м
Результат: Каждому дереву присвоен номер яруса
3.6. Расчет объема (75-85%)
Цель: Вычислить объем ствола каждого дерева
Процесс:
-
Расчет диаметра на высоте груди (DBH)
Используются аллометрические уравнения: DBH = a + b × H + c × Dcrown + d × H × Dcrown
Где:
- DBH — диаметр на высоте груди (см)
- H — высота дерева (м)
- Dcrown — диаметр кроны (м)
- a, b, c, d — коэффициенты модели
Коэффициенты специфичны для:
- Породы дерева
- Региона
- Типа леса
-
Расчет площади сечения
g = π × (DBH / 2)² = 0.00007854 × DBH²
-
Определение видового числа
Видовое число (f) зависит от:
- Породы
- Возраста (через высоту)
- Условий произрастания
Типичные значения: 0.40-0.52
-
Расчет объема ствола
V = g × H × f
Где:
- V — объем ствола (м³)
- g — площадь сечения (м²)
- H — высота дерева (м)
- f — видовое число
Валидация:
- Проверка на реалистичность значений
- Сравнение с таксационными таблицами
- Фильтрация аномалий
Результат: Каждому дереву присвоен объем ствола в м³
Этап 4: Экспорт результатов (85-90%)
Цель: Сформировать выходные файлы в стандартных форматах
Создаваемые файлы:
-
Shapefile (.shp)
Векторный формат для ГИС-систем
Геометрия: Точки (координаты центра основания дерева)
Атрибуты:
- TreeID — уникальный идентификатор
- Height — высота дерева (м)
- DBH — диаметр на высоте груди (см)
- CrownDiameter — диаметр кроны (м)
- Species — порода (Conifer/Deciduous)
- Tier — ярус
- Volume — объем ствола (м³)
- X, Y, Z — координаты
-
GeoJSON (.geojson)
Веб-совместимый формат для картографии
Аналогичная структура атрибутов в JSON
-
CSV (.csv)
Табличный формат для анализа в Excel и других табличных редакторах
Те же атрибуты в табличном виде
-
Агрегированная статистика
Сводка по всему участку:
- Общее количество деревьев
- Количество по породам
- Средние значения параметров
- Запас древостоя (м³/га)
- Полнота (м²/га)
- Распределение по классам диаметра
- Распределение по ярусам
Результат: Набор файлов готов к скачиванию
Этап 5: Загрузка результатов (90-95%)
Цель: Сохранить результаты в облачное хранилище
Действия:
-
Упаковка файлов
- Создание ZIP архива с результатами
- Включение всех форматов (SHP, GeoJSON, CSV)
- Добавление README с описанием
-
Загрузка в облачное хранилище
- Сохранение в хранилище проекта
- Генерация временных ссылок для скачивания
-
Сохранение метаданных в базу данных
- Обновление статуса задачи
- Запись статистики
- Сохранение ссылок на файлы
Результат: Результаты доступны для скачивания через веб-интерфейс
Этап 6: Очистка (95-100%)
Цель: Удалить временные файлы
Действия:
-
Удаление промежуточных данных
- Нормализованные облака точек
- Растровые модели (CHM, DTM)
- Временные файлы обработки
-
Сохранение контрольных точек (опционально)
- Для возможности повторного анализа
- При наличии свободного места
-
Освобождение ресурсов
- Завершение процесса обработчика
- Очистка памяти
- Логирование завершения
Результат: Задача завершена, ресурсы освобождены
Реальное время обработки
Факторы, влияющие на скорость
-
Размер данных
- Количество точек в облаке
- Площадь участка
- Плотность точек
-
Характеристики древостоя
- Количество деревьев
- Полнота насаждения
- Ярусность (многоярусные сложнее)
-
Вычислительные ресурсы
- Количество ядер CPU
- Объем оперативной памяти
- Загрузка системы
Типичные значения
| Площадь | Точек (млн) | Деревьев | Время |
|---|---|---|---|
| 10 га | 5-10 | 1000-2000 | 5-10 мин |
| 50 га | 25-50 | 5000-10000 | 20-40 мин |
| 100 га | 50-100 | 10000-20000 | 40-90 мин |
| 500 га | 250-500 | 50000-100000 | 3-6 ч |
Примечание: При высокой загрузке системы время может увеличиваться
Мониторинг прогресса
Уведомления в реальном времени
Веб-интерфейс отображает:
- Текущий этап — название и описание
- Прогресс — процент выполнения (0-100%)
- Логи — детальные сообщения о ходе обработки
- Время — прошедшее и оценочное оставшееся
Возможность отмены
- Задачу можно остановить на любом этапе
- Checkpoint сохранит прогресс
- При повторном запуске продолжится с места остановки
Обработка ошибок
Типы ошибок
-
Ошибки данных
- Невалидный формат LAS
- Недостаточная плотность точек
- Отсутствие классификации земли
-
Вычислительные ошибки
- Нехватка памяти
- Превышение лимита времени
- Ошибки в алгоритмах
-
Системные ошибки
- Проблемы с хранилищем
- Сбои в сети
- Недоступность сервисов
Обработка
- Автоматический retry — повторная попытка при временных сбоях
- Graceful degradation — продолжение с упрощенными параметрами
- Детальное логирование — для диагностики проблем
- Уведомление пользователя — с описанием проблемы
Что дальше?
- Преимущества — сравнение с другими методами
- Технологические возможности — надёжность, скорость, безопасность платформы
- Руководство пользователя — как запустить обработку