Сервис контроля и архивации материалов портала открытых данных г. Москвы
по адресу http://gis-lab.info/qa/data-mos-control.html
Описание сервиса контроля данных
Проблема
Первым городом раскрывшим более-менее существенное количество открытых геоданных является Москва. Данные по городу выкладываются на Портал открытых данных г. Москва. Портал неплохо справляется с функцией доставки данных потребителю, нет привязки к API, для получения наборов данных не нужна регистрация. Однако, некоторые другие функции выполняются не очень хорошо: нет четкой системы оповещений об обновлениях, непонятно что же вообще обновилось. Дополнительно, нет уверенности, что отдельные наборы данных завтра не пропадут с портала окончательно.
Поскольку данные открыты, задача общественности взять на себя часть функций, с которыми плохо справляется сам портал.
Идея
Создать независимый сервис архивации и проверки изменений в данных портала.
Реализация
Регулярно скачиваем реестр данных и всех существующие и новые наборы данных, сравниваем с предыдущими версиями, находим изменения, обо всех значительных - докладываем пользователям.
Функции сервиса
- Ежедневная проверка
- Изменение комплектации данных
- Обнаружение новых наборов данных
- Обнаружение удаленных наборов данных
- Обнаружение восстановленных (после удаления) наборов данных
- Изменение данных
- Добавление/удаление атрибутивных полей
- Добавление/удаление записей
- Другие изменения содержания (не ведущие к изменению количества полей и/или строк)
- Сохранение версий измененных наборов данных
- Компрессия данных
- Оповещение о главных событиях в специальном твиттере и лог-файле.
- Регистрация изменений в специальных лог-файлах для каждого набора (пример)
Планы на будущее
- Интеграция с процессом нормализации и конвертации данных с портала в более приемлемый для ГИС и разработчиков вид. Вместо пакетной конвертации, как сейчас, будут конвертироваться только измененные наборы данных.
- Генерация красивых diff-ов для отображения изменений в данных.
Код
Весь исходный код на языке Python доступен на Github.
Использованы: