Подготовка данных для проекта УИК (Саратов)
Подготовка данных
Оптимальный формат для подготовки информации по УИК, ОИК, ТИК для дальнейшей работы - это MS Excel или OO Calc. В данном проекте применялся Excel. Исходная информация по формированию избирательных комиссий может быть опубликована на официальных сайтах органов власти и избиркомов в разных форматах - pdf, doc, html и пр. Если есть возможность - лучше воспользоваться справочно-правовой системой и получить актуальную версию документа в формате MS Word. Как обрабатывать эти файлы на примере Саратова и Саратовской области. Для этого, нужно воспользоваться макросом, любезно предоставленным Александром (nerv). Описание логики парсера при извлечении данных - см. файл criteria_parse.doc.
В файле PasreUIK.doc приведен код для наглядности.
Инструкция по работе с макросом
1. Скачать файл шаблона PasreUIK.dot
2. Разместить шаблон в папку шаблонов Word:
Word 2003:
C:\Documents and Settings\"user name"\Application Data\Microsoft\Templates\
Word 2010 самый простой вариант - поместить файл шаблона в папку автозагрузки Word:
C:\Users\"user name"\AppData\Roaming\Microsoft\Word\STARTUP
В результате, на панели инструментов в Word 2003, а в Word 2010, во вкладке "Надстройки" появится кнопка запуска макроса:
Работа с макросом предельно проста - нужно загрузить файл Word с описанием УИКов и нажать иконку запуска макроса. В результате в EXCEL будет сформирован и открыт файл с необходимой информацией:
- Номер УИК;
- Адрес;
- Место нахождения УИК и помещения для голосования;;
- Телефон.
Дальше, на основе полученной информации, целесообразно сформировать файл следующего содержания:
Описание полей:
- name_district - Наименование ТИК;
- number_tik - Номер ТИК;
- number_oik - Номер ОИК;
- number_uik - Номер УИК;
- place - Населенный пункт;
- addr_vote - Адрес места для голосования;
- place_vote - Место нахождения УИК и помещения для голосования;
- tel - Телефон;
- boundaries - Границы участка;
- latitude - Широта;
- longitude - Долгота.
Главная задача этого этапа - получить файл унифицированной структуры для дальнейшего геокодирования и анализа результатов выборов.
Ошибки при работе макроса: После обработки doc файла макросом, в полученном xls файле будет часто встречаться слово "ЛОЖЬ". Пока, это не имеет отношения к результатам выборов, а просто является меткой для вас, что в этом месте в исходном doc файле имеется ошибка. Ошибки дополнительно выделены цветом. В случае, если в исходном doc файле УИКи распределены по округам, так же по округам будет сформирован и выходной файл. Округа будут разделены пустой строкой.
Работа над ошибками Основная причина возникновения ошибок - отсутствие или, наоборот, наличие лишнего знака абзаца в блоке данных. Блоком данных является описание одного УИКа:
Таким образом, все что нужно сделать для исправления ошибок - это добавить или убрать символ абзаца в описании тех УИК, которые выделены цветом. Для контроля, цветом также выделяются пропущенные УИКи (между ними в doc файле нужно добавить абзац!!).
ПРИМЕЧАНИЕ:
- Номер ТИК формируется в алфавитном порядке названий соответствующих районов. Как правило, нигде не публикуется. Приведен в таблице для удобства сортировки, в основном. На сайте избиркома список ТИКов по номерам можно найти в разделе "Результаты выборов" - "Данные об открытии помещений для голосования".
- В общем случае, формат представления описания УИКов, их адресов, границ, телефонов, может различаться. В этом случае, макрос может работать не корректно. Как вариант решения - пробовать привести блоки данных по УИКам в исходном doc файле к виду, соответствующему описанию в criteria_parse.doc, ну, или, модифицировать код макроса. Второй вариант решения - воспользоваться скриптами на языках Perl и Python из Проекта по УИКам Санкт-Петербурга, выложены сюда (тоже под лицензией CC0).
После того, как будет сформирован xls файл нужного состава, необходимо сохранить его в формате csv:
В отличие от Open Office, MS Excel умеет сохранять файлы только в кодировке ANSI. Но нам для дальнейшей работы нужен csv файл в формате UTF-8. Для решения этой маленькой проблемы проще всего воспользоваться редактором Notepad++. Открываем в нем сохраненный csv файл и выбираем "Кодировки" - "Преобразовать в UTF-8 без BOM: