Нормализованные данные с портала открытых данных Москвы: различия между версиями
Строка 41: | Строка 41: | ||
#Пустые поля. ";" в конце заголовка и ";" в конце каждой записи (пример: 619), иногда нерегулярно встречается "; " ''-> исправлено'' | #Пустые поля. ";" в конце заголовка и ";" в конце каждой записи (пример: 619), иногда нерегулярно встречается "; " ''-> исправлено'' | ||
#На данный момент (20130609) многие наборы данных, ранее имевшие геопривязку, ее [https://twitter.com/gislab/status/336937394886549504 потеряли] - [http://gis-lab.info/qa/data-mos.html#.D0.A7.D1.82.D0.BE_.D0.B4.D0.B5.D0.BB.D0.B0.D1.82.D1.8C_.D0.B5.D1.81.D0.BB.D0.B8_.D0.B2_.D1.81.D0.B2.D0.B5.D0.B6.D0.B5.D0.B9_.D0.B2.D0.B5.D1.80.D1.81.D0.B8.D0.B8_.D0.BF.D0.BE.D0.BB.D0.BE.D0.BC.D0.B0.D0.BD.D1.8B_.D0.B4.D0.B0.D0.BD.D0.BD.D1.8B.D0.B5.3F используйте архивные версии]. | #На данный момент (20130609) многие наборы данных, ранее имевшие геопривязку, ее [https://twitter.com/gislab/status/336937394886549504 потеряли] - [http://gis-lab.info/qa/data-mos.html#.D0.A7.D1.82.D0.BE_.D0.B4.D0.B5.D0.BB.D0.B0.D1.82.D1.8C_.D0.B5.D1.81.D0.BB.D0.B8_.D0.B2_.D1.81.D0.B2.D0.B5.D0.B6.D0.B5.D0.B9_.D0.B2.D0.B5.D1.80.D1.81.D0.B8.D0.B8_.D0.BF.D0.BE.D0.BB.D0.BE.D0.BC.D0.B0.D0.BD.D1.8B_.D0.B4.D0.B0.D0.BD.D0.BD.D1.8B.D0.B5.3F используйте архивные версии]. | ||
==TODO== | ==TODO== |
Версия от 11:10, 9 июня 2013
по адресу http://gis-lab.info/qa/data-mos.html
Описание данных и копия данных в более удобном для ГИС формате
Источник данных: Портал открытых данных г. Москва http://data.mos.ru
Об исходных данных
Системы координат данных:
- EPSG: 4326 (latlon/WGS84)
- EPSG: 3857 (Web Mercator/WGS84)
- Местная московская система координат (ПМСК 1, 2)
Формат данных: CSV
Кодировка: UTF-8
Формат хранения геометрий: WKT или пара полей с координатами.
Лицензия данных разрешает любое использование (включая коммерческое) при условии наличия ссылки на первоисточник.
Условия использования набора данных не предполагают ограничений использования набора данных в некоммерческих и коммерческих целях.
Лицензия не указывает явным образом согласие с CT OpenStreetMap.
Сомнительные места организации исходных данных
Уровень проблемности этих пунктов разный. Некоторые из них не позволят даже начать работу с данными, многие улучшили бы данные, но не помешают их использовать специалисту. Пометка "-> исправлено" означает, что данная проблема исправлена в производной версии данных представленной в этом описании ниже.
- Служебная информация в названиях полей -> исправлено
- Исходные данные в системе координат: EPSG:3857 (плохая СК для распространения векторных данных) -> исправлено
- Исходные данные в системе координат: ПМСК (местная система координат г. Москвы) (ужасная СК для распространения векторных данных) -> исправлено
- Смешивание данных в разных системах координат в одних и тех же столбцах в одном наборе данных -> исправлено
- Непоследовательное применение WKT представлений координат, то используется, то не используется.
- Названия полей на кириллице (проблемы с конвертацией в ESRI Shape) -> исправлено
- Названия полей очень длинные (проблемы с конвертацией в ESRI Shape) -> исправлено
- Названия полей содержат спецсимволы (например "№", "/", "," - проблемы с конвертацией) -> исправлено
- Одни и те же названия полей то в кавычках, то без (просто некрасиво) -> исправлено
- Одни и те же названия полей то с пробелами, то с "_" вместо пробелов (просто некрасиво) -> исправлено
- Названия полей с опечатками (например "1_Дополнителтная информация", "0_Дифицит_профицит", просто некрасиво) -> исправлено
- Варианты в названиях полей обозначающие одно и тоже (например "0_POINT_X", "0_X", просто некрасиво) -> исправлено
- Отсутствуют вспомогательные файлы описания системы координат данных -> исправлено
- Отсутствуют файлы csvt (проблемы с конвертацией с распознаванием корректного типа значений) -> исправлено
- Отсутствуют файлы vrt (проблемы с немедленной подгрузкой данных в ГИС) -> исправлено
- Многочисленные неоправданные последовательности символов "пробел" в атрибутике -> исправлено
- Пустые поля. ";" в конце заголовка и ";" в конце каждой записи (пример: 619), иногда нерегулярно встречается "; " -> исправлено
- На данный момент (20130609) многие наборы данных, ранее имевшие геопривязку, ее потеряли - используйте архивные версии.
TODO
- *.csvt файлы пока рассматривают все поля как тип String(255). Нужно пройтись по всем полям и выяснить их тип, добавив его в fields.csv
- создать *.qml
- сконвертировать все в GeoJSON
- обновлять только обновившееся, дату можно взять из метаданных, (но вдруг нас обманут? :) либо побайтово сравнивать с пред.версией CSV
Актуальность производных данных и архив
Текущая версия данных расположенная здесь: 22 мая 2013.
Чтобы посмотреть архивную версию данных, возьмите ссылку из таблице ниже и добавьте дату в формате YYYYMMDD. Например:
Актуальная версия:
http://gis-lab.info/data/mos.ru/493_shp.7z
Архивная:
http://gis-lab.info/data/mos.ru/20130213/493_shp.7z
Доступны архивы за следующие числа:
20130213,20130222,20130503,20130522
Вы можете также воспользоваться специальным сервисом, который следит за обновлениями исходных данных на data.mos.ru и архивирует все версии. Пока этот сервис не занимается нормализацией данных. Планируется объединить эти два сервиса.
Что делать если в свежей версии поломаны данные?
ДИТ периодически "ломает" выкладываемые данные (см. перечень проблем выше). Возможно данные или геоданные не поломаны в архивной версии. Соответственно, чтобы восстановить данные, нужно взять их предыдущую версию. Для этого нужно:
- Выбрать одну из архивных версий выше, например 20130222.
- Определить старый номер набора данных (да, у ДИТа нестабильные номера наборов данных), посмотрев в файл _list.csv лежащий в папке архива.
- Определить старый номер этого набора (если он изменился) и скачать соответствующий набор из папки архива.
Нормализованные данные
Использованные скрипты и сопутствующие файлы, процесс обновления
Язык - Python. Все скрипты можно взять на Github.
По шагам:
1. items.py,datamosru.py - конфиги Scrapy для получения списка наборов данных. Запускаем:
mkdir datamosscrapy cp items.py datamosscrapy/datamosscrapy cp datamosru.py datamosscrapy/datamosscrapy/spiders cd datamosscrapy scrapy crawl datamosru -o list.csv -t csv
- list.csv - список слоёв в формате CSV, создается после выполнения паука Scrapy
2. batch_download.py - Загружаем данные, скрипт использует list.csv как источник кодов для ссылок
python download.py
3. Архивируем всё для истории
for %i in (*.csv) do C:/tools/7-Zip/7z.exe a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on %~ni.7z %i
и выгружаем на FTP в качестве исходников.
4. batch_field_sanitizer_read.py - Экстрагируем названия полей из CSV файлов
python batch_field_sanitizer_read.py data\ fields.csv yes yes
- fields.csv - все названия полей данных
- yes - обновлять существующий файл замен имен полей
- yes - использовать транслит для новых полей
5. Вручную редактируем файл fields.csv добавляя замены
6. batch_field_sanitizer_write.py - Нормализуем поля CSV файлов с данными, используя fields.csv
python batch_field_sanitizer_write.py data\ data-norm fields.csv
7. batch_process.py - подготовщик данных, конвертация, и т.п. Использует GDAL/OGR, использует prj.prj.
python batch_process.py
- wgs84.prj - файл описания исходной проекции данных
8. batch_table.py - Формируем таблицу в вики-формате (для этой страницы), использует _general.csv
python batch_table.py > table.wiki