# Транспортная доступность и «тень Минска»: проверяемый пакет (INF-04, v1.0.0)

Пакет воспроизводит все числа исследования
«[Транспортная доступность](https://by-population-maps.vercel.app/research/access)»:
травел-таймы 118 райцентров до Минска, облцентров и переходов с ЕС по
дорожному графу OSM, пояса доступности, немонотонный профиль
десятилетней динамики («тень Минска») и регрессию с зарплатным
контролем INF-03.

## Воспроизведение одной командой

```bash
bash code/run.sh
```

Требования: Python ≥ 3.10, только стандартная библиотека (~1–2 мин:
загрузка графа на 833 438 рёбер и девять запусков Дейкстры —
6 облцентров и 3 состояния границы).
Конвейер стартует с извлечённого дорожного графа (версия OSM-выгрузки
и md5 зафиксированы в `sources/registry.csv`): граф → снап
райцентров → Дейкстра → пояса → профиль → регрессия → сверка с
`checks/expected_results.json`.

## Главные результаты

- **Профиль немонотонный** — «тень Минска» подтверждается: пригород
  (<45 мин до Минска или облцентра) — медиана **−8,0 %** за 2015–2025,
  кольцо 1,5–2,5 ч — **−14,2 %** (дно), дальняя периферия >2,5 ч —
  **−12,5 %**, лучше кольца. Пояс <45 мин до самого Минска: **+11,9 %**.
- **Доступность капитализируется в зарплатах**: без зарплатного
  контроля пригородная премия +9,5 п.п. (значима), с контролем
  +3,0 (незначима); кольцо −3,2 п.п. к базе (|t| ≈ 1,6). Выводы
  опираются на описательный профиль, а не на значимость регрессии.
- **Граница**: из 13 легковых переходов в ЕС осталось 4 в надир
  03.2024–11.2025 и 6 после реоткрытий 17.11.2025. Шок локализован:
  гродненский пояс терял 1,5–2,5 ч пути до ЕС (Гродненский район:
  16 мин → 2 ч 57 мин, с закрытия Бобровников 02.2023 — почти три
  года), брестский коридор в модельном надире без потерь (вне модели —
  двухнедельное закрытие Тересполя на учения «Запад-2025», 09.2025).

## Структура пакета

- `data/raw/osm/graph_edges.csv.gz` — дорожный граф (motorway…tertiary,
  скорости 105/90/75/60/45 км/ч); извлечение из PBF — `etl/osm_graph.py`
  (требует pyosmium и сам PBF, в конвейере пакета не выполняется);
- `data/raw/border/`, `data/curated/border_crossings.csv` — разведка и
  нормализованный реестр переходов (статусы 2019/надир/2026);
- `etl/access.py` — весь расчёт (гаверсинус, Дейкстра, пояса, OLS+HC1);
- `web/public/data/access.json`, `data/curated/travel_times.csv` — итоги;
- `params/assumptions.yaml` — допущения; `checks/` — метрики и инварианты.

Методика, ограничения, инструкции для агентов — LIMITATIONS.md,
PROVENANCE.md, AGENT.md.
