Наш новый совместный с ОВД-Инфо проект посвящен картированию мест, где запрещено проводить митинги. 31 статья Конституции РФ гарантирует свободу собраний, но она ограничена рядом федеральных и региональных законов. Условия отличаются от города к городу, и хотелось увидеть, как выглядит «Территория нельзя» целиком, посчитать её площадь.
Результат проекта: Интерактивная карта «Территория нельзя»
Идея проекта принадлежит ОВД-Инфо, при поддержке OCCRP. Команда ОВД-Инфо провела значительную работу, собрав и проанализировав законодательную базу, чтобы понять какие запреты действуют в различных городах. Мы помогли подготовить данные и отобразить ограничения на карте.
С аналитическими результатами проекта можно ознакомиться в спецпроекте Коммерсант.ru.
Здесь мы расскажем чуть подробнее о технологической части проекта. Подробнее о методологии можно почитать здесь.
Подготовительный этап. Анализ законодательной базы позволяет представить все ограничения в виде перечней типов объектов и сопутствующим им зонам «отчуждения», где нельзя митинговать.
Каждый город в такой таблице представляет собой колонку значений, показывающих: а) действует ли вообще такое ограничение, б) какая зона отчуждения установлена вокруг объекта (если 0, то зона — сам объект, если >0 — то к нему прибавляется буферная зона нужного значения), если ‘нпт’ (непосредственно прилегающие территории), то берется сам объект и зона вокруг него равная максимальному значению по всей РФ.
Каждому типу объектов также сопоставлен соответствующий SQL-запрос, позволяющий выбрать все объекты этого типа из картографической базы данных. В качестве источника данных мы использовали базу данных OpenStreetMap, наш сервис выгрузки данных по регионам обеспечивает быстрый доступ к структированным данным, к которым легко и просто организовать запросы и выборки.
Этап расчетов. Скрипт на Python, который:
- Считывает таблицу типов
- Производит выборки
- В зависимости от значений по каждому типу в каждом городе производит расчеты буферных зон
- Собирает всё вместе в единый слой запретов
- Считает общую площадь доступных и недоступных площадей.
Этап проверки. Чтобы убедиться, что мы ничего не забыли, скрипт также загружает результаты в Веб-ГИС, где бета-тестеры могут просмотреть результаты перед их публикацией на основном сайте.
И, наконец, этап публикации. Требования к скорости окончательных карт предъявляются повышенные, отдельный инструмент (Github) превращает данные в векторные тайлы, которые отгружаются на окончательное красивое представление карты «Территории нельзя».