Отворена карта на землищата в България

Граници на землищата в България

Ако не сте забелязали до сега, обичам картите като тип визуализация. Показват в пространството изключително сложна информация, а в ръцете на добър дизайнер може да се превърнат дори в изкуство. Именно затова направих инструмента за анализ на изборите. Целта му беше да сравняваме по общини резултатите както от различни вотове, така и с данни от НСИ и Министерството на финансите.

Покрай изборите обаче бързо разбрах, че имаме нужда от още по-детайлни карти – по градове и села. Това стана още по-очевидно, когато отворих данните за разрешителните за сеч, където всичко е кодирано по землища. Възможно е да се покажат данните като точки с координатите на селищата, но това рядко изглежда добре или е полезно. Проблемът е, че е изключително трудно да се открият административните граници в България. Картата на общините я изведох от OpenStreetMap. Агенцията по геодезия, която поддържа кадастъра, публикува някакви карти, но са неизползваеми в този си вид. Затова преди време се захванах и събирайки информация от различни източници съставих карта на всички землища в България. Актуална е към януари 2015 и може да я свалите свободно от Github, където е документирана.

Картата е в geojson формат и съдържа 4626 землища. Очертанията им не съвпадат с реалните, а са доста точно приближение – до 100-130 метра. Опростих геометрията и ограничих точността на координатите, за да намаля размера на файла. Сега е около 2Mb, което позволява да се използва в интерактивни карти. Всяко землище има кода на населеното място по ЕКАТТЕ. Някои от землищата имат и списък със селища, които са на територията им, защото нямат собствени землища. В България има около 600 такива, три от които са градове.

Приложения

Отново в Github ще намерите и таблица с ЕКАТТЕ кодовете, имената на населените места, кода на общината, площта на землището им и населението към декември 2013. Някои селища нямат площ на землището или население. На картата в лилаво се вижда разпределението на населението из страната. На втората карта в червено пък се виждат разрешението количества дървесина за сеч между април 2011 и декември 2014.

Разпределение на населението в странатаРазпределение на населението в страната

Разрешителни за сеч по землищаРазрешителни за сеч по землища

Следващите три примера са от парламентарните избори през 2014-та. Първата карта показва къде най-много са били дописвани гласоподаватели като процент от всички в списъка. Дясната карта показва същите данни, но на общинско ниво. За община Аврен 22% от имената в списъците са дописани. Ако разделим обаче на селища, виждаме, че в самия Аврен нивото е ниско, а в околните села то стига до 75%. Следващите карти показва избирателната активност и къде има най-много зачетени бюлетини (между 60 и 100%).

Гласоподаватели дописани в списъцитеГласоподаватели дописани в списъците – по селища и по общини

Избирателна активност - НС 2014Избирателна активност – НС 2014

Най-много зачетени бюлетини - НС 2014Най-много зачетени бюлетини – НС 2014

Умишлено не съм сложил легенда на тези карти – целта им е визуално да сравните точността на представената информация. При такава степен на детайлност, цифрите за конкретните селища не са от такова съществено значение. Най-често се търси концентрация на събития тип heatmap или сравнение на селски и градски региони. При визуализация на данни свързани с населението като избори и статистика на НСИ ще е полезно да се слагат различни стойности на прозрачност в съответствие с населението на региона. Така ще изпъкват регионите с най-голямо значение за общия резултат – нещо, което сега не виждаме. Ще го видите в тази карта на NYT. В зависимост от данните, трябва да се избира правилно групиране за цветовете. Аз предпочитам равните интервали. При прозрачността обаче трябва log, защото населението на София ще изтрие всички останали селища от картата с минимална прозрачност.

Ограничения

Най-важното, което трябва да знаете за тази карта е, че тя не представя точно границите на населените места, а доста точно приближение. Затова не е подходяща за преценка дали една точка е в границите на землище или не. Всъщност, списъкът на „включени селища“ към някои землища е направена точно така – взех координатите на населените места и проверих в кой полигон се намират. Ако обаче точката е била твърде близо до границата, може да се окаже, че селището е приписано на съседното землище. Използвах този алгоритъм, но ни трябват много по-точни граници, за да направим коректна справка. Тъй като обаче селата са малки, не мисля, че това ще има отражение към визуализациите. Не трябва обаче да се забравя, че при показване на данни, трябва да се събират стойностите за всички селища в едно землище.

Картата показва състояние към началото на тази година, така че може да има проблеми при показване на по-стари данни, където населените места имат различни имена или сега са закрити. Не открих информация за промяна на самите землища в последните десетилетия. По-скоро има промяна в това кои селища влизат в тях. Затова ще се опитам в бъдеще да добавя списък с всички ЕКАТТЕ кодове, които влизат или са влизали в тях.

На картите горе ще забележите бели петна. Това не са липсващи землища, а грешки при напасването на данните. Резултатите от избори 2014-та на ЦИК, например, имат кодове за населеното място на всяка секция. Някои от тях обаче не съвпадат с кодовете на землищата. Нямах време да проверя защо това е така и направих само няколко бързи примера. В Github обаче ще обновя картата, ако открия грешки. Ако някой иска да помогне с добавянето на кодове към землищата или поправянето им, може да го направи директно там.

Другo, което се вижда на примерните снимки тук е, че има леки процепи между землищата. Това не са празни пространства между самите граници, а козметичен дефект заради закръглянето на координатите при намаляване на полигоните в geojson.io. Всъщност, наистина има няколко празни места на картите, но са едва забележими. Причината за тях е опростяването на геометрията, което направих с mapshaper. Има две решения на този проблем. Първото е да се добавят граници (border,stroke) с широчина един пиксел и същия цвят като полигона. Така землищата се припокриват незабележимо и запълват дупките. Второто решение е да се слеят полигоните с еднакъв цвят с помощта на mapshaper, след това да се съберат пак в един файл. Това ще намали размера наполовина. Добре ще е обаче да се мине отново файла с mapshaper, за да се опрости геометрията (90%, например) и да се махнат белите петна. Така визуализацията може да се намали до 30-200Kb. Всичко това може да се направи динамично на сайта или с node на сървъра.

Това не е решение

Аналогично на останалите данни, които съм отварял, това тук е само временно решение. Кадастъра трябва да публикува землищата в отворен формат и актуални към всяка промяна настъпила с решение на МС. Данните ще са под 1Gb zip-нати за последните 100 г. Ако го направят по-умно с версиониране, ще е дори не повече от 100-200 Mb. Същото важи за границите на общините и областите. Друга важна мярка е унифициране на наименованията на населените места в регистрите. Странно е, че всички институции публикуват справки в съвсем различен формат. Някои използват стари имена, други дори да посочват ЕКАТТЕ, слагат грешни кодове. Пълен хаос.

Тези карти сами по себе си не са информация, която може да анализираме, но са от критично значение, когато искаме да осмислим данните на институциите. Показателен пример е сравнението между дописаните избиратели по общини и селища в Аврен. Трябва да може да захранваме лесно цифрите от справки от институциите, а не да се пишат конвертори всеки път, както правя аз. Примерът горе с изборите показва колко проблеми създава това. От тази карта може да се изваждат и определени региони – област или община, когато искаме да покажем разбивка на информация на местно ниво. Пример би било колко от бюджета отива за училища, здраве и ремонти в главния град и селата.

Базите данни на кадастъра са защитени тъй като по закон се плаща такса за справки. Това се отнася до конкретни имоти, собствениците им и скиците им. Не може да важи за публична информация като административната карта на държавата. Не може да крият къде точно минават границите на държавата, областите, общините и землищата. Всъщност, тази информация може да се намери на сайта им, но те твърдят, че е защитена. Картата, която споделям тук, не съдържа нито една цифра от границите предоставени публично на сайта на кадастъра.

11 коментара

  1. Благодаря за данните!

    Преди година разработвах интерактивна карта на съдебните райони, но от МРРБ ме спънаха, когато не ми предоставиха данни за 3-4 землища, които ми бяха необходими, за да довърша картата.

    Надявам се да намеря време и с данните от тук да я публикувам.

    Страхотно е, че ги има заради Вас!

  2. Къде е тази карта на землищата; очаквах клик на първата снимка да я отвори, вместо просто по-голяма снимка…

  3. Не, както обясних горе, това е core dataset в geojson формат, който може да се използва за визуализация на други данни. Може да се вкара в mapbox или cartodb с малко кодиране.

  4. „Напълно свободни“ е интересна интерпретация. Първо, сайта не позволява сваляне на данните просто така. Трябва доста да се поровиш докато откриеш, че не са си затворили интерфейса на arcgis-а, от където може да се свалят данните в някакъв формат, който пък трябва после да обработиш, за да е използваем в отворени приложения. Второ, въобще не е документирано към коя дата са актуални данните и какво представшяват. Вече съм намерил няколко землища, които те твърдят, че съществуват, а са на закрити от години населени места.

    Най-вече обаче на целият сайт на кадастъра е написано изрично, че всичко на сайта е със запазени права. На основната страница има дори лиценз посочващ, че въпросните карти може да се използват за лична употреба, но само толкова.

    Тоест, дори да успее някой да свали данните им – въпреки липсата на документация и възможност за сваляне в отворен формат – пак няма да може да ги използва, за да отпечата, например, визуализация на данни като тези горе. Знам, че лицензите масово не се съблюдават, но това не означвата, че информацията е свободна или достъпна.

Вашият коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

This site uses Akismet to reduce spam. Learn how your comment data is processed.