Обсудить в форуме Комментариев 11Редактировать в вики
Данные об избирательных комиссиях в машиночитаемом виде
На региональных сайтах избирательных комиссий (субодомены сайта ЦИК) появилась информация о всех территориальных и участковых избирательных комиссиях (например Алтайский край). К сожалению, исходно информация предоставляется не в машиночитаемом виде, что препятствует эффективному ее использованию для анализа данных и картографии. Нами были написали скрипты для скачивания всех данных о комиссиях и здесь можно получить полную БД в машиночитаемом виде.
Содержание |
Для каждой избирательной комиссии предоставляется следующая информация:
Для подавляющего большинства участковых избирательных комиссий факс и адрес электронной почты не указаны.
Также указана информация по каждому члену избирательной комиссии и по резерву в участковые избирательные комиссии:
Ниже представлены данные, скачанные с сайтов избирательных комиссий субъектов РФ.
Актуальность: 14.09.2021
Чтобы скачать предыдущие версии данных, необходимо поменять дату в ссылках на другую, имеющуюся в архиве. Доступны следующие даты:
Таблица адресов избирательных комиссий (cik_uik):
Код поля | Название поля | Примечания | Пример |
---|---|---|---|
id | id избирательной комиссии | Если для записи из резерва не удается найти подходящую комиссию, то в таблице адресов избирательных комиссий создается фейковая запись, которой назначается отрицательное значение id. | 45766 |
iz_id | id избирательной комиссии, используемый в ГАС Выборы | 442401997889 | |
reserve_iz_id | id резерва участковой избирательной комиссии, используемый в ГАС Выборы | 828 | |
parent_id | id "вышестоящей" избирательной комиссии | 45764 | |
type_ik | тип избирательной комиссии | type_ik=ik – избирательная комиссия субъекта РФ type_ik=tik – территориальная избирательная комиссия |
uik |
region | субъект РФ, к которой относится избирательная комиссия | kemerovo | |
url | URL интернет страницы с информацией об избирательной комиссии | http://www.kemerovo.vybory.izbirkom.ru/region/kemerovo?action=ik&vrn=442401997889 | |
name | название избирательной комиссии | Участковая избирательная комиссия №545 | |
address | адрес избирательной комиссии | 652840, Кемеровская область, Мысковский городской округ, Чувашка поселок, улица Алтын Шор, дом 4, Дом культуры поселка Чувашка | |
address_voteroom | адрес помещения для голосования | Это поле появилось в выгрузке начиная с 15.02.2018 | 652840, Кемеровская область, Мысковский городской округ, Чувашка поселок, улица Алтын Шор, дом 4, Дом культуры поселка Чувашка |
lat_ik, lon_ik | координаты избирательной комиссии | Эти поля появились в выгрузке начиная с 15.02.2018 | 53.597575, 87.818478 |
lat_voteroom, lon_voteroom | координаты помещения для голосования | Эти поля появились в выгрузке начиная с 15.02.2018 | 53.597575, 87.818478 |
phone | телефон избирательной комиссии | 8-(384-74)-95-6-46 | |
phone_voteroom | телефон помещения для голосования | Это поле появилось в выгрузке начиная с 15.02.2018 | 8-(384-74)-95-6-46 |
fax | номер факса избирательной комиссии | (38474) | |
адрес электронной почты избирательной комиссии | |||
end_date | дата окончания полномочий избирательной комиссии | 26.03.2018 |
Таблица составов избирательных комиссий (cik_people):
Код поля | Название поля | Примечания | Пример |
---|---|---|---|
id | id записи | 683770 | |
ik_id | id избирательной комиссии | этот id указывает на комиссию из таблицы адресов комиссии | 78161 |
number | номер в списке членов избирательной комиссии | никакого смысла это поле не имеет | 10 |
fio | Фамилия Имя Отчество члена избирательной комиссии | Якимова Татьяна Валерьевна | |
post | должность | Член | |
party | субъект, предложивший данную кандидатуру в состав комиссии | Свердловское региональное отделение политической партии "Российская объединенная демократическая партия "ЯБЛОКО" |
Таблица резервов участковых избирательных комиссий (cik_people_reserve):
Код поля | Название поля | Примечания | Пример |
---|---|---|---|
id | id записи | 457646 | |
ik_id | id избирательной комиссии | этот id указывает на комиссию из таблицы адресов комиссии. Если для записи из резерва не удается найти подходящую комиссию, то в таблице адресов избирательных комиссий создается фейковая запись, которой назначается отрицательное значение id. | 81578 |
number | номер в списке членов резерва участковой избирательной комиссии | никакого смысла это поле не имеет | 1 |
fio | Фамилия Имя Отчество члена резерва участковой избирательной комиссии | Васькина Юлия Николаевна | |
post | должность | Зачислен в резерв составов УИК | |
party | субъект, предложивший данную кандидатуру в состав комиссии | собрание избирателей по месту работы - ГБОУ НПО "Профессиональный лицей №10", г.Тверь |
У представленных данных есть несколько недостатков
1. Неполная адресная информация об УИК
Адрес участковой избирательной комиссии (УИК) определяется постановлением главы соответствующего муниципального образования или решением ТИК. Обычно в этих документах указывают не только почтовый адрес УИК, но также и название соответствующего здания (школа, дом культуры, клуб, и пр.). В представленных на сайтах избирательных комиссий субъектов РФ информация о типе здания во многих случаях опускается. Кроме того, там не делается различий между адресом помещения для голосования и адресом избирательной комиссии.
2. Актуальность информации
Непонятна актуальность информации. Составы комиссий и адреса УИК время от времени меняются. Из представленных данных неясно, какие из этих изменений учтены.
3. Территории избирательных участков
Отсутствует информация о территории избирательных участков.
4. Непостоянство структуры записи адреса избирательной комиссии Встречаются разные вариации записи адреса избирательного участка
Название любого компонента адреса может фигурировать в разных вариантах, содержать опечатки или вообще отсутствовать. В середине адресной строки могут присутствовать неожиданные вставки вида
Для получения данных служат следующие скрипты:
Для преобразование SQLite -> CSV используются следующие команды:
sqlite3 -header -csv cik.sqlite "select * from cik_people order by id" > cik_people.csv
sqlite3 -header -csv cik.sqlite "select * from cik_uik order by id" > cik_uik.csv
sqlite3 -header -csv cik.sqlite "select * from cik_people_reserve order by id" > cik_people_reserve.csv
python down.py --region=bashkortostan
python down.py --with-reserve --region=orel
Список используемых наименований субъектов РФ можно посмотреть в файле cik.py
NB В программе sqlite по умолчанию не включена поддержка сопоставления кириллических символов. По умолчанию не работают функции перевода строки в нижний и верхний регистр и не работает регистронезависимый поиск. Как исправить этот недостаток описано ниже.
Запрос к базе данных выглядит следующим образом
sqlite3 -header -csv cik.sqlite "sql запрос" > result.csv
Примеры простых sql запросов:
SELECT cik_uik.name, cik_people.* FROM cik_people INNER JOIN cik_uik ON cik_people.ik_id = cik_uik.id WHERE cik_uik.region = 'moscow_city'
SELECT cik_uik2.name AS "parent_name", cik_uik1.region, cik_uik1.url, cik_uik1.name, cik_people.fio, cik_people.post, cik_people.party FROM cik_uik AS cik_uik1 INNER JOIN cik_uik AS cik_uik2 ON cik_uik1.parent_id = cik_uik2.id JOIN cik_people ON cik_people.ik_id = cik_uik1.id WHERE cik_uik1.type_ik = 'uik' AND cik_uik1.region = 'moscow_reg'
SELECT cik_uik.* FROM cik_uik WHERE cik_uik.region = 'yaroslavl' AND cik_uik.type_ik = 'uik' AND cik_uik.iz_id > 0
SELECT cik_uik.name, cik_people_reserve.* FROM cik_people_reserve INNER JOIN cik_uik ON cik_people_reserve.ik_id = cik_uik.id WHERE cik_uik.region = 'tambov'
SELECT cik_uik2.name AS "parent_name", cik_uik1.region, cik_uik1.url, cik_uik1.name, cik_people_reserve.fio, cik_people_reserve.post, cik_people_reserve.party FROM cik_uik AS cik_uik1 LEFT OUTER JOIN cik_uik AS cik_uik2 ON cik_uik1.parent_id = cik_uik2.id JOIN cik_people_reserve ON cik_people_reserve.ik_id = cik_uik1.id WHERE cik_uik1.region = 'moscow_reg'
Сначала с помощью запроса
SELECT cik_uik.name, cik_uik.id FROM cik_uik WHERE type_ik = 'ik' AND cik_uik.name LIKE '%Брянск%'
найдем id комиссии Брянской области. Результатом выполнения этой команды будет следующий текст
Избирательная комиссия Брянской области|91193
Так как ТИКи Брянской области имеют parent_id=91193, то их находим командой
SELECT cik_uik.name, cik_uik.id FROM cik_uik WHERE parent_id = '91193' AND cik_uik.name LIKE '%Брянск%'
Из вывода этой команды
name|id Брянск, Бежицкая|91194 Брянск, Володарская|91258 Брянск, Советская|91288 Брянск, Фокинская|91338 Брянская|91461
находим, что УИКи Брянского района Брянской области имеют parent_id=91461. Используя этот результат несложно выбрать нужную информацию по этим УИКам.
NB. Это лишь пример работы со срезом от 01.01.2019. В срезах за другие даты значения id могут отличаться.
SELECT cik_uik.parent_id, cik_uik.name, cik_people.* FROM cik_people INNER JOIN cik_uik ON cik_people.ik_id = cik_uik.id WHERE cik_uik.parent_id IN ( SELECT cik_uik.id FROM cik_uik WHERE cik_uik.name LIKE '%Южное Тушино%' )
SELECT cik_uik.name, cik_uik.address, cik_people.* FROM cik_people INNER JOIN cik_uik ON cik_people.ik_id = cik_uik.id WHERE cik_people.fio LIKE '%Иванов Иван%'
По умолчанию sqlite умеет переводить символы в верхний или нижний регистр и искать строки без учета регистра только для ASCII символов. Для поддержки этих операций для символов вне этого диапазона необходимо подключить специальное расширение. Для этого
sqlite3 -header -csv cik.sqlite '.load /PATH/TO/ICU/EXTENSION/libSqliteIcu.so sqlite3_icu_init' "sql запрос" > result.csv
Обсудить в форуме Комментариев 11Редактировать в вики
Последнее обновление: 2021-09-15 10:36
Дата создания: 3.04.2014
Автор(ы): Михаил Каленков
© GIS-Lab и авторы, 2002-2021. При использовании материалов сайта, ссылка на GIS-Lab и авторов обязательна. Содержание материалов - ответственность авторов. (подробнее).