# Changelog пакета nightlights

## v2.1.2 — 2026-07-16 (техническая пересборка: вендоренные параметры и манифест)

Аналитические результаты (nightlights_v2.json, зональные ряды, события) **не
изменились**; все контрольные метрики и допуски идентичны v2.1.1. Пересборка
вызвана изменением двух вендоренных файлов релизом R3 «Рилс v3 + кейсы H1–H3»
(коммит 7733e54): в `params/assumptions.json` добавлен блок `model.demo_layer`
(параметры демонстрационного слоя demographic_concentration), в визуальный
манифест — sha256 кадров demo-слоя. Опубликованная v2.1.1 неизменяема по
стандарту (ARTIFACT_STANDARD.md §8), поэтому поднята patch-версия.

## v2.1.1 — 2026-07-14

PATCH: скорость воспроизведения снижена вдвое по решению автора.
Адаптивные длительности событийного слоя: тихо 760–900 мс, умеренно
1300, событие 2000, крупное 2700, методологическая остановка 3000
(+пауза 900 после крупных); сцена рилса удвоена до ~97 с (исходное
ТЗ 45–55 с — отклонение зафиксировано в конфиге сцены). Аналитика,
события и кадры не изменились.

## v2.1.0 — 2026-07-14

MINOR: разделение аналитического и визуального слоёв + событийный слой
(аналитические числа v2.0.0 не изменились). (1) Визуальный ряд карты:
1992–2011 — шаблонная VIIRS-like реконструкция (структура VNL-2012 ×
зональная динамика гармонизированного аналитического ряда, стабилизация
median-3), 2012–2024 — наблюдения VIIRS, 2030–2075 — модель; манифест
кадров с провенансом и sha256 (кадры регенерируются
etl/nightlights_visual.py, rasterio). (2) Delta-слои: log1p-разности
радианс-эквивалентных полей с порогом значимости и единой шкалой
(previous_year / base_2024 / сценарий−база / базовые годы анализа).
(3) События и адаптивная скорость: z-скоринг аналитических долей с
волатильностью, весом и персистентностью; методологические переходы
(2011→2012, VNL-2021, граница модели) исключены из скоринга; причины —
только ручные аннотации с источником (Островец — БелАЭС); смежность
районов вендорена (adjacency.json), события воспроизводятся в run.sh
на stdlib. +4 контрольные метрики (93 кадра, 14 событий, 9
региональных). Интерактив сайта: режимы «История»/«Анализ»,
событийный таймлайн, prefers-reduced-motion, Playwright-тесты.

## v2.0.0 — 2026-07-14

MAJOR: «Беларусь из космоса, 1992–2075». Ряд расширен с 9 до 33 лет
наблюдений и продлён моделью до 2075 года. (1) Ретро-сегмент 1992–2011:
DMSP-OLS stable lights в калибровке Li et al. (Figshare, v10 до 2024
года); современный сегмент 2012–2024: EOG VNL v2.1 (зеркало OpenGeoHub;
источник v1 WorldPop fvf оставлен как кросс-проверка, R² ln-долей
0,93–0,98). Вендорятся вырезки растров по Беларуси (35 GeoTIFF, факелы
двух НПЗ замаскированы). (2) Гармонизация «мостом» без подгонки на
стыке: f18-коррекция ×0,486, отображение DN→радианс по перекрытию
simVIIRS/VNL 2014–2024 (b=0,915, R²=0,92 ≥ гейта 0,9), стык
out-of-sample −3,0 % (гейт ±5 %); «готовый» simVIIRS как современный
сегмент отклонён (волатильность ×1,9, нулевые зоно-годы). (3) v1-индекс
расхождения пересчитан по ряду VNL — сюжет воспроизводится на
независимом источнике (Смолевичский −0,45, Солигорский −0,47, Минск
+0,07). (4) Модель будущего 2030–2075: light = bright·(pop-ratio)^β +
floor; β — межрайонная эластичность (industrial 1,60, rural 1,66,
урбан-классы — допущение 1,0), floor — пиксели 1–5 нВт (51 % нац.
света), входы — прогноз v2026.4 (3 сценария × 2 старта); всё в
params/assumptions.json. (5) Рилс-конвейер tools/render_reel_space.py +
сцена: кадры 1080×1920 детерминированы (сид 20260712), RU/BE, два хука.
Набор контрольных метрик заменён (17 метрик v2); v1-пакет остаётся
опубликованным и неизменным.

## v1.0.0 — 2026-07-12

Первый релиз INF-08: зональная светимость 118 районов и Минска по
подлинным годовым композитам VIIRS «average_masked» (EOG VNL 2.1/2.2,
Colorado School of Mines, в 100-м обработке WorldPop `fvf`), 2015–2023;
индекс расхождения «доля света против доли населения» (2022–2023 к
докризисному тренду 2015–2019). Нормировка на долю в стране гасит
версионные скачки продукта. Результат: расхождение сосредоточено в
индустриальных районах (Смолевичский/Жодино доля света ×0,55, Лидский
×0,63, Солигорский ×0,70, Борисовский ×0,78, Гомельский ×0,80,
Оршанский ×0,83, Мозырский ×0,85 при доле населения ≈ стабильной —
свет отстаёт от людей в долях, хотя в абсолюте вырос); Минск держится
вровень (индекс ≈ +0,03). Растровая обработка воспроизводима:
зональная сумма завендорена с sha256, URL+sha256 исходных композитов в
реестре, расчёт от зональной суммы — на стандартной библиотеке. Свет
подаётся только как маркер расхождения; методблок §7 перечисляет
причины ложных расхождений. Смоделированный «NPP-VIIRS-like» отвергнут
как нефизично нестабильный (LIMITATIONS §9).
