02. Эталоны реальных XC-полётов и замер проходимости на всех локациях
Цель: прогнать бота (01) по матрице «локация × пресет × ветер × сид», сравнить со значениями реальных маршрутных полётов на дельтаплане и записать исходную картину (без правки конфигов).
Контекст: tests/atmosphere/xc/ (бот из 01), configs/locations/*.json, configs/weather/{weak,medium,strong}.json,
docs/research/thermals.md, docs/guide/atmosphere.md.
Владения: tools/atmosphere/xc_matrix.sh, tools/atmosphere/xc_report.py, docs/research/xc_reference.md (новый),
раздел «Проходимость маршрута» в docs/guide/atmosphere.md.
Шаги:
- docs/research/xc_reference.md — эталоны с источниками (Reichmann «Cross-Country Soaring», статьи по анализу IGC
дельтапланов/парапланов, XContest/Leonardo; треки не скачивать массово). Ориентиры для дельтаплана
(проверить и уточнить):
Метрика Средний день Сильный день средний набор в термике 1–2 м/с 2–3,5 м/с доля времени в кружении 40–55 % 30–45 % средняя маршрутная скорость 20–30 км/ч 30–45 км/ч термиков на 10 км 2–4 1,5–3 вариометр ≥ +7 м/с почти никогда редко (≤ 2 % времени в термиках) xc_matrix.sh: 4 локации × {weak, medium, strong} × ветер {0, 15 км/ч с преобладающего направления локации} × 5 сидов × 40 км (маршрут: от старта по ветру/долине — точки задать в скрипте, внутри детального рельефа). С--cloudsи без.xc_report.py: сводная таблица (медиана и квартили по сидам), доля успешных (≥ 40 км без посадки), отклонения от эталонов (в «коридоре» / выше / ниже). Плюс плотность термиков по полю: число живых термиков на 100 км² (черезthermals_near— тут можно, это замер, а не бот) и их сила — сравнить с Lenschow (20–40 % площади в середине слоя — см. thermals.md §1).- Итог — таблица в docs/guide/atmosphere.md + список «что выбивается» (вход для 03).
Критерий приёмки: матрица целиком прогоняется одной командой ≤ 30 мин; в отчёте для каждой пары «локация × пресет» — доля успешных, 6 метрик с квартилями и пометкой коридора; эталоны с ≥ 3 источниками.
Зависимости: 01. Модель: sonnet (эталоны — проверять источники, не выдумывать). Размер: M.