Skip to the content.

Сводка метрик AgroNDVI

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

Данные: спутниковые снимки

Метрика Значение
Источник AWS Element 84 STAC, bucket sentinel-cogs (us-west-2)
Регион tile MGRS 37TDK – юго-запад Краснодарского края
Период 2023-10-01 – 2024-09-30 (полный сезон)
Фильтр облачности <20%
Всего снимков в серии 45
Распределение по месяцам окт 6, ноя 0, дек 0, янв 2, фев 3, мар 2, апр 3, май 5, июн 9, июл 5, авг 6, сен 4
Средняя облачность по серии 5.3%
Медиана облачности 1.3%
Разрешение 10 м/px (B04, B08); 20 м/px (SCL, ресемплируется до 10м)
Размер одного COG-окна над полями ~2500×1700 px = 17 МБ float32

Данные: границы полей

Метрика Значение
Источник OpenStreetMap, Overpass API
Тэг landuse=farmland
BBox запроса 38.10-38.45 E, 45.00-45.15 N (~25×17 км)
Всего получено полигонов 152
После фильтра площади >=20 га 149
Финальный отбор (top-20 по площади) 20 полей
Распределение площадей 722 - 1488 га, медиана 845 га
Тэгов crop=rice 14 из 20
Размер GeoJSON 14 КБ

Данные: погода

Метрика Значение
Источники Open Meteo Historical + NASA POWER
Точка запроса 38.275 E, 45.075 N (центр bbox полей)
Период 2023-10-01 – 2024-09-30
Всего дней 366
Колонок daily 18 (11 от Open Meteo + 6 от NASA POWER + дата)
Время ответа Open Meteo 1.3 сек
Время ответа NASA POWER 1.5 сек

Агрегаты сезона (1 апр – 30 сен 2024)

Метрика Значение
T_mean 22.55 °C
T_max за сезон 39.0 °C
T_min за сезон 4.9 °C
Сумма осадков 254.6 мм
Сумма GDD (база 10°C) 2296
Сумма солнечной радиации 3943 MJ/м²
ET0 (потенциальная эвапотранспирация) 991.9 мм
Средняя влажность 56.19 %

NDVI time-series

Метрика Значение
Размер CSV (long format) 900 строк (20 полей × 45 дат)
Доля валидных NDVI после SCL-маски 98.9%
Сглаживание rolling 21d, центрированное
Минимум медианы NDVI по 20 полям -0.03 (январь 2024, затопление чеков)
Максимум медианы NDVI 0.56 (2 августа 2024, пик роста риса)
Амплитуда сезона 0.587
Начало вегетации (NDVI > 0.3) 2023-10-07
GDD на дату пика NDVI 1740

NDVI по полям (после сглаживания)

Метрика Min Median Max
NDVI peak 0.434 (F014) 0.563 0.770 (F004)
Day-of-year пика 134 (13 мая, F017) 213 (31 июля) 221 (8 августа)
Дней с NDVI > 0.3 76 (F005) 181 182
Интеграл NDVI за сезон 56.8 81.7 114.7 (F004)

Pipeline производительность

Этап Время Параллелизм
STAC-search серии 45 снимков (12 чанков, retry x8) ~30 сек sequential
Overpass запрос полей 1.1 сек sequential
Open Meteo + NASA POWER за год 2.8 сек sequential
Чтение 3 полос (B04+B08+SCL) одной даты по окну 40-90 сек sequential
Серия NDVI: 45 дат × 20 полей + zonal stats 7:37 минут 6 потоков (ThreadPoolExecutor)
Sklearn LOO-CV 5 моделей ~5 сек sequential
Anomaly detection (3 метода) ~3 сек sequential
End-to-end холодный старт ~10 минут

Модель прогноза урожайности

Датасет: 20 строк × 18 числовых фичей + 1 синтетический таргет. Оценка: Leave-One-Out CV (n=20 → 20 итераций).

Сравнение 5 моделей

Модель Фичей MAPE % MAE ц/га RMSE ц/га
baseline_mean 0 4.96 2.758 3.534 0.000
baseline_lr_peak 1 2.95 1.613 1.932 0.701
baseline_lr_ndvi 9 4.48 2.459 3.291 0.132
lightgbm 18 4.39 2.412 2.915 0.319
lightgbm_ndvi_only 9 4.54 2.518 2.910 0.322

Победитель – LinearRegression на одной фиче ndvi_peak.

LightGBM train MAPE = 0.03% при LOO MAPE = 4.39% – классический симптом переобучения на маленьком датасете. См. docs/experiments/2026-05-26-lgb-baseline.md для разбора.

LightGBM feature importance (top-5 по gain)

Фича Gain Split count Permutation
ndvi_peak_anomaly 718 85 1.27
ndvi_peak 565 247 1.30
ndvi_growth_rate_max 295 94 0.57
ndvi_vegetation_days 148 224 0.54
ndvi_summer_mean 123 97 0.42

Все 8 weather-фичей имеют gain = 0: они одинаковы для 20 полей (одна точка запроса), LightGBM правильно их отсёк.

Anomaly detection

3 независимых метода, объединение через mean(ranks).

Top-3 аномалий

field_id mean_rank rank_z rank_iso rank_l2 Природа
F004 1.00 1 1 1 Чемпион: max NDVI 0.77, поздний устойчивый пик
F005 2.33 2 2 3 Отстающий: min NDVI 0.45, ранний спад
F017 3.33 3 5 2 Сдвиг: пик 13 мая, на 2-3 недели раньше остальных

Согласованность методов (Spearman ρ)

  Z-total IsoForest L2
anomaly_z_total 1.00 0.70 0.96
isoforest_score 0.70 1.00 0.79
l2_from_median 0.96 0.79 1.00

Высокая согласованность (минимум ρ = 0.70) подтверждает устойчивость аномалий.

Артефакты проекта

Категория Файлы Размер
Sentinel-2 каталоги data/catalog/*.json ~95 КБ
Поля OSM data/fields/fields_v1.geojson 14 КБ
Погода data/weather/weather_daily.csv 60 КБ
NDVI tile (полный) data/processed/S2A_37TDK_*_NDVI.tif 349 МБ
NDVI window-tile серии data/processed/ndvi_series/*.tif (опционально) до 270 МБ за 45 дат
NDVI time-series CSV data/processed/fields_ndvi_series.csv 65 КБ
Фичи + таргет data/processed/fields_features.csv 7 КБ
Аномалии data/processed/fields_anomaly.csv 2 КБ
Модель models/lgb_yield.pkl 80 КБ
Превью PNG data/preview/*.png (15 файлов) ~15 МБ
Интерактивные карты data/preview/*.html ~150 КБ
Скриншоты документации docs/images/*.png (10 файлов) ~3 МБ

Что в портфолио из этих чисел