Мапа ймовірних відключень електроенергії Києва

Відкрити інтерактивну мапу у новому вікні ↗

Пару місяців тому я думав про візуалізацію вимкнення електроенергії, а нещодавно у твітерах почали знову обговорювати таку ідею, і це вийшло цікавою задачею, тому на вихідних, нарешті, зробив це все.

АТТЕНШН: Мапа не показує жодних даних в реальному часі (лише відносно графіків) та можливо є багато помилок – використовуйте її лише в інформаційних цілях, ну і всьо!

Відповіді на очікувані запитання

Якщо якийсь будинок взагалі ніяк не світиться – скоріш за все (99%), проблема десь у мене – багато вулиць та будинків не розпізналось, але може раптом бути таке, що його також немає у розкладі Yasno.

Чому в якийсь момент всі зони червоні та сірі – я не знаю. Можливо, в цей час перемикають черги, або є якісь потенційно якісь інші причини.

Скоріш за все, і на більшість інших запитань у мене буде одна і така ж відповідь – я не знаю :)

Про процес

Через те, що будинків дуже багато, і по геокодуванню умовний гугл (або інших сервіс з мапами) з мене стягнув би нормально грошей, прекрасна альтернатива – OpenStreetMap!

Дані про все, що є в Україні доступні на Geofabrik. За допомогою claude та osmium я зміг завантажити, відфільтрувати лише будинки (вулиця, номер будинку та полігон, який описував цей будинок) по bounding box Києва (вже пізніше побачив, що там можна зразу витягнути все з конкретного полігона), і вже в Jupyter Notebook почав працювати з даними – через pyrosm вдалось дофільтрувати дані вже фактичними київськими будинками, і щось вже стало виходити!

З Yasno витягнути назви вулиць теж дуже просто – скоріш для все, для оптимізації вони їх кладуть в local storage. А з обʼєднаннями назв вулиць OSM та Yasno вже стало складно – абсолютно різні формати. Причому, якщо для найпростіших («Михайлівська вулиця»/«вул. Михайлівська») та трохи складніших («вулиця Андрія Малишка»/«вул. вулиця Малишка Андрія») є якісь патерни, то для багатьох нових назв вулиць (наприклад, проспект Повітряних Сил) вже немає в Yasno ніякої інформації. Ну і трапляються також орфографічні помилки в назвах, тому вулиця Казарменна в Yasno виглядає, як «Казармена».

Врешті-решт, там вже залишалось під кінець приблизно 150 вулиць, (це до 10% від всіх назв вулиць) я переключився на іншу проблему – номера будинків! Для простих варіантів (24А та 24-А або 24/A) знову написав скрипт для нормалізації номерів, але були й складніші варіанти, наприклад «Саксаганського, 33» в OSM та «Саксаганського 33/35» в Yasno – фактично це один і той же будинок, але дріб іноді потрібно враховувати для будинків з літерою (12/Б). Десь вирішувалась проблема, але з іншими будинками вона зʼявлялась, тому для деяких будинків може бути неактуальна інформація, і треба перевіряти.

Ну і величезна подяка команді OSM Україна за те, що я можу безкоштовно використовувати їх тайл-сервер :)